software process for distributed teams kitware, inc
TRANSCRIPT
Software Processfor Distributed Teams
KITWARE, Inc.
"An expert is a man who has made
all the mistakes which can be made, in a narrow field."
Niels Bohr
Overview
Insight ToolkitITK
Insight Journal
Image Guided Surgery Toolkit
IGSTK
National Alliancefor Medical Image
ComputingNAMIC
The Insight Toolkit
Publicly funded NLM-NIH : $13M 6 Contractors and 4 Subcontractors 3 Commercial companies and 7 Universities 50 Unique developers 4 Years of development 2 Years of maintenance (so far) 41 platforms ( software + hardware ) 700 C++ Classes 1600 source code files 500 K lines of code
ITK Developers
Insight Toolkit
Software Process
Communication
WeeklyTCons
Users MailingListInstant
MessagingDevelopersMeetings
Tutorials atConferences
BOF atConferences
NetMeeting
FTPfor Data
Developers Users
Dev. MailingList
Wiki
ITK Software Process
Refactoring New Features
Insight Journal Paper
Online Public Reviews
Wiki Proposal
Technical Committee
CVS CommitCVS Commit
Code Reviews
Wiki Proposals
The Insight Journal
The Insight Journal
Technical work must be reproduciblePapers should be publicly accessible
Peer-Review process must be open
Fully Electronic publishing
Open Science
Reproducibility requires sharing
– Source code
– Images
– Parameters
Open source
– Existing algorithms provide services
– New algorithms made available to others
Insight Journal Submission
Code
InputData
JournalRepository
WebSite
ResultsData
Author
BuildMachines
PDF doc
Insight JournalManager
Author
SubmitsProject
DSpace
StoresProject
AutomaticTesting
Environment
PostsResults
Dashboard
SubmitsEntry
Reviewer
ReviewsProject
Process Flow
SendsCode
Online Paper – Open Reviews
NAMIC
Software Process
NAMIC Structure
Core 1 - Algorithms
Harvard
Georgia TechUNC
UtahMIT
Segmentation
Registration
Foundational Methods
Structural Features and Statistics
Connective Features and Statistics
1. Shape and Atlas Based Segmentation
2. Statistical Shape Analysis
3, DTI Connectivity Analysis
1. Diffusion-based Registration
2.Group Effect Maps
3. Automatic Segmentation
1. DTI Processing
2. Surface Processing
3. PDE Implementations
1. Combined Statistical/PDE Methods1. Quantitative DTI Analysis
2. Cross-Sectional Shape Analysis2. Stochastic Flow Models
Figure 3: a) A rendering of a cortical surface, extracted from MRI, shows a degree of noise that significantlyaffects successive processing. b) A feature-preserving, PDE-based filter smooths away small-scale noisewhile preserving sharp features such as the concave regions of the sulci.
(a) (b)
Core 2 - Engineering
GE
IsomicsUCSD
UCLAKitware
Software Integration
Software Engineering
Software Quality
Software Engineering Tools
Data Access Tools
1. Cross-platform Build
2. Cross-platform Distribution
3. Cross-language API’s
1. Software Architecture
2. Software Process
3. Software Quality1. Graphical programming interfaces
2. Coordinate pre-compiled tools
3. Data format interpreters
1. DBP Applications1. Grid Middleware
2. Data Grid 2. Application Methodology
Distributed Computing
Applications
3. Data Mediation 3. Application Quality Assurance
Core 3 – Biological Sciences
Harvard
Dartmouth
1. Fronto-Temporal Connections
2. Cognitive and Behavioral Data
UCI
U.Toronto
1. Brain Regions Involved
2. Clinical Cognitive and Genetic Data
Support Cores (# 4-7)
Service, Training Dissemination Crucial support for the scientific and
engineering enterprise Support core PI’s also have strong scientific
credentials Collaboration history through BIRN and ITK
Training
Dissemination: Events
Good Software
should be easy to teach !
The NAMIC Philosophy
Open Source+
Open Data=
Open Science
NAMIC Software Process
Algorithm Developer
SoftwareEngineer
Insight Journal Paper
Programming Week
Phone / IMCollaboration
Subversion/CVSSandbox
Bottomless Pit ofUseless Research
ITK / VTKSlicer
Wiki ProjectPage
IGSTK
Software Process
IGSTK Team
GeorgetownUniversity
UNCChapel Hill
AtamaiCanada
Kitware
* Subcontracts
PI
STTR – NIH Primary
Design - Implementation Process
SurgicalProcedure
WorkflowAnalysis
FactorizingComponents
Wiki PageRequirements
Wiki PageDesign
SandboxVersion
Code Reviews
CVS Commit
Maintenance
Traceability – FDA Process
Requirements
Bugs
Bug Tracking Database
CVSCommits
Logs
Team Coordination
Design Discussions - Wiki
Requirements - Wiki
Agile yet Strict
Developers Discussions – Tcon, IM, Mailing List, Wiki
Code Reviews
CVSSandbox
CVSMain
Wiki Proposals
Bug Reports
Code Reviews - Wiki
Bugs - CVS Commits linkage
Bugs - CVS Commits linkage
“Though a program be but three lines long, someday it will have to be maintained ."
The Tao of Programming
End
NA-MIC-Organization StructureExternal Advisory
Committee
GovernanceCommittee
Stephen Wong
PI: Core 7 (Management)
Ron Kikinis
Chair, GovernanceTask Force
Steve Pieper
Chair, UtlizationTask Force
e
Eric GrimsonChair, IP
Task Force
Randy GollubChair, Data Sharing
Task Force
Bill Lorensen
Chair, Process ChangeMgt Task Force
Stephen Wong
Chair, Project ChangeMgt Task Force
Will Shroeder
Chair, IT Task Force
Utilization TFProject
ManagementOffice
Governance
TF
IntellectualProperty TF
Data Sharing TF
InformationTechnology TF
Project ChangeManagement TF
Process ChangeManagement TF
NAMIC Cores 1- 6
Eric Grimson
PI: Core 1 (Algorithms)
Bill Lorensen
PI: Core 2 (Engineerg)
Steve Potkins, MarthaShenton
PIs: Core 3 (DrivenBiological Projects)
Will Shroeder
PI: Core 4(Service)
Randy Gollub
PI: Core 5 (Training)
Steve PieperPI: Core 6
(Dissemination)
Randy Gollub
Chair, TrainingTask Force
Traing &Education TF
Steve Pieper
Chair, Content MgtTask Force
ContentManagement TF
Steve Potkin
Chair, Image GeneticsTask Force
ImagingGenetics TF
Ron Kikinis: NAMIC PI
Stephen Wong: Co-PI
Image Processing Method
AlgorithmInput
Image(s)
Parameters
OutputImage(s)
Benefits of the Insight Journal
Allows sharing your Source Code
– Faster and larger impact on the community
Immediate feedback from Readers and Reviewers
– Open Dialog / Forum
No Limitations
– No page limitations
– No limit or charges for colour figures
– Accepting additional electronic material
Benefits of the Insight Journal
Indexed by Google
Post revisions of papers and code
Richer reader’s experience
– Source code available
– Original parameters and images available
– Reader can try on their own data
Accepts practical contributions that are
too small for traditional full Journal Papers
or...
How to develop software with programmers located in distant sites…
without killing each other