Agile software development according to Scrum
This article describes the most important aspects of agile software development, including epics, user stories and Scrum events. It serves as a guide and reference for our teams and customers to effectively implement agile methodologies together using the Scrum framework.
Differentiation of Scrum from the requirements specification and waterfall approach
The requirements specification approach is a traditional approach to software development that is used in many companies and projects. It is based on a detailed and comprehensive specification of the software requirements and focuses on comprehensive planning and documentation.
Requirements specification: The requirements specification sets out the requirements for the software from the customer's or client's point of view. It describes the desired functions, performance features and quality requirements. The requirements specification forms the basis for the further planning and development of the software.
Functional specification: The functional specification is created on the basis of the requirements specification and contains a detailed specification of the functional and non-functional requirements for the software. It defines how the requirements are to be implemented and describes the functionality of the software from a technical perspective.
Sequential development process: The requirements and functional specification approach follows a sequential development process in which the development phases are worked through one after the other. This means that each phase must be completed before the next is started. Typically, this approach includes the phases of requirements analysis, system design, implementation, testing and commissioning.
Comprehensive planning and documentation: A key feature of the requirements and functional specification approach is comprehensive planning and documentation. Detailed specifications, designs, test plans and documentation are created to support the entire development process and ensure that the requirements are met.
The waterfall method is a specific implementation of the requirements and functional specification approach and follows a strictly linear and sequential process model.
Waterfall approach
Here are the main phases of the waterfall approach:
Requirements definition: In this phase, the requirements are recorded and specified in the form of a specification sheet. All of the customer's functional and non-functional requirements are identified.
System design: Detailed technical specifications and architecture plans are drawn up in the system design phase. Decisions are made regarding the software architecture, database structure and interfaces.
Implementation: In this phase, the software is developed according to the specifications and plans. The code is written and the components are integrated.
Testing: After implementation, the software is tested extensively to ensure that it meets the requirements and works without errors
In complex software projects, this often means an extensive specification phase, sometimes lasting months, which could hardly meet current requirements (e.g. due to change requests from the market and/or stakeholders). In addition, due to the long planning phases, the software used and specified was often already outdated when the first versions were released.
The alternative: Scrum - agile project management
Scrum is an agile project management method that differs greatly from traditional approaches such as the requirements specification and the waterfall approach and goes back to the so-called"Agile Manifesto". Here are the main differences between them:
Flexibility and adaptability: Scrum is characterized by its flexibility and adaptability. It allows requirements and priorities to be changed during the project. In contrast, the requirements specification and the waterfall approach are based on rigid and predefined planning, which makes it difficult to implement changes.
Iterative and incremental development: Scrum follows an iterative and incremental approach in which the project is developed in short periods of time, known as sprints. Each sprint delivers an incremental result. In the waterfall approach, on the other hand, the project is developed sequentially in fixed phases, whereby each phase must be completed before the next can begin.
Collaboration and self-organization: Scrum emphasizes close collaboration and communication within the development team and the self-organization of team members. The requirements and functional specifications and the waterfall approach, on the other hand, require a hierarchical structure and a strict separation of responsibilities between team members.
Customer orientation: Scrum attaches great importance to involving the customer throughout the entire development process. The customer is actively involved in the planning, review and prioritization of requirements. In contrast, in the requirements specification and waterfall approach, the requirements are defined in advance and the customer has limited opportunities to help shape them.
Continuous improvement: Scrum is based on the principle of continuous improvement. The team regularly reflects and adapts its working methods in order to increase efficiency and quality. The requirements specification and the waterfall approach, on the other hand, rely on predefined planning in which improvements during the project can only be taken into account to a limited extent.
In summary, Scrum is more flexible, customer-oriented, iterative and team-centered compared to the requirements specification and the waterfall approach. It offers an agile alternative for projects where requirements and priorities change frequently or where close collaboration with the customer is required.
Basic principles of Scrum
One of the basic principles of Scrum is that the development team and the project management (product owner) are in constant communication and jointly specify the requirements for the software to be developed. The product owner acts as a communicative interface to the stakeholders and conveys the requirements, priorities and business values to the development team.
The product owner is responsible for effective product backlog management, which includes the following
- Development and explicit communication of the product goal
- Creating and clearly communicating product backlog items
- Arranging product backlog items
- Ensuring that the product backlog is transparent, visible and understandable
The Product Owner can take on this work or delegate responsibility to other members of the Scrum team. Regardless of who does the work, the Product Owner remains responsible for ensuring that it is done and that the value is delivered.
Large, as yet unspecific topics are managed as epics in the product backlog. Epics are large, overarching requirements or functionalities that can be broken down into smaller, manageable units. They represent comprehensive business goals or customer wishes. Epics should be specified, prioritized and divided into user stories to enable a step-by-step development process.