Top Banner
June 22, 2005 NCRR NIBIB PI Meeting Open, Distributed and Open, Distributed and Collaborative Software Collaborative Software Development Development Bill Lorensen Bill Lorensen GE Research GE Research [email protected]. [email protected]. com com
60

June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research [email protected].

Jan 15, 2016

Download

Documents

Joshua Fields
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Open, Distributed and Open, Distributed and Collaborative Software Collaborative Software Development Development

Bill LorensenBill Lorensen

GE ResearchGE Research

[email protected]@research.ge.com

Page 2: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

"If you come to a fork in the road, take it."

Page 3: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

The Software ForkThe Software Fork

ClosedClosed OpenOpen

Page 4: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

Google HitsGoogle Hits

““Open Source”: 117,000,000Open Source”: 117,000,000

Page 5: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

A Personal Look BackA Personal Look Back

1976- NASA’s Computer Software 1976- NASA’s Computer Software Management and Information System Management and Information System (COSMIC)(COSMIC)

1978 - MOVIE.BYU1978 - MOVIE.BYU 1984 - GE Research Workstation1984 - GE Research Workstation 1994 - Visualization Toolkit1994 - Visualization Toolkit 2000 - Insight Toolkit2000 - Insight Toolkit

Page 6: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

http://www.bisti.nih.gov/ncbc/http://www.bisti.nih.gov/ncbc/

And a look forwardAnd a look forward

Page 7: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

NIH National Centers For Biomedical NIH National Centers For Biomedical ComputingComputing

……NIH does have NIH does have goals for software goals for software dissemination…dissemination… ……software should be software should be freely availablefreely available … … ……permit the commercializationpermit the commercialization of enhanced of enhanced

or customized versions …or customized versions … ……include the ability of researchers outside the include the ability of researchers outside the

center and its collaborating projects to center and its collaborating projects to modify modify the source code and to share modifications the source code and to share modifications … …

Page 8: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

OutlineOutline

Open Source SoftwareOpen Source Software Inside InsightInside Insight ObservationsObservations

Page 9: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Flattener #4Flattener #4Open SourcingOpen Sourcing

Self-organizing collaborative Self-organizing collaborative communitiescommunities

Page 10: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Open Source Anecdote *Open Source Anecdote *IBM Manager:IBM Manager: “So, walk me through the development process for “So, walk me through the development process for

e-commerce. What’s the underlying web server?”e-commerce. What’s the underlying web server?”

Developer:Developer: “It’s built on top of Apache.” “It’s built on top of Apache.”

Manager:Manager: “Apache?” “Apache?”

Developer:Developer: “A shareware program for web server technology, “A shareware program for web server technology, produced for free by a bunch of geeks working online in some produced for free by a bunch of geeks working online in some open-source chat room.”open-source chat room.”

Manager:Manager: “How do you buy it?” “How do you buy it?”

Developer:Developer: “You download it off a Web site for free.” “You download it off a Web site for free.”

Manager:Manager: “Who supports it if something goes wrong?” “Who supports it if something goes wrong?”

Developer:Developer: “I don’t know, it just works!” “I don’t know, it just works!”

*from The World is Flat

Page 11: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Successful Open Source Successful Open Source ProjectsProjects

Page 12: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Visualization Toolkit - vtkVisualization Toolkit - vtk

Open source toolkit for scientific Open source toolkit for scientific visualization, computer graphics, and visualization, computer graphics, and image processingimage processing

www.vtk.orgwww.vtk.org

Page 13: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Computer Vision Library - vxlComputer Vision Library - vxl

Based on Target jr and Based on Target jr and Image Understanding Image Understanding EnvironmentEnvironment

NumericsNumerics ImagingImaging GeometryGeometry Camera modelsCamera models

vxl.sourceforge.nevxl.sourceforge.nett

Page 14: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

SlicerSlicer

Developed by Brigham and Womens Surgical Developed by Brigham and Womens Surgical Planning LabPlanning Lab

User interface plus plug-ins for applicationsUser interface plus plug-ins for applications SegmentationSegmentation RegistrationRegistration Image GuidanceImage Guidance

www.slicer.orgwww.slicer.org

Page 15: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

SCIRunSCIRun

www.sci.utah.eduwww.sci.utah.edu

l Developed by U Utah SCI InstituteDeveloped by U Utah SCI Institutel Computational WorkbenchComputational Workbenchl Visual ProgrammingVisual Programmingl Modeling, Simulation and Modeling, Simulation and

VisualizationVisualization

Page 16: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

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 A pool of talented and motivated

developers/scientistsdevelopers/scientists A mix of academic and commercialA mix of academic and commercial An organized, light weight approach to An organized, light weight approach to

software developmentsoftware development A leadership structureA leadership structure CommunicationCommunication A business modelA business model

Page 17: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Inside Insight (itk)Inside Insight (itk)

Page 18: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

National Library of MedicineNational Library of MedicineSegmentation and Registration ToolkitSegmentation and Registration Toolkit

$14 million over 6 $14 million over 6 yearsyearsLeading edge Leading edge algorithmsalgorithmsOpen Source SoftwareOpen Source Software

www.itk.orgwww.itk.org

Page 19: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

What is itk?What is itk?

A common Application Programmers Interface (API).A common Application Programmers Interface (API). A framework for software developmentA framework for software development A toolkit for registration and segmentationA toolkit for registration and segmentation An Open Source resource for future researchAn Open Source resource for future research

A validation model for segmentation and registration.A validation model for segmentation and registration. A framework for validation developmentA framework for validation development Assistance for algorithm designersAssistance for algorithm designers A seed repository for validation case studiesA seed repository for validation case studies

Page 20: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Insight - Open Source ProductsInsight - Open Source Products

Page 21: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

itk by the Numbersitk by the Numbers March 2000March 2000

First code checkinFirst code checkin 16001600

# of nightly builds# of nightly builds 910910

# tests run nightly# tests run nightly 2323

# of platforms# of platforms 730730

# of classes# of classes 20002000

# of files with code# of files with code

l 400K400Kl # of lines of code# of lines of code

l 100K100Kl # of lines of test code# of lines of test code

l 45K45Kl # of lines of examples# of lines of examples

l 160K160Kl # of lines of Applications# of lines of Applications

l 220220l # weekly t-cons# weekly t-cons

l 5050l # unique developers# unique developers

Page 22: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

itk by the Numbersitk by the Numbers 186186

# of subscribers to the developers mailing list# of subscribers to the developers mailing list 900900

# of subscribers to the users mailing list# of subscribers to the users mailing list 350350

# of monthly posts to users-list# of monthly posts to users-list

Page 23: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

A Common VisionA Common Vision

Create a Create a dynamicdynamic, , self-sustainingself-sustaining, , public public domaindomain and and extensibleextensible toolkit that will toolkit that will empower researchers throughout the empower researchers throughout the

world to develop new segmentation and world to develop new segmentation and registration algorithms and create new registration algorithms and create new applications that leverage the NLM’s applications that leverage the NLM’s

investment in the Visible Human Male investment in the Visible Human Male and Female data setsand Female data sets

Page 24: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

The Original TeamThe Original Team Six prime contractorsSix prime contractors IndustrialIndustrial

Kitware (Schroeder)Kitware (Schroeder) Insightful (Ng)Insightful (Ng)

UPenn (Gee)UPenn (Gee) GE Research (Lorensen)GE Research (Lorensen)

Brigham and Womens (Kikinis)Brigham and Womens (Kikinis) AcademicAcademic

UNC (Aylward)UNC (Aylward)Pitt (Stetton)Pitt (Stetton)

Utah (Whitaker)Utah (Whitaker) Rutgers (Metaxas)Rutgers (Metaxas)

Columbia (Imielenski)Columbia (Imielenski)UPenn (Udupa)UPenn (Udupa)

Page 25: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Insight ConsortiumInsight Consortium A competitive process selected the development A competitive process selected the development

teamteam Each group was evaluated individually, without Each group was evaluated individually, without

regard to how they might integrate with each otherregard to how they might integrate with each other Each team had strengths in software development, Each team had strengths in software development,

validation or algorithm development, but no one validation or algorithm development, but no one group had the necessary skills to do the entire group had the necessary skills to do the entire projectproject

Distributed software developers with varying software Distributed software developers with varying software engineering experienceengineering experience

Page 26: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Insight Software ArchitectureInsight Software Architecture Object-oriented designObject-oriented design Generic ProgrammingGeneric Programming Design PatternsDesign Patterns FrameworksFrameworks Separation of Algorithms from InterfacesSeparation of Algorithms from Interfaces

Page 27: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Object-Oriented DesignObject-Oriented Design Dominated software systems throughout the Dominated software systems throughout the

1990’s1990’s Continues to be the accepted software Continues to be the accepted software

design techniquedesign technique Particularly useful for dealing with complexityParticularly useful for dealing with complexity Provides programmatic abstractions to deal Provides programmatic abstractions to deal

with generalization and encapsulationwith generalization and encapsulation C++ and Java have mechanisms to support C++ and Java have mechanisms to support

OODOOD

Page 28: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Generic ProgrammingGeneric Programming Organize libraries consisting of generic—Organize libraries consisting of generic—

or reusable—software components. or reusable—software components. The essential ideas of generic The essential ideas of generic

programming are containers to hold data, programming are containers to hold data, iterators to access the data, and generic iterators to access the data, and generic algorithms that use containers and algorithms that use containers and iterators to create efficient, fundamental iterators to create efficient, fundamental algorithms.algorithms.

ITK uses generic programming to ITK uses generic programming to process n-dimensional “images”.process n-dimensional “images”.

Page 29: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Design PatternsDesign Patterns Good object-oriented software systems Good object-oriented software systems

have recurring designs (patterns) that have recurring designs (patterns) that occur frequentlyoccur frequently

ITK employs a number of powerful design ITK employs a number of powerful design patternspatterns object factoriesobject factories command/observercommand/observer smart pointer memory managementsmart pointer memory management

Page 30: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

FrameworksFrameworks Define how a group of participants can be Define how a group of participants can be

put together to solve a particular task. put together to solve a particular task. Particularly suitable for describing Particularly suitable for describing

complex flows or algorithms that have a complex flows or algorithms that have a number of steps that can be variednumber of steps that can be varied

ITK FrameworksITK Frameworks A demand-driven data processing A demand-driven data processing

pipeline that connects algorithms to pipeline that connects algorithms to process n-dimensional image dataprocess n-dimensional image data

Registration frameworkRegistration framework Level-set frameworkLevel-set framework

Page 31: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Registration FrameworkRegistration Framework

Page 32: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Level-Set FrameworkLevel-Set Framework

Page 33: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Separation of Algorithms from Separation of Algorithms from InterfacesInterfaces

Implement the algorithms with a clear Implement the algorithms with a clear separation from the applications and separation from the applications and especially the user interfaces.especially the user interfaces.

Uses the Command/Observer design Uses the Command/Observer design pattern that permits applications to watch pattern that permits applications to watch for significant events during the execution for significant events during the execution of an algorithmof an algorithm

ITK has no built-in visualization, but has ITK has no built-in visualization, but has been interfaced to several systems been interfaced to several systems including 3D Slicer, Analyze, SciRun and including 3D Slicer, Analyze, SciRun and Volview.Volview.

Page 34: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

In search of a new software In search of a new software development processdevelopment process

Page 35: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

Google HitsGoogle Hits

““Extreme Programming”: 698,000Extreme Programming”: 698,000

Page 36: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Extreme ProgrammingExtreme Programming

Page 37: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

A Light Weight Software A Light Weight Software Engineering ProcessEngineering Process

Based on the new Extreme Programming Based on the new Extreme Programming processprocess High intensity design, test, implement High intensity design, test, implement

cyclecycle Supported with web-enabled toolsSupported with web-enabled tools Automated testing integrated with the Automated testing integrated with the

software developmentsoftware development

Page 38: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Extreme ProgrammingExtreme Programming

Compresses the standard analyze, Compresses the standard analyze, design, implement, test cycle into a design, implement, test cycle into a continuous processcontinuous process

Page 39: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

A process supported by a suite of A process supported by a suite of portable, open source toolsportable, open source tools

Apache, perl, phpApache, perl, php Web servicesWeb services

cvs, subversioncvs, subversion Revision controlRevision control

WikiWiki Collaborative content capture Collaborative content capture

DoxygenDoxygen Automated documentationAutomated documentation

CMakeCMake Cross-platform program buildCross-platform program build

DartDart Continuous and distributed test reportingContinuous and distributed test reporting

Page 40: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Extreme ProgrammingExtreme Programming

The community owns the codeThe community owns the code

Although the identity of the original author is Although the identity of the original author is kept, other developers are free to correct kept, other developers are free to correct defects and enhance each other's codedefects and enhance each other's code

In the end, all of the software should appear In the end, all of the software should appear as though one author wrote itas though one author wrote it

Page 41: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Extreme ProgrammingExtreme Programming

Release early, release oftenRelease early, release often

Although developers are tempted to keep their Although developers are tempted to keep their code under wraps until it is perfect, the code under wraps until it is perfect, the process encourages them to release their code process encourages them to release their code as soon as it passes some minimum testsas soon as it passes some minimum tests

The longer the code is visible to the The longer the code is visible to the community, the better integrated it will becommunity, the better integrated it will be

Page 42: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Extreme ProgrammingExtreme Programming

Continuous integrationContinuous integration

There is no scheduled porting to computer There is no scheduled porting to computer platformsplatforms

All new software builds supported platforms All new software builds supported platforms every eveningevery evening

Page 43: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Extreme ProgrammingExtreme Programming

All developers agree to keep the software All developers agree to keep the software defect free.defect free.

Although everyone is encouraged to submit Although everyone is encouraged to submit their code early, the code must compile and their code early, the code must compile and pass tests nightlypass tests nightlyA continuous build process sends e-mails to A continuous build process sends e-mails to developers who check in code that does not developers who check in code that does not compilecompileMore effectively, the community enforces the More effectively, the community enforces the commitment though peer pressurecommitment though peer pressure

Page 44: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Insight - Development CyclesInsight - Development Cycles

Daily – dashboardDaily – dashboard Weekly – telephone conferencesWeekly – telephone conferences Periodic – architecture reviewsPeriodic – architecture reviews Quarterly – developer meetingsQuarterly – developer meetings Yearly – work assignmentsYearly – work assignments

Page 45: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Extreme ProgrammingExtreme ProgrammingDaily Testing Is The KeyDaily Testing Is The Key

Testing anchors and drives the development Testing anchors and drives the development process (Dart)process (Dart)

Opens up the development process to Opens up the development process to everyoneeveryone

Developers monitor the testing dashboard Developers monitor the testing dashboard constantlyconstantly

Problems are identified and fixed immediatelyProblems are identified and fixed immediately Developers receive e-mail if theyDevelopers receive e-mail if they

“Break the Build”“Break the Build”

Page 46: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

How DART Enables How DART Enables CollaborationCollaboration

CVS

Results posted on web(the dashboard)

CVS maintainssource code

revisions DART compilessource code, runs tests

Developers review results

Developers check-in code

Page 47: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Dart

Dart

Page 48: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Page 49: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Multi-Platform BuildsMulti-Platform Builds

Page 50: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Regression Regression TestingTesting

Page 51: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Continuous System Continuous System MonitoringMonitoring

Page 52: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Someone broke Someone broke the build!the build!

Page 53: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Insight Observations: The GoodInsight Observations: 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 Process automation reduces the burden on

developersdevelopers This process can (and will) be repeatedThis process can (and will) be repeated

Page 54: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Insight Observations: The BadInsight Observations: The Bad CommunicationCommunication

Early in the project, communication was limited to the mailing list and the Early in the project, communication was limited to the mailing list and the Quarterly meetings. Almost a year passed before we added the weekly Quarterly meetings. Almost a year passed before we added the weekly telephone conferences. Developers felt isolated and the impersonal telephone conferences. Developers felt isolated and the impersonal electronic communication methods failed to build the personal electronic communication methods failed to build the personal relationships required for any software development process.relationships required for any software development process.

Lack of Design ReviewsLack of Design Reviews The lightweight process has its drawbacks. The current process The lightweight process has its drawbacks. The current process

emphasizes coding and testing. This process is well defined and benefits emphasizes coding and testing. This process is well defined and benefits from automation. But, the design process is not well supported by the from automation. But, the design process is not well supported by the current mechanisms.current mechanisms.

Unstable Application Programming Interfaces (API’s)Unstable Application Programming Interfaces (API’s) The nightly test/build was so effective in empowering programmers to The nightly test/build was so effective in empowering programmers to

make changes, that API changes occurred too frequently without the make changes, that API changes occurred too frequently without the necessary buy-in from the development community. necessary buy-in from the development community. 

Page 55: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Insight Observations: The BadInsight Observations: The Bad Insufficient AutomationInsufficient Automation

Automation is critical to maintain consistent style and robust Automation is critical to maintain consistent style and robust software. Although the project provided many automatic software. Although the project provided many automatic techniques to catch developer errors, the project would techniques to catch developer errors, the project would benefit from more automation.benefit from more automation.

Complexity and Feature CreepComplexity and Feature Creep Like most software development projects, this software Like most software development projects, this software

suffers from complexity and feature creep. Early designs suffers from complexity and feature creep. Early designs and implementations used many features of the C++ and implementations used many features of the C++ language to an “extreme”. The team realized and began language to an “extreme”. The team realized and began removing the complexity.removing the complexity.

Page 56: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Insight Observations: The UglyInsight Observations: The Ugly Still need a stickStill need a stick

Someone needs to monitor the daily Someone needs to monitor the daily process.process.

XP is not everyone’s cup of teaXP is not everyone’s cup of tea Almost all bought into the process. A few Almost all bought into the process. A few

tolerated it.tolerated it.

Page 57: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Parting Thoughts (from Robert Fulghum)Parting Thoughts (from Robert Fulghum)

Share everythingShare everything Play fairPlay fair Don’t hit peopleDon’t hit people Put things back where you found themPut things back where you found them Clean up your own messClean up your own mess Don’t take things that aren’t yoursDon’t take things that aren’t yours Say you’re sorry when you hurt someoneSay you’re sorry when you hurt someone Wash you hands before you eatWash you hands before you eat and…and… FlushFlush

Page 58: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Open Source ResourcesOpen Source Resources www.opensource.orgwww.opensource.org sourceforge.netsourceforge.net

www.itk.orgwww.itk.org www.vtk.orgwww.vtk.org vxl.sourceforge.netvxl.sourceforge.net www.slicer.orgwww.slicer.org www.sci.utah.eduwww.sci.utah.edu

Page 59: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

"If you don't know where you are going, you will wind up somewhere else."

Page 60: June 22, 2005NCRR NIBIB PI Meeting Open, Distributed and Collaborative Software Development Bill Lorensen GE Research lorensen@research.ge.com.

June 22, 2005NCRR NIBIB PI Meeting

Open, Distributed and Open, Distributed and Collaborative Software Collaborative Software Development Development

Bill LorensenBill Lorensen

GE ResearchGE Research

[email protected]@research.ge.com