ITK 10 Year Anniversery ITK – Version 4 Looking Back to Look Forward Bill Lorensen...
-
Upload
dwight-bond -
Category
Documents
-
view
225 -
download
1
Transcript of ITK 10 Year Anniversery ITK – Version 4 Looking Back to Look Forward Bill Lorensen...
ITK 10 Year Anniversery
ITK – Version 4ITK – Version 4Looking Back to Look Forward Looking Back to Look Forward
Bill LorensenBill Lorensen
[email protected]@gmail.com
marchingcubes.orgmarchingcubes.org
ITK 10 Year Anniversery
Quotation 1Quotation 1
““There's an old saying about those who forget There's an old saying about those who forget history. I don't remember it, but it's good.”history. I don't remember it, but it's good.”
Stephen Colbert, The Colbert ReportStephen Colbert, The Colbert ReportMarch 10, 2008March 10, 2008
ITK 10 Year Anniversery
Quotation 2Quotation 2
““Why are you wasting your time writing a new Why are you wasting your time writing a new search engine when we have AltaVista?”search engine when we have AltaVista?”
Bill Lorensen, GE Coolidge Fellow,Bill Lorensen, GE Coolidge Fellow,to Larry Page, Graduate Studentto Larry Page, Graduate Student
February 1996February 1996
ITK 10 Year Anniversery
Beginnings - 1995Beginnings - 1995
Dr. Michael Ackerman from NLM held a meeting with several Dr. Michael Ackerman from NLM held a meeting with several individuals to see what next steps should be taken to individuals to see what next steps should be taken to promote the Visible Human data. This group identified a promote the Visible Human data. This group identified a need for public software to process the datasets.need for public software to process the datasets.
Terry Yoo, a PhD student at UNC, was in attendance as well as Terry Yoo, a PhD student at UNC, was in attendance as well as Bill Lorensen from GE Research. Bill Lorensen from GE Research.
ITK 10 Year Anniversery
NLM seeks proposals - 1999NLM seeks proposals - 1999
To develop an API and implementation of a Segmentation and To develop an API and implementation of a Segmentation and Registration ToolkitRegistration Toolkit
To be suitable for computer assisted exploration of the NLM Visible To be suitable for computer assisted exploration of the NLM Visible Human Project data setsHuman Project data sets
For direct insertion into the public domainFor direct insertion into the public domain A self-sustaining effort to support image analysis research in A self-sustaining effort to support image analysis research in
segmentation, classification, and deformable registration of medical segmentation, classification, and deformable registration of medical imagesimages
To include future expansion to parallel implementations and large To include future expansion to parallel implementations and large memory requirementsmemory requirements
Engineered to accommodate change by periodic and incremental Engineered to accommodate change by periodic and incremental modificationsmodifications
ITK 10 Year Anniversery
Insight ConsortiumInsight Consortium
A competitive process selected the development teamA competitive process selected the development team Each group was evaluated individually, without regard to Each group was evaluated individually, without regard to
how they might integrate with each otherhow they might integrate with each other Each team had strengths in software development, validation Each team had strengths in software development, validation
or algorithm development, but no one group had the or algorithm development, but no one group had the necessary skills to do the entire projectnecessary skills to do the entire project
Distributed software developers with varying software Distributed software developers with varying software engineering experienceengineering experience
ITK 10 Year Anniversery
Open Source Menu for SuccessOpen Source Menu for Success
A Community with a common visionA Community with a common vision A pool of talented and motivated developers/scientistsA pool of talented and motivated developers/scientists A mix of academic and commercialA mix of academic and commercial An organized, light weight approach to software An organized, light weight approach to software
developmentdevelopment A leadership structureA leadership structure CommunicationCommunication A business modelA business model
ITK 10 Year Anniversery
Extreme ProgrammingExtreme Programming
The community owns the codeThe community owns the code Release early, release oftenRelease early, release often Continuous integrationContinuous integration Everyone agrees to keep the software defect freeEveryone agrees to keep the software defect free
ITK 10 Year Anniversery
What’s Different NowWhat’s Different Now
Technology has changedTechnology has changed Our software process has maturedOur software process has matured Mature software development teamsMature software development teams Now we have customers!!Now we have customers!! Back then, we had not worked togetherBack then, we had not worked together Larger development team - now internationalLarger development team - now international Recognition that many things are hardRecognition that many things are hard
Coordinate systemsCoordinate systems DICOMDICOM I/O in generalI/O in general StreamingStreaming MeshesMeshes WrappingWrapping LicensingLicensing
ITK 10 Year Anniversery
Large ITK Customer BaseLarge ITK Customer Base
USAUSA NA-MIC Slicer3 NA-MIC Slicer3 UIowa BrainsUIowa Brains Utah Sci InstituteUtah Sci Institute Megason Lab GoFigureMegason Lab GoFigure UPenn SNAPUPenn SNAP caBig/XIPcaBig/XIP CompaniesCompanies
GE?GE?Siemens?Siemens?
EuropeEurope OrfeoOrfeo OsirixOsirix CO-ME Marvin PlatformCO-ME Marvin Platform MevisMevis MITKMITK ElastixElastix MedInriaMedInria
ITK 10 Year Anniversery
Diverse FundingDiverse Funding
NIH NCBCNIH NCBC NA-MICNA-MIC
NIH NCRRNIH NCRR Brigham and Womens Neuroimage Analysis CenterBrigham and Womens Neuroimage Analysis Center Utah Center for Integrative Biomedical ComputingUtah Center for Integrative Biomedical Computing
IOWA Brains ProjectIOWA Brains Project DARPADARPA
Virtual SoldierVirtual Soldier Virtual AutopsyVirtual Autopsy
ITK 10 Year Anniversery
Lessons Learned: The GoodLessons Learned: The Good
Good mix of commercial and academicGood mix of commercial and academic Communication is criticalCommunication is critical The daily rhythm of Extreme TestingThe daily rhythm of Extreme Testing The Whole >>> Sum of the partsThe Whole >>> Sum of the parts Process automation reduces the burden on developersProcess automation reduces the burden on developers The engineering process can (and will in ITK 4) be repeatedThe engineering process can (and will in ITK 4) be repeated
ITK 10 Year Anniversery
Lessons Learned: The BadLessons Learned: The Bad CommunicationCommunication
Early in the project, communication was limited to the Early in the project, communication was limited to the mailing list and the Quarterly meetings. Almost a year mailing list and the Quarterly meetings. Almost a year passed before we added the weekly telephone passed before we added the weekly telephone conferences. Developers felt isolated and the impersonal conferences. Developers felt isolated and the impersonal electronic communication methods failed to build the electronic communication methods failed to build the personal relationships required for any software personal relationships required for any software development process.development process.
SolutionSolution Weekly t-consWeekly t-cons More frequent face-to-face meetingsMore frequent face-to-face meetings
ITK 10 Year Anniversery
Lessons Learned: The BadLessons Learned: The Bad Lack of Design ReviewsLack of Design Reviews
The lightweight process has its drawbacks. The current The lightweight process has its drawbacks. The current process emphasizes coding and testing. This process is process emphasizes coding and testing. This process is well defined and benefits from automation. But, the well defined and benefits from automation. But, the design process is not well supported by the current design process is not well supported by the current mechanisms.mechanisms.
SolutionSolution The Insight JournalThe Insight Journal WikiWiki
ITK 10 Year Anniversery
Lessons Learned: The BadLessons Learned: The Bad Unstable Application Programming Interfaces (API’s)Unstable Application Programming Interfaces (API’s)
The nightly test/build was so effective in empowering The nightly test/build was so effective in empowering programmers to make changes, that API changes programmers to make changes, that API changes occurred too frequently without the necessary buy-in occurred too frequently without the necessary buy-in from the development community. from the development community.
SolutionSolution Increased awareness of the importance of maintaining Increased awareness of the importance of maintaining
backward capabilitybackward capability Recognition of a large installed base of customersRecognition of a large installed base of customers
ITK 10 Year Anniversery
Lessons Learned: The BadLessons Learned: The Bad
Insufficient AutomationInsufficient Automation Automation is critical to maintain consistent style and Automation is critical to maintain consistent style and
robust software. Although the project provided many robust software. Although the project provided many automatic techniques to catch developer errors, the automatic techniques to catch developer errors, the project would benefit from more automation.project would benefit from more automation.
SolutionSolution Email notificationsEmail notifications Strict commit checksStrict commit checks KWStyle – automated style checkingKWStyle – automated style checking
ITK 10 Year Anniversery
Lessons Learned: The BadLessons Learned: The Bad
Complexity and Feature CreepComplexity and Feature Creep Like most software development projects, this Like most software development projects, this
software suffers from complexity and feature software suffers from complexity and feature creep. Early designs and implementations used creep. Early designs and implementations used many features of the C++ language to an many features of the C++ language to an “extreme”. The team realized and began removing “extreme”. The team realized and began removing the complexity.the complexity.
SolutionSolution Ongoing reviewsOngoing reviews
ITK 10 Year Anniversery
Lessons Learned: The UglyLessons Learned: The Ugly
Still need a stickStill need a stick Someone needs to monitor the daily process.Someone needs to monitor the daily process.
XP is not everyone’s cup of teaXP is not everyone’s cup of tea Almost all bought into the processAlmost all bought into the process A few tolerated itA few tolerated it Some still ignore itSome still ignore it
ITK 10 Year Anniversery
Lessons To Take ForwardLessons To Take Forward
Agree on high level requirements earlyAgree on high level requirements early Agree on process earlyAgree on process early Weekly communicationWeekly communication Face-to-face meetings (learn from NA-MIC’s Project Week)Face-to-face meetings (learn from NA-MIC’s Project Week) Due diligence on third party packagesDue diligence on third party packages Don't underestimate the social aspects of open sourceDon't underestimate the social aspects of open source API changes should not be made without assessing their API changes should not be made without assessing their
impact on customersimpact on customers
ITK 10 Year Anniversery
Final Report, GE Final Report, GE ResearchResearch, May 2006, May 2006
““Personally, this project has been a highlight of my 38-year Personally, this project has been a highlight of my 38-year career. I have never worked on a project that was more career. I have never worked on a project that was more stimulating and satisfying. The personal relationships I stimulating and satisfying. The personal relationships I made during the project will last a lifetime.made during the project will last a lifetime.
Thank you for ITK!”Thank you for ITK!”
ITK 10 Year Anniversery
ITK – Version 4ITK – Version 4Looking Back to Look Forward Looking Back to Look Forward
Bill LorensenBill Lorensen
[email protected]@gmail.com
marchingcubes.orgmarchingcubes.org