Presentation is loading. Please wait.

Presentation is loading. Please wait.

ITK 10 Year Anniversery ITK – Version 4 Looking Back to Look Forward Bill Lorensen marchingcubes.org.

Similar presentations


Presentation on theme: "ITK 10 Year Anniversery ITK – Version 4 Looking Back to Look Forward Bill Lorensen marchingcubes.org."— Presentation transcript:

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

2 ITK 10 Year Anniversery 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

3 ITK 10 Year Anniversery Quotation 2 “Why are you wasting your time writing a new search engine when we have AltaVista?” Bill Lorensen, GE Coolidge Fellow, to Larry Page, Graduate Student February 1996

4 ITK 10 Year Anniversery Beginnings - 1995 Dr. Michael Ackerman from NLM held a meeting with several individuals to see what next steps should be taken to promote the Visible Human data. This group identified a need for public software to process the datasets. Terry Yoo, a PhD student at UNC, was in attendance as well as Bill Lorensen from GE Research.

5 ITK 10 Year Anniversery NLM seeks proposals - 1999 To develop an API and implementation of a Segmentation and Registration Toolkit To develop an API and implementation of a Segmentation and Registration Toolkit To be suitable for computer assisted exploration of the NLM Visible Human Project data sets To be suitable for computer assisted exploration of the NLM Visible Human Project data sets For direct insertion into the public domain For direct insertion into the public domain A self-sustaining effort to support image analysis research in segmentation, classification, and deformable registration of medical images A self-sustaining effort to support image analysis research in segmentation, classification, and deformable registration of medical images To include future expansion to parallel implementations and large memory requirements To include future expansion to parallel implementations and large memory requirements Engineered to accommodate change by periodic and incremental modifications Engineered to accommodate change by periodic and incremental modifications

6 ITK 10 Year Anniversery Insight Consortium A competitive process selected the development team A competitive process selected the development team Each group was evaluated individually, without regard to how they might integrate with each other Each group was evaluated individually, without regard to how they might integrate with each other Each team had strengths in software development, validation or algorithm development, but no one group had the necessary skills to do the entire project Each team had strengths in software development, validation or algorithm development, but no one group had the necessary skills to do the entire project Distributed software developers with varying software engineering experience Distributed software developers with varying software engineering experience

7 ITK 10 Year Anniversery Open Source Menu for Success A Community with a common vision A Community with a common vision A pool of talented and motivated developers/scientists A pool of talented and motivated developers/scientists A mix of academic and commercial A mix of academic and commercial An organized, light weight approach to software development An organized, light weight approach to software development A leadership structure A leadership structure Communication Communication A business model A business model

8 ITK 10 Year Anniversery Extreme Programming The community owns the code The community owns the code Release early, release often Release early, release often Continuous integration Continuous integration Everyone agrees to keep the software defect free Everyone agrees to keep the software defect free

9 ITK 10 Year Anniversery What’s Different Now Technology has changed Technology has changed Our software process has matured Our software process has matured Mature software development teams Mature software development teams Now we have customers!! Now we have customers!! Back then, we had not worked together Back then, we had not worked together Larger development team - now international Larger development team - now international Recognition that many things are hard Recognition that many things are hard Coordinate systems Coordinate systems DICOM DICOM I/O in general I/O in general Streaming Streaming Meshes Meshes Wrapping Wrapping Licensing Licensing

10 ITK 10 Year Anniversery Large ITK Customer Base USA USA NA-MIC Slicer3 NA-MIC Slicer3 UIowa Brains UIowa Brains Utah Sci Institute Utah Sci Institute Megason Lab GoFigure Megason Lab GoFigure UPenn SNAP UPenn SNAP caBig/XIP caBig/XIP Companies Companies GE? GE? Siemens? Siemens? Europe Europe Orfeo Orfeo Osirix Osirix CO-ME Marvin Platform CO-ME Marvin Platform Mevis Mevis MITK MITK Elastix Elastix MedInria MedInria

11 ITK 10 Year Anniversery Diverse Funding NIH NCBC NIH NCBC NA-MIC NA-MIC NIH NCRR NIH NCRR Brigham and Womens Neuroimage Analysis Center Brigham and Womens Neuroimage Analysis Center Utah Center for Integrative Biomedical Computing Utah Center for Integrative Biomedical Computing IOWA Brains Project IOWA Brains Project DARPA DARPA Virtual Soldier Virtual Soldier Virtual Autopsy Virtual Autopsy

12 ITK 10 Year Anniversery Lessons Learned: The Good Good mix of commercial and academic Good mix of commercial and academic Communication is critical Communication is critical The daily rhythm of Extreme Testing The daily rhythm of Extreme Testing The Whole >>> Sum of the parts The Whole >>> Sum of the parts Process automation reduces the burden on developers Process automation reduces the burden on developers The engineering process can (and will in ITK 4) be repeated The engineering process can (and will in ITK 4) be repeated

13 ITK 10 Year Anniversery Lessons Learned: The Bad Communication Communication Early in the project, communication was limited to the mailing list and the Quarterly meetings. Almost a year passed before we added the weekly telephone conferences. Developers felt isolated and the impersonal electronic communication methods failed to build the personal relationships required for any software development process. Early in the project, communication was limited to the mailing list and the Quarterly meetings. Almost a year passed before we added the weekly telephone conferences. Developers felt isolated and the impersonal electronic communication methods failed to build the personal relationships required for any software development process. Solution Solution Weekly t-cons Weekly t-cons More frequent face-to-face meetings More frequent face-to-face meetings

14 ITK 10 Year Anniversery Lessons Learned: The Bad Lack of Design Reviews Lack of Design Reviews The lightweight process has its drawbacks. The current process emphasizes coding and testing. This process is well defined and benefits from automation. But, the design process is not well supported by the current mechanisms. The lightweight process has its drawbacks. The current process emphasizes coding and testing. This process is well defined and benefits from automation. But, the design process is not well supported by the current mechanisms. Solution Solution The Insight Journal The Insight Journal Wiki Wiki

15 ITK 10 Year Anniversery Lessons Learned: The Bad Unstable Application Programming Interfaces (API’s) Unstable Application Programming Interfaces (API’s) The nightly test/build was so effective in empowering programmers to make changes, that API changes occurred too frequently without the necessary buy-in from the development community. The nightly test/build was so effective in empowering programmers to make changes, that API changes occurred too frequently without the necessary buy-in from the development community. Solution Solution Increased awareness of the importance of maintaining backward capability Increased awareness of the importance of maintaining backward capability Recognition of a large installed base of customers Recognition of a large installed base of customers

16 ITK 10 Year Anniversery Lessons Learned: The Bad Insufficient Automation Insufficient Automation Automation is critical to maintain consistent style and robust software. Although the project provided many automatic techniques to catch developer errors, the project would benefit from more automation. Automation is critical to maintain consistent style and robust software. Although the project provided many automatic techniques to catch developer errors, the project would benefit from more automation. Solution Solution Email notifications Email notifications Strict commit checks Strict commit checks KWStyle – automated style checking KWStyle – automated style checking

17 ITK 10 Year Anniversery Lessons Learned: The Bad Complexity and Feature Creep Complexity and Feature Creep Like most software development projects, this software suffers from complexity and feature creep. Early designs and implementations used many features of the C++ language to an “extreme”. The team realized and began removing the complexity. Like most software development projects, this software suffers from complexity and feature creep. Early designs and implementations used many features of the C++ language to an “extreme”. The team realized and began removing the complexity. Solution Solution Ongoing reviews Ongoing reviews

18 ITK 10 Year Anniversery Lessons Learned: The Ugly Still need a stick Still need a stick Someone needs to monitor the daily process. Someone needs to monitor the daily process. XP is not everyone’s cup of tea XP is not everyone’s cup of tea Almost all bought into the process Almost all bought into the process A few tolerated it A few tolerated it Some still ignore it Some still ignore it

19 ITK 10 Year Anniversery Lessons To Take Forward Agree on high level requirements early Agree on high level requirements early Agree on process early Agree on process early Weekly communication Weekly 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 packages Due diligence on third party packages Don't underestimate the social aspects of open source Don't underestimate the social aspects of open source API changes should not be made without assessing their impact on customers API changes should not be made without assessing their impact on customers

20 ITK 10 Year Anniversery Final Report, GE Research, May 2006 “Personally, this project has been a highlight of my 38-year career. I have never worked on a project that was more stimulating and satisfying. The personal relationships I made during the project will last a lifetime. Thank you for ITK!”

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


Download ppt "ITK 10 Year Anniversery ITK – Version 4 Looking Back to Look Forward Bill Lorensen marchingcubes.org."

Similar presentations


Ads by Google