SCRUM

Scrum is probably the most used agile software development management approach. It was developed by Ken Schwaber and Jeff Sutherland which maintain a Scrum Guide.

Contrarily to the plan-driven approaches, where the plan aims to foresee and control what is going to happen during the whole project, Scrum defines incremental iterations of 2-4 weeks, called sprints, where an increment of functionality is developed and delivered to the client. This allows short feedback cycles where after each sprint both the team and the client reassess themselves. The team reassess their performance, the amount of functionality they were able to produce during the sprint, called the team velocity, and use it as yesterday’s weather for next sprint planning. On the other hand, the client reassess his priorities, whether there are changes in the requirements and in the business priorities. The client’s reassessment drives the selection of which functionality will be implemented in the next sprint, which is called the sprint backlog.

Scrum is driven by the creation of value in the product. Therefore, the functionalities should have a business value that is assigned by the client, referred in Scrum as the Product Owner. These functionalities are called stories, and they aim to establish the value of the product. They are not mere descriptions of interactions between the users and the system, like for instance use cases. Contrarily to use cases, stories do not contain a detailed description of the interactions, because the set of stories of a project does not constitute a requirements document the developers will use to implement the system. In Scrum the product owner is part of the team and during development he works with developers in the implementation of stories, for instance by designing and executing acceptance tests. Scrum emphasis validation.

Stories are also used in Scrum to define the size of the product, measured in story points. To a simple story is assigned a story point and to more complex stories are assigned story points using the simple story as reference. The team velocity is measured in terms of the number of story points that can be implemented during a sprint.

Although Scrum promotes replanning after each sprint it is very strict about the occurrence of changes during a sprint. A sprint defines a goal for the increment to be delivered. The value of the stories in the sprint backlog should comply with the goal to be achieved. During the sprint the team should be focused on the goal to be achieved such that after a sprint the team feels that they have succeeded and the product is incremented with more value. However, if the team works faster or slower than planned it is possible to, respectively, add or remove stories from the sprint backlog, but this should not compromise, nor change, the business value of the increment being implemented. The greek Sisyphus myth represents why a goal is important for working. Infinite work is no work at all.