2. Educating Stakeholders
Whilst the overall aim of the project needs to be clearly understood up front, all the business requirements will not be gathered up front. The Agile approach allows the stakeholders to evolve the requirements based on collective feedback and the value of each requirement to the business.
Then, after each sprint, the stakeholders will see a working version of what has been developed based on their user story input (typically within weeks), and they will have an opportunity to make minor adjustments (e.g. look & feel). Major changes will have to go through the same change process as used for traditional project approaches. New requirements identified during earlier sprints can be added to the backlog for consideration in future sprints.
The user story format ensures each requirement has a context and it can be understood who will use each software feature, for what purpose, and who will benefit. As the user story format also describes the expected outcomes of each feature, this effectively provides a basis for testing and user acceptance. When transposing acceptance criteria to test cases, additional test cases may be required to ensure full test coverage, e.g. negative test cases and non-functional testing.
In terms of project management, the Agile approach requires intense and frequent engagement with a large number of stakeholders. This can be challenging in terms of availability of key personnel and needs to be considered when grouping user stories to be included in the same sprint. Although face-to-face engagement is used a lot in Agile projects, our experience has shown that web conferencing can be a very effective alternative to review meetings.
Another point to emphasize is that the software that is 'released' after each sprint does not necessarily go into operation immediately. For larger and more complex developments, each sprint provides another component or layer to build up until the overall solution reaches a point where it is deemed sufficient to become operational.
These are some of the main differences to be aware of when managing requirements for Agile projects in a traditional enterprise environment. The traditional approach can benefit from some of the Agile techniques, particularly user stories and prioritization based on business values. At the same time, Agile requires traditional techniques to manage changes and provide project governance.
In the next article, we will address planning and design.