Software Process for Distributed Teams KITWARE, Inc.

48
Software Process for Distributed Teams KITWARE, Inc.

Transcript of Software Process for Distributed Teams KITWARE, Inc.

Page 1: Software Process for Distributed Teams KITWARE, Inc.

Software Processfor Distributed Teams

KITWARE, Inc.

Page 2: 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

Page 3: Software Process for Distributed Teams KITWARE, Inc.

Overview

Insight ToolkitITK

Insight Journal

Image Guided Surgery Toolkit

IGSTK

National Alliancefor Medical Image

ComputingNAMIC

Page 4: Software Process for Distributed Teams KITWARE, Inc.

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

Page 5: Software Process for Distributed Teams KITWARE, Inc.

ITK Developers

Page 6: Software Process for Distributed Teams KITWARE, Inc.

Insight Toolkit

Software Process

Page 7: Software Process for Distributed Teams KITWARE, Inc.

Communication

WeeklyTCons

Users MailingListInstant

MessagingDevelopersMeetings

Tutorials atConferences

BOF atConferences

NetMeeting

FTPfor Data

Developers Users

Dev. MailingList

Wiki

Page 8: Software Process for Distributed Teams KITWARE, Inc.

ITK Software Process

Refactoring New Features

Insight Journal Paper

Online Public Reviews

Wiki Proposal

Technical Committee

CVS CommitCVS Commit

Code Reviews

Page 9: Software Process for Distributed Teams KITWARE, Inc.

Wiki Proposals

Page 10: Software Process for Distributed Teams KITWARE, Inc.

The Insight Journal

Page 11: Software Process for Distributed Teams KITWARE, Inc.

The Insight Journal

Technical work must be reproduciblePapers should be publicly accessible

Peer-Review process must be open

Fully Electronic publishing

Page 12: Software Process for Distributed Teams KITWARE, Inc.

Open Science

Reproducibility requires sharing

– Source code

– Images

– Parameters

Open source

– Existing algorithms provide services

– New algorithms made available to others

Page 13: Software Process for Distributed Teams KITWARE, Inc.

Insight Journal Submission

Code

InputData

JournalRepository

WebSite

ResultsData

Author

BuildMachines

PDF doc

Page 14: Software Process for Distributed Teams KITWARE, Inc.

Insight JournalManager

Author

SubmitsProject

DSpace

StoresProject

AutomaticTesting

Environment

PostsResults

Dashboard

SubmitsEntry

Reviewer

ReviewsProject

Process Flow

SendsCode

Page 15: Software Process for Distributed Teams KITWARE, Inc.

Online Paper – Open Reviews

Page 16: Software Process for Distributed Teams KITWARE, Inc.

NAMIC

Software Process

Page 17: Software Process for Distributed Teams KITWARE, Inc.

NAMIC Structure

Page 18: Software Process for Distributed Teams KITWARE, Inc.

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)

Page 19: Software Process for Distributed Teams KITWARE, Inc.

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

Page 20: Software Process for Distributed Teams KITWARE, Inc.

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

Page 21: Software Process for Distributed Teams KITWARE, Inc.

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

Page 22: Software Process for Distributed Teams KITWARE, Inc.

Training

Page 23: Software Process for Distributed Teams KITWARE, Inc.

Dissemination: Events

Page 24: Software Process for Distributed Teams KITWARE, Inc.

Good Software

should be easy to teach !

Page 25: Software Process for Distributed Teams KITWARE, Inc.

The NAMIC Philosophy

Open Source+

Open Data=

Open Science

Page 26: Software Process for Distributed Teams KITWARE, Inc.

NAMIC Software Process

Algorithm Developer

SoftwareEngineer

Insight Journal Paper

Programming Week

Phone / IMCollaboration

Subversion/CVSSandbox

Bottomless Pit ofUseless Research

ITK / VTKSlicer

Wiki ProjectPage

Page 27: Software Process for Distributed Teams KITWARE, Inc.

IGSTK

Software Process

Page 28: Software Process for Distributed Teams KITWARE, Inc.

IGSTK Team

GeorgetownUniversity

UNCChapel Hill

AtamaiCanada

Kitware

* Subcontracts

PI

STTR – NIH Primary

Page 29: Software Process for Distributed Teams KITWARE, Inc.

Design - Implementation Process

SurgicalProcedure

WorkflowAnalysis

FactorizingComponents

Wiki PageRequirements

Wiki PageDesign

SandboxVersion

Code Reviews

CVS Commit

Maintenance

Page 30: Software Process for Distributed Teams KITWARE, Inc.

Traceability – FDA Process

Requirements

Bugs

Bug Tracking Database

CVSCommits

Logs

Page 31: Software Process for Distributed Teams KITWARE, Inc.

Team Coordination

Page 32: Software Process for Distributed Teams KITWARE, Inc.

Design Discussions - Wiki

Page 33: Software Process for Distributed Teams KITWARE, Inc.

Requirements - Wiki

Page 34: Software Process for Distributed Teams KITWARE, Inc.

Agile yet Strict

Developers Discussions – Tcon, IM, Mailing List, Wiki

Code Reviews

CVSSandbox

CVSMain

Wiki Proposals

Bug Reports

Page 35: Software Process for Distributed Teams KITWARE, Inc.

Code Reviews - Wiki

Page 36: Software Process for Distributed Teams KITWARE, Inc.

Bugs - CVS Commits linkage

Page 37: Software Process for Distributed Teams KITWARE, Inc.

Bugs - CVS Commits linkage

Page 38: Software Process for Distributed Teams KITWARE, Inc.

“Though a program be but three lines long, someday it will have to be maintained ."

The Tao of Programming

Page 39: Software Process for Distributed Teams KITWARE, Inc.

End

Page 40: Software Process for Distributed Teams KITWARE, Inc.
Page 41: Software Process for Distributed Teams KITWARE, Inc.
Page 42: Software Process for Distributed Teams KITWARE, Inc.
Page 43: Software Process for Distributed Teams KITWARE, Inc.
Page 44: Software Process for Distributed Teams KITWARE, Inc.

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

Page 45: Software Process for Distributed Teams KITWARE, Inc.

Image Processing Method

AlgorithmInput

Image(s)

Parameters

OutputImage(s)

Page 46: Software Process for Distributed Teams KITWARE, Inc.

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

Page 47: Software Process for Distributed Teams KITWARE, Inc.

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

Page 48: Software Process for Distributed Teams KITWARE, Inc.

or...

How to develop software with programmers located in distant sites…

without killing each other