Agile methods
Last Updated (Sunday, 20 June 2010 22:42) Written by Thomas Schütz Monday, 05 April 2010 19:19
Scrum and Extreme Programming (XP)
Both, Scrum and Extreme Programming belong to the agile methods and form an ideal organisational base for our projects.
The Agile Manifesto (2001) defines the values of agile software development as:
- Individuals and interaction are more important than processes and tools
- Working software is more important than extensive documentation
- Continuous collaboration with the customer is more important than contracts
- Responding to change is more important than following a fixed plan
Differences between Scrum and XP
While XP is more concerned about engineering aspects the focus of Scrum is more on the management side. For each project either method or a combination of both can be chosen.
Agile Practices
Protos is practicing core ideas of agile methods since many years. The most important ones will be described below.
Incremental Design
In most cases it is best to start right away with the knowledge at hand. Soon a first prototype will be ready which step by step will be extended. With the new knowledge gained from the prototype also the design will be refined more and more. Refactoring is an integral part of this method and always guarantees a sound design. Also the customer will benefit from incremental design. Frequently also he doesn't know exactly what the software finally should be able to do. By being able to test and work with the software at an early stage he can gather experience. This helps him deciding which are the most important features to be implemented next.
Short cycles
During development we are always able to build a running software from the sources. At the begin of each cycle together with the customer we select new features which should be implemented in this cycle. The period of the cycles ranges from a few days up to two or three weeks at most. Then the customer can test the software, have a look at the new features and propose improvements. Thus in each cycle a new level is reached on the basis of which meaningful decisions for the next cycle can be made.
Test-driven programming
Unit tests, model based integration tests and virtual commissioning ensure quality and always provide the confidence that new features or bugfixes do not produce side effects. The work starts with the implementation of a test or a simulation before the coding that makes the test pass.
Stories
Stories are short informal descriptions of properties and features the software should have. Stories are used to collect material and for selecting priorities. They are written in a simple language from a user perspective. They are not the place for technical details. Stories are assigned priorities before their implementation in the next cycle and are refined as the implementation advances.




