itk – version 4 looking back to look forward

21
ITK 10 Year Anniversery ITK – Version 4 ITK – Version 4 Looking Back to Look Looking Back to Look Forward Forward Bill Lorensen Bill Lorensen bill.lorensen@gmail bill.lorensen@gmail .com .com marchingcubes.org marchingcubes.org

Upload: lixue

Post on 15-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

ITK – Version 4 Looking Back to Look Forward. Bill Lorensen [email protected] marchingcubes.org. Quotation 1. “There's an old saying about those who forget history. I don't remember it, but it's good.” Stephen Colbert, The Colbert Report March 10, 2008. Quotation 2. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ITK – Version 4 Looking Back to Look Forward

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

Page 2: ITK – Version 4 Looking Back to Look Forward

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

Page 3: ITK – Version 4 Looking Back to Look Forward

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

Page 4: ITK – Version 4 Looking Back to Look Forward

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.

Page 5: ITK – Version 4 Looking Back to Look Forward

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

Page 6: ITK – Version 4 Looking Back to Look Forward

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

Page 7: ITK – Version 4 Looking Back to Look Forward

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

Page 8: ITK – Version 4 Looking Back to Look Forward

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

Page 9: ITK – Version 4 Looking Back to Look Forward

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

Page 10: ITK – Version 4 Looking Back to Look Forward

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

Page 11: ITK – Version 4 Looking Back to Look Forward

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

Page 12: ITK – Version 4 Looking Back to Look Forward

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

Page 13: ITK – Version 4 Looking Back to Look Forward

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

Page 14: ITK – Version 4 Looking Back to Look Forward

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

Page 15: ITK – Version 4 Looking Back to Look Forward

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

Page 16: ITK – Version 4 Looking Back to Look Forward

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

Page 17: ITK – Version 4 Looking Back to Look Forward

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

Page 18: ITK – Version 4 Looking Back to Look Forward

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

Page 19: ITK – Version 4 Looking Back to Look Forward

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

Page 20: ITK – Version 4 Looking Back to Look Forward

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!”

Page 21: ITK – Version 4 Looking Back to Look Forward

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