Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Process for Distributed Teams KITWARE, Inc.

Similar presentations


Presentation on theme: "Software Process for Distributed Teams KITWARE, Inc."— Presentation transcript:

1 Software Process for Distributed Teams KITWARE, Inc.

2 "An expert is a man who has made all the mistakes which can be made, in a narrow field." Niels Bohr

3 Overview Insight Toolkit ITK Insight Journal Image Guided Surgery Toolkit IGSTK National Alliance for Medical Image Computing NAMIC

4 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

5 ITK Developers

6 Insight Toolkit Software Process

7 Communication Weekly TCons Users Mailing List Instant Messaging Developers Meetings Tutorials at Conferences BOF at Conferences NetMeeting FTP for Data Developers Users Dev. Mailing List Wiki

8 ITK Software Process RefactoringNew Features Insight Journal Paper Online Public Reviews Wiki Proposal Technical Committee CVS Commit Code Reviews

9 Wiki Proposals

10 The Insight Journal

11 Technical work must be reproducible Papers should be publicly accessible Peer-Review process must be open Fully Electronic publishing

12 Open Science Reproducibility requires sharing – Source code – Images – Parameters Open source – Existing algorithms provide services – New algorithms made available to others

13 Insight Journal Submission Code Input Data Journal Repository Web Site Results Data Author Build Machines PDF doc

14 Insight Journal Manager Author Submits Project DSpace Stores Project Automatic Testing Environment Posts Results Dashboard Submits Entry Reviewer Reviews Project Process Flow Sends Code

15 Online Paper – Open Reviews

16 NAMIC Software Process

17 NAMIC Structure

18 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 Methods 1. Quantitative DTI Analysis 2. Cross-Sectional Shape Analysis 2. Stochastic Flow Models

19 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’s1. Software Architecture2. Software Process3. Software Quality1. Graphical programming interfaces 2. Coordinate pre-compiled tools 3. Data format interpreters1. DBP Applications 1. Grid Middleware 2. Data Grid 2. Application Methodology Distributed Computing Applications 3. Data Mediation3. Application Quality Assurance

20 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

21 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

22 Training

23 Dissemination: Events

24 Good Software should be easy to teach !

25 The NAMIC Philosophy Open Source + Open Data = Open Science

26 NAMIC Software Process Algorithm Developer Software Engineer Insight Journal Paper Programming Week Phone / IM Collaboration Subversion/CVS Sandbox Bottomless Pit of Useless Research ITK / VTK Slicer Wiki Project Page

27 IGSTK Software Process

28 IGSTK Team Georgetown University UNC Chapel Hill Atamai Canada Kitware * Subcontracts PI STTR – NIH Primary

29 Design - Implementation Process Surgical Procedure Workflow Analysis Factorizing Components Wiki Page Requirements Wiki Page Design Sandbox Version Code Reviews CVS Commit Maintenance

30 Traceability – FDA Process Requirements Bugs Bug Tracking Database CVS Commits Logs

31 Team Coordination

32 Design Discussions - Wiki

33 Requirements - Wiki

34 Agile yet Strict Developers Discussions – Tcon, IM, Mailing List, Wiki Code Reviews CVS Sandbox CVS Main Wiki Proposals Bug Reports

35 Code Reviews - Wiki

36 Bugs - CVS Commits linkage

37

38 “Though a program be but three lines long, someday it will have to be maintained." The Tao of Programming

39 End

40

41

42

43

44 NA-MIC-Organization Structure

45 Image Processing Method Algorithm Input Image(s) Parameters Output Image(s)

46 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

47 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

48 or... How to develop software with programmers located in distant sites… without killing each other


Download ppt "Software Process for Distributed Teams KITWARE, Inc."

Similar presentations


Ads by Google