Carsten Dogs; Timo Klimmer MSE-2004:07, pp. 73. TEK/avd. för programvaruteknik, 2004.
In this thesis we investigate the usage of several agile software development methods as well as the usage of certain agile core practices. By conducting a web survey, we examine what makes these practices beneficial and what tends to make them rather less suitable for certain situations. Based on the results, we finally set up some recommendations for practitioners to reflect upon and improve their own software development process. Concerning these recommendations as well as the list of the investigated practices, we hope (and are almost sure) that there are some practices or ideas contained which are worth at least thinking about.
The main findings of this thesis are:
- Agile software development methods have already entered the professional market but they are still no cure-all. In many cases they also produce only middle-quality software. Nevertheless, there is – even if only little – evidence that at least XP projects meet the requirements of the customer better than traditional, non-agile methods.
- For a successful software development project it is important that it has a suitable requirements engineering process, that the produced software is tested sufficiently (using automated regression testing among other types of testing), that there is a good communication between the customer and the developer side, that the risks of the project are considered, that the pros and cons of practices are considered and that processes are improved continuously.
- Besides, it is important to consider the whole context when implementing a certain practice. For some contexts, certain practices do not fit for their purpose and this has to be realized. However, certain shortcomings of a specific practice might be reduced or even eliminated if implemented in combination with other practices.