[LESS INFO] 2 VIEWS | ADDED 19:52:23 12/25/09
Methodologies for developing software have constantly evolved over recent years, with the main impulses coming from large commercial and open-source projects. In the bioinformatics environment however, there are different requirements to a development process: Teams are much smaller, there are many developers in an early training stage, and there is vast domain-specific expertise but little background in computer science. We have explored ways to write well-engineered software in this environment. To do so, we are presently applieng a set of about 12 particular techniques that are easy to learn and apply. These cover planning of software projects (collecting requirements, CRC sheets, basic UML graphs), quality management (coding guidelines, unit tests, TDD, documentation), and communication among team members (pair programming, code reviews). In the presentation, we examine, how the use and negligence of these techniques affected the outcome of 14 bioinformatics software projects in Python. Reasons for success or failure of individual projects are discussed.