author: Richard Cornelissen
title: Towards a Methodology-Growing Framework
company: Topicus onderwijs
topics: Software Technology
committee: L. Bergmans ,
Christoph Bockisch ,
T. Palsma ,
W. Pollmann
end: November 2013


Software development methodologies instruct teams how to collaborate on de- veloping software for their project. Methodologies include, among others, pro- cedures, tasks, techniques, guidelines, and tools. As each software project is unique, each requires its own, tailored methodology, or way of working. With an inadequate methodology, or one that remains unadopted by the team, the project could end in failure.

The methodology-growing technique defined by Cockburn allows to create a suitable methodology for a software project. This technique does not support existing projects, though. Furthermore, it does not provide suggestions and guidance what to change to the methodology.

This thesis proposes to extend the methodology-growing technique into a frame- work that is able to support organizations in attaining suitable and adopted methodologies for software projects. Properties of the software project are col- lected that influence decisions on its methodology. These are used to prepare and hold incremental reflection workshops. During these workshops, team members collaboratively improve the methodology, making decisions on their previous experiences and on the properties of the project.

We propose to define methodologies as a composition of software development practices. Practices can be documented, reused and incorporated into method- ologies when they are applicable. We propose to extend documented practices with their usage criteria. These descriptions indicate when a practice is suitable and how it can be adjusted to the project.

The methodology-growing framework has been applied at a small-scale project to improve its methodology. Furthermore, surveys have been held with employees at the organization where the project is located. The case study and evaluation together show the framework is usable to improve the methodologies of software projects. 


Additional Resources

  1. The paper