Agile methods in biomedical software development: a multi-site experience report
- Equal contributors
1 SRA International, 4300 Fair Lakes Court, Fairfax, VA 22033, USA
2 Center for Functional Genomics, Northwestern University, 2205 Tech Drive #2-160, Evanston, Illinois 60208, USA
3 Memorial Sloan-Kettering Cancer Center, Computational Biology Center, 1275 York Avenue, Box #460, New York, NY 10021, USA
4 Fred Hutchinson Cancer Research Center, 1100 Fairview Avenue North, Seattle, WA 98109, USA
5 Applied Biosystems, 850 Lincoln Centre Drive, Foster City, CA 94404, USA
6 Vanderbilt Medical Center, 2209 Garland Avenue, 416 Eskind Biomedical Library, Nashville, TN 37232-8340, USA
BMC Bioinformatics 2006, 7:273 doi:10.1186/1471-2105-7-273Published: 30 May 2006
Agile 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.
We 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.
We 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.