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

BMC Bioinformatics. 2006 May 30:7:273. doi: 10.1186/1471-2105-7-273.

Abstract

Background: 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.

Results: 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.

Conclusion: 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.

Publication types

  • Research Support, N.I.H., Extramural
  • Research Support, Non-U.S. Gov't

MeSH terms

  • Algorithms
  • Automation
  • Computational Biology / methods*
  • Computers
  • Database Management Systems
  • Databases, Genetic
  • Diffusion of Innovation
  • Hospital Information Systems
  • Hospitals
  • Humans
  • Medical Informatics
  • Multicenter Studies as Topic
  • Programming Languages
  • Software
  • Software Design*
  • Systems Integration