Agile methods in biomedical software development: a multi-site experience report

BackgroundAgile is an iterative approach to software development that relies on strong collaboration and automation to keep pace with dynamic environments. We have successfully used agile development approaches to create and maintain biomedical software, including software for bioinformatics. This paper reports on a qualitative study of our experiences using these methods.ResultsWe have found that agile methods are well suited to the exploratory and iterative nature of scientific inquiry. They provide a robust framework for reproducing scientific results and for developing clinical support systems. The agile development approach also provides a model for collaboration between software engineers and researchers. We present our experience using agile methodologies in projects at six different biomedical software development organizations. The organizations include academic, commercial and government development teams, and included both bioinformatics and clinical support applications. We found that agile practices were a match for the needs of our biomedical projects and contributed to the success of our organizations.ConclusionWe found that the agile development approach was a good fit for our organizations, and that these practices should be applicable and valuable to other biomedical software development efforts. Although we found differences in how agile methods were used, we were also able to identify a set of core practices that were common to all of the groups, and that could be a focus for others seeking to adopt these methods.

[1]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[2]  Ken Schwaber,et al.  Agile Software Development with SCRUM , 2001 .

[3]  J. B. Rainsberger,et al.  JUnit Recipes: Practical Methods for Programmer Testing , 2004 .

[4]  Bjørn N. Freeman-Benson,et al.  YP and urban simulation: applying an agile programming methodology in a politically tempestuous domain , 2003, Proceedings of the Agile Development Conference, 2003. ADC 2003.

[5]  Martin Fowler,et al.  Planning Extreme Programming , 2000 .

[6]  Moses M. Hohman Estimating in actual time [extreme programming] , 2005, Agile Development Conference (ADC'05).

[7]  Lucas Layman,et al.  Exploring extreme programming in context: an industrial case study , 2004, Agile Development Conference.

[8]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[9]  Pem Systems,et al.  Extending Agile Methods:A Distributed Project and Organizational Improvement Perspective Paul E. McMahon , 2005 .

[10]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

[11]  Craig Larman,et al.  Agile and Iterative Development: A Manager's Guide , 2003 .

[12]  Alistair Cockburn,et al.  Agile Software Development , 2001 .

[13]  Dave Thomas,et al.  Mock Objects , 2002, IEEE Softw..

[14]  Andrew Hunt,et al.  Pragmatic Unit Testing in Java with JUnit , 2003 .

[15]  Michael Henderson,et al.  Making agile development work in a government contracting environment-measuring velocity with earned value , 2003, Proceedings of the Agile Development Conference, 2003. ADC 2003.

[16]  Mary Lynn Manns Fearless change : patterns for introducing new ideas / by Mary Lynn Manns and Linda Rising , 2005 .

[17]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[18]  Kurt Schneider,et al.  Breaking the ice for agile development of embedded software: an industry experience report , 2004, Proceedings. 26th International Conference on Software Engineering.

[19]  Michael K. Spayd Evolving agile in the enterprise: implementing XP on a grand scale , 2003, Proceedings of the Agile Development Conference, 2003. ADC 2003.

[20]  David M. Dikel,et al.  Software Architecture: Organizational Principles and Patterns , 2001 .

[21]  Nancy Van Schooenderwoert,et al.  Taming the embedded tiger - agile test techniques for embedded software , 2004, Agile Development Conference.

[22]  Hakan Erdogmus,et al.  Scaling Agile Methods , 2003, IEEE Softw..

[23]  Mary Lynn Manns,et al.  Fearless Change: Patterns for Introducing New Ideas , 2004 .