Scrum is a method in agile software development that has gained enormous popularity in recent years. Understood as a framework, Scrum gives only relatively few fixed rules and thus enables the flexible development process of new and innovative products. Traditional software development with its comparatively rigid structures, its top-down organization and the high documentation effort, on the other hand, quickly reaches its limits in view of today’s ever faster changing customer and market requirements.
Central characteristics of Scrum as a method
It is essential for Scrum that projects are no longer planned from A – Z, because due to the constantly changing external factors it is hardly possible to develop a final, comprehensive plan already at the beginning of a project. With consequences for traditional software development: By conventional means, project goals are often only insufficiently achieved, in some cases even not at all.
In contrast, Scrum follows an agile (i.e. agile) approach and formulates a product vision based on user needs and market requirements instead of a final plan, in order to concretize this gradually in the further course of the project. Development does not take place in a straight line, but in cyclical steps. At the start of the project, user requirements are summarized in so-called user stories using one or two concise sentences.
Iterative Software Development – To the Goal through Adaptive Planning
To pave the way for all this, Scrum consistently relies on the bottom-up organization of projects, differentiates the role of the classical project manager (which is divided into the roles Product Owner, Scrum Master and development team) and gives the development team more freedom for independent, creative work.
Originally from software development, Scrum favours the self-organization of interdisciplinary development teams and the achievement of intermediate results (or the delivery of individual work packages) in so-called sprints. In these two- to four-week, self-contained work phases, the product functionalities and characteristics required in the user stories are implemented and the progress and obstacles in the process are revealed in daily meetings. The product will be further improved sprint by sprint.
The cyclically progressive approach selectively reduces the complexity of projects and simultaneously increases their ability to adapt to external factors. This is the biggest advantage of Scrum (and agile software development at all) compared to classical methods. To put it metaphorically: Agile software development behaves like a fleet of small, agile ships to a slow-reacting ocean liner with a long braking distance.
Scrum in a nutshell
By focusing on a few central rules, self-organization and a comparatively flat communication hierarchy, Scrum makes the project process more flexible, allows quick coordination within the team and enables adaptive planning. It is essential for Scrum that the plan (or product vision), which was initially outlined only in its basic features, is continuously elaborated and refined in the course of the project.
Overall, Scrum can be described as an empirical, incremental and iterative method in agile software development: Based on data and experience, the development process aims to continuously improve the product through repetitive work cycles. The prerequisites for this are:
- Transparency: The respective progress and obstacles in the course of the project are visible for all project participants.
- Review: The increments delivered in the sprints or new functions or features of the product are critically evaluated.
- Adaptation: Product development reacts flexibly to external influences and changing requirements.
Especially in small and medium-sized projects, Scrum can generally achieve better results in a shorter time. Larger projects, on the other hand, require additional interfaces between different development teams – hybrid models that combine the characteristics of classic and agile software development are recommended.