Agile requirements engineering: basics and differences to the classic approach

Contents
Agile requirements engineering: basics, differences to the classic approach and frequently asked questions
Requirements engineering is not explicitly defined in agile methods. But does it play a role in development? Yes, but it takes place iteratively and continuously throughout the entire development process.
[DEFINITION][Scrum][Scrum is one of the best-known agile methods and has proven itself as a framework for the development of complex products. The central principle of "inspect and adapt" is implemented through regular events such as daily scrums, sprint reviews and retrospectives, as well as short feedback cycles, so that teams can continuously review their processes and results and make targeted improvements].
Work results are regularly reviewed and, if necessary, both the product and the work process are adapted to enable continuous improvements based on new findings or changed conditions.
Although the elicitation and consolidation of requirements play an important role in the successful development of complex products, the integration of requirements engineering (RE) into agile methods is of interest. Where exactly do agile methods need requirements engineering and how is this integration organized?
To answer these questions, we will first examine the role of requirements engineering in traditional process models before looking at the challenges and opportunities of integration in an agile context.
Requirements engineering in traditional process models
Traditional process models structure the development process into clearly defined phases with fixed time frames. The sequence of these phases, the activities included and the responsibilities are defined in the process model.
[DEFINITION][Requirements engineering in classic process models][In the classic approach, requirements engineering usually takes place at the beginning of the process. Here, the requirements for the system to be developed are comprehensively collected, agreed and documented before the actual implementation begins. This is followed by further phases such as system design, implementation and testing. This means that all requirements are specified in detail before implementation begins].
Requirements engineering in agile projects
[DEFINITION][Agile requirements engineering][In agile projects, the initial focus is on developing a minimum viable product (MVP). The MVP is an initial version of the planned product with the most basic functions to fulfill a customer need. Further requirements are identified in subsequent iterations and implemented according to their priority. In this way, it is possible to react quickly and agilely to new customer requirements and changing framework conditions. In an agile context, there is no separate phase for analyzing requirements].
But where and when exactly do the main activities of requirements engineering, such as the elicitation, documentation, review, coordination and management of requirements, take place?
- Requirements elicitation
The product owner (PO) is responsible for eliciting requirements. He interacts with the relevant stakeholders and records their needs and requirements. These are often recorded as user stories in the product backlog. Elicitation is an ongoing task that takes place over the entire development period of the product. During refinement meetings, the user stories are discussed with the team, adjusted and refined if necessary. Once a user story has been sufficiently prioritized and planned for the next sprint, the PO presents it to the entire team in the sprint planning meeting. Further requirements can be identified or refined.
- Documentation of requirements
The documentation of a requirement begins with the addition of a user story to the product backlog and the addition of acceptance criteria. In addition to individual acceptance criteria, there are general criteria that apply to all requirements and, for example, represent the team's quality standard. These are recorded in a separate Definition of Done (DoD), which is binding for the entire team. Depending on the complexity of a requirement, it may turn out during your refinement or sprint planning meeting that additional structured documentation is useful, such as context or state diagrams, activity diagrams or class diagrams. The product backlog comprises requirements at a high level of abstraction in the form of user stories. These are only detailed and refined when they are selected for the next iteration. Although the product owner is responsible for the product backlog, business analysts and developers from the interdisciplinary team can support the PO in creating and refining user stories.
- Review and coordination
The review and coordination of requirements is crucial to ensure a common understanding. During the creation of user stories, an initial coordination of the recorded requirements with all relevant stakeholders takes place. This process is also carried out during the refinement meetings and sprint planning sessions with the team in order to achieve a common understanding of the content and ensure the necessary clarity for the implementation of the requirements.
- Requirements management
In an agile project, requirements are continuously recorded and refined, which means that the product backlog is constantly changing. It therefore requires continuous maintenance and management to keep it up to date. Backlog management is an ongoing task to maintain the product backlog. The same applies to the sprint backlog, which should reflect the current status of work in the current sprint. In contrast to the product backlog, however, responsibility for the sprint backlog lies with the team.
Conclusion on agile requirements engineering
Requirements engineering retains the same importance in agile environments as in traditional approaches. Since requirements can evolve continuously in agile contexts, requirements engineering is carried out iteratively and throughout the entire development process.
Comprehensive requirements documentation is being replaced by more lightweight approaches such as backlogs, user stories and story maps.
Agility and flexibility should not be used as an excuse for inadequate requirements engineering or an unstructured, ad-hoc approach to requirements capture.
IREB® Requirements Engineering Training and Certification
The standardized requirements engineering methodology of IREB® creates a uniform understanding among all project participants - and thus lays the foundation for sustainable project success. With our IREB® training courses, you will build up all the skills you need for professional, standardized and agile requirements engineering. Our practical courses prepare you optimally for your IREB® certification. Book your IREB® Requirements Engineering course now.
[PRODUCT][1]
Important and frequently asked questions about agile requirements engineering
What is agile requirements engineering?
Agile requirements engineering refers to the continuous elicitation, documentation, testing and management of requirements in agile projects. In contrast to the classic approach, requirements are adapted and refined iteratively and flexibly throughout the entire development process.
How does agile differ from classic requirements engineering?
In classic requirements engineering, requirements are fully defined and documented at the start of the project. In an agile context, however, requirements elicitation and documentation are carried out continuously and iteratively, usually in the form of user stories in the product backlog.
Why is requirements engineering also important in agile projects?
Requirements engineering ensures a common understanding of the requirements and ensures that the product meets the actual needs of the users. Even in an agile environment, a structured approach is crucial to ensure quality and project success.
What are the biggest advantages of agile requirements engineering?
The most important advantages are flexibility, the ability to adapt quickly to changes and continuous improvement of the product. Through regular feedback and iterative development, customer requirements can be better taken into account.
Which tools support agile requirements engineering?
Popular tools include Jira, Trello, Azure DevOps and Confluence. They help to manage backlogs, document user stories and promote team collaboration. Learn how to create the basis for self-organized and agile structures with our practical training courses on Jira and Confluence.