Software Process for Distributed Teams KITWARE Inc An
Software Process for 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 Toolkit ITK Insight Journal Image Guided Surgery Toolkit IGSTK National Alliance for Medical Image Computing NAMIC
The Insight Toolkit Publicly funded NLM-NIH : $13 M 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 Weekly TCons FTP for Data Dev. Mailing List Developers Users Wiki Net. Meeting Instant Messaging Developers Meetings BOF at Conferences Tutorials at Conferences Users Mailing List
ITK Software Process Refactoring New Features Wiki Proposal Insight Journal Paper Technical Committee Online Public Reviews CVS Commit Code Reviews
Wiki Proposals
The Insight Journal
The Insight Journal Technical work must be reproducible Papers should be publicly accessible Peer-Review Fully process must be open 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 PDF doc Journal Repository Code Author Input Data Results Data Web Site Build Machines
Process Flow DSpace Stores Project Submits Project Author Insight Journal Manager Sends Code Automatic Testing Environment Submits Entry Posts Results Reviews Project Reviewer Dashboard
Online Paper – Open Reviews
NAMIC Software Process
NAMIC Structure
Core 1 - Algorithms Harvard 1. Diffusion-based Registration MIT 2. Group Effect Maps Utah 3. Automatic Segmentation 1. Shape and Atlas Based Segmentation 1. DTI Processing 2. Statistical Shape Analysis 2. Surface Processing 3, DTI Connectivity Analysis 3. PDE Implementations Segmentation Registration UNC 1. Quantitative DTI Analysis 2. Cross-Sectional Shape Analysis Foundational Methods Structural Features and Statistics Connective Features and Statistics Georgia Tech 1. Combined Statistical/PDE Methods 2. Stochastic Flow Models
Core 2 - Engineering GE 1. Software Architecture Kitware 1. Cross-platform Build 2. Software Process 3. Software Quality 1. Graphical programming interfaces 2. Coordinate pre-compiled tools 2. Cross-platform Distribution 3. Cross-language API’s UCLA 3. Data format interpreters Software Engineering Tools UCSD 1. Grid Middleware 2. Data Grid 3. Data Mediation Software Quality Isomics Software Integration 1. DBP Applications Data Access Tools Distributed Computing Applications 2. Application Methodology 3. Application Quality Assurance
Core 3 – Biological Sciences Harvard UCI Dartmouth U. Toronto 1. Fronto-Temporal Connections 1. Brain Regions Involved 2. Cognitive and Behavioral Data 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 Software Engineer Algorithm Developer Wiki Project Page Phone / IM Collaboration Subversion/CVS Sandbox Programming Week Bottomless Pit of Useless Research Insight Journal Paper ITK / VTK Slicer
IGSTK Software Process
IGSTK Team PI Georgetown University Atamai Canada UNC Chapel Hill Kitware * Subcontracts STTR – NIH Primary
Design - Implementation Process Surgical Procedure Wiki Page Requirements Code Reviews Workflow Analysis Wiki Page Design CVS Commit Factorizing Components Sandbox Version Maintenance
Traceability – FDA Process Bug Tracking Database Requirements Bugs CVS Commits Logs
Team Coordination
Design Discussions - Wiki
Requirements - Wiki
Agile yet Strict Developers Discussions – Tcon, IM, Mailing List, Wiki Proposals CVS Sandbox Code Reviews CVS Main 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 Structure
Image Processing Method Parameters Input Image(s) Algorithm Output Image(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
- Slides: 48