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

Slides:



Advertisements
Similar presentations
NA-MIC National Alliance for Medical Image Computing National Alliance for Medical Image Computing: NAMIC Ron Kikinis, M.D.
Advertisements

SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Graffiti Reporting A partnership of Local and State Government; My Local Services App enhancements.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
© 2013 IBM Corporation Information Management Discovering the Value of IBM InfoSphere Information Analyzer IBM Software Group 1Discovering the Value of.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research
Software Engineering Lecture No:12. Lecture # 7
© 2009 GroundWork Open Source, Inc. PROPRIETARY INFORMATION: Information contained herein is not for use or disclosure outside of GroundWork Open Source,
Rapid Prototyping Model
Software Process for Distributed Teams KITWARE, Inc.
Project Proposal: Academic Job Market and Application Tracker Website Project designed by: Cengiz Gunay Client: Cengiz Gunay Audience: PhD candidates and.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering End-user Platform Steve Pieper Isomics, Inc.
NA-MIC National Alliance for Medical Image Computing IGT Software Design and Process Bill Lorensen GE Research.
William Lorensen GE Research Niskayuna, NY February 12, 2001 Insight Segmentation and Registration Toolkit.
September 6, 2007Open Source Software Practice Overview of the Software Process Bill Lorensen GE Research (retired)
Chapter 3 – Agile Software Development Lecture 2 1Chapter 3 Agile software development.
1 CMPT 275 Software Engineering Software life cycle.
Capability Maturity Model Part One - Overview. History Effort started by SEI and MITRE Corporation  assess capability of DoD contractors First.
Chapter 2 The process Process, Methods, and Tools
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
IS2210: Systems Analysis and Systems Design and Change Twitter:
NA-MIC National Alliance for Medical Image Computing The NA-MIC Kit National Alliance for Medical Image Computing.
NA-MIC National Alliance for Medical Image Computing Robust Cerebrum and Cerebellum Segmentation for Neuroimage Analysis Jerry L. Prince,
NA-MIC National Alliance for Medical Image Computing NA-MIC Software Engineering Bill Lorensen GE Research NA-MIC Engineering Core PI.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
NA-MIC National Alliance for Medical Image Computing Why NITRC Matters to NA-MIC Steve Pieper, PhD.
Programs That Succeed “Building Student Leadership Teams” The Key to Building Ownership in the Classroom John Chevalier CTE Instructor / Apple Certified.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Emerging Information Systems Chapter 8. Chapter Objectives Explain why companies are continually looking for new ways to use technology for competitive.
Software Development Process and Management (or how to be officious and unpopular)
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Community Software Engineering Practices and Principles A Case Study of the Open Source Insight Toolkit (ITK) Terry Yoo (National Library of Medicine),
May05-36: Boone Cemetery Management Software Boone Cemetery Management Software May05-36 Greg Thede, Director, Boone Parks Department Dr. Kothari Joseph.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Putting the “Engineering” in Software Engineering: Technology Infrastructure in Process Improvement Adam Kolawa, Ph.D. CEO, Parasoft.
1.2. P ROJECT I NFORMATION Important project information and advice.
XP Explained Chapters 7-9. Primary Practices  Sit together Ideal Resistance Multi-site  Whole Team All the necessary skills in a single management structure.
William Schroeder, Ph.D. §, Andy Cedilnik §, Sebastien Barré, Ph.D. §, William Lorensen ‡, James Miller, Ph.D. ‡, Daniel Blezek, Ph.D. ‡ § Kitware Inc.,
Open Source Software in Image Guided Surgery and New Age of Publishing Luis Ibáñez KITWARE, Inc.
NA-MIC National Alliance for Medical Image Computing The NA-MIC Kit: ITK, VTK, Pipelines, Grids and 3D Slicer as An Open Platform for.
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Goals for Presentation Explain the basics of software development methodologies Explain basic XP elements Show the structure of an XP project Give a few.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
Slicer 3 Ron Kikinis, Steve Pieper. CTK Workshop Heidelberg, June 29/30, 2009 Slicer Goals  Stable, Usable, Cross Platform, End-User Software for Medical.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Computational Platform Jim Miller GE Research.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
Introduction Welcome to Class! Counseling 120 Counseling 120 College and Career Success.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Data Management Stephen R. Aylward Kitware, Inc.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Department of Psychiatry, Department of Computer Science, 3 Carolina Institute for Developmental Disabilities 1 Department of Psychiatry, 2 Department.
ETICS An Environment for Distributed Software Development in Aerospace Applications SpaceTransfer09 Hannover Messe, April 2009.
Software Design and Architecture
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
National Immunization Conference March 2006 Integrating Immunization Registries with a Disease Surveillance and Management System Michael L. Popovich
Systems Development Process and Methodologies Dr. T. Ravichandran.
Pipeline Execution Environment
Core 2 Progress Day 1 Salt Lake City
Unified Process Source & Courtesy: Jing Zou.
National Library of Medicine Segmentation and Registration Toolkit
The Insight Software Consortium InsightSoftwareConsortium
The Obermeier Software SNMP OPC Server 3.0
Software Testing and Maintenance Maintenance and Evolution Overview
Presentation transcript:

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

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

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

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

ITK 10 Year Anniversery NLM seeks proposals 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

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

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

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

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

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

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

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

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

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

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

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 notifications notifications Strict commit checks Strict commit checks KWStyle – automated style checking KWStyle – automated style checking

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

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

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

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

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