Software companies are using Agile methodology and even the BAs are calling their work ‘Agile Requirements’. According to Karl Wieger, there is a huge difference between the activities for requirements on traditional and agile projects. Rather the work specified as “agile requirements” is not very conceptually different having evolved from the traditional waterfall methods. The major areas where requirements activities are handled differently are discussed below.
Responsibilities and roles:
In Agile the elicitation, specification, reviews and analysis of requirements is a collaborative team-process with the product owner, analyst, key stakeholders, developers, and other business user representatives.
The roles in Agile need the PO to be responsible for the backlog of products and preparing the user stories for implementation. The developers ensure the information of the user stories is sufficient for development. Some projects may have the BA as a PO while others may use a dedicated BA to help the PO prioritize and elaborate user stories.
Timing of the requirements is crucial to projects. Traditional methods create a detailed project requirement report at the very beginning including the basic sequencing, estimation and prioritization chores. Agile, however, relies on a just-in-time approach where requirement details are generated before the implementation of sets of functionalities.
This approach no doubt ensures the information is up-to-date. But, it can be blind to the dependencies of requirements and implications on the architecture. That’s why the teams look at the broad project scope and architectural requirements in early iterations. Adding functional requirements happens on an on-going basis and in small doses of releases, unlike the traditional processes. While agile can produce more small marketable releases in one project cycle any error in the requirements of a traditional project can be expensive to re-work or re-do.
Both methods focus on risk mitigation to enable forward movement on the project. However, agile teams anticipate rework, refactoring and testing making them ready to accept iterations and rework.
Fig-1. Standard requirements that occur with agile iterations.
User stories are in reality use case individual flows. The traditional BA may use cases to flesh out the functional requirements. In contrast, an agile project uses the specific requirements of a user story in writing the granular acceptance tests and ensuring the right implementation of the story.
Using the very same information one method describes what to build while the other specifies how to know if you’ve built it right and functional. Tests are very useful in discovering the chinks in specifications. Using just one method is hence a limited view. Ideally, the incorporation of both views is good. However, Agile teams are limited by the roles of the team and specify that the product owner writes the acceptance criteria and user stories.
While traditional methods use functional requirements and use cases Agile projects call them acceptance criteria and user stories. No matter what you call the terms it is essential that apt communications help the testers and developers do their job better. This leads to efficiency and effective productivity.
Detailing and Documentation:
Light-weight documentation is the norm on Agile projects unlike the document-reliant traditional practices since developers and customers frequently communicate and collaborate.
The requirements are precisely developed by the BAs or as a team responsibility through recorded conversations and very few standard regulation-required documents.
Many Agile user stories list the help of the analysis visual model and acceptance criteria to list the highest/ riskiest-impact functionality. The costs of acquiring information are high and to save time projects should adapt to just-enough recorded documentation for risk management.
In Agile, backlog prioritization is continuous and undergoes many iterations. Items remain on the backlog when under-development and get discarded if not workable. This is not the case with the traditional methodology where the requirements are prioritized at the project onset and not really reviewed frequently. The impact of prioritization on ALL projects needs dynamic management of the backlog as an essential best-practice.
Projects need to define their business-value and ensure that their business-processes and project activities add value to their prioritized practical methods. While Agile is certainly beneficial for projects the BAs practices and principles falls more into a traditional role. It is also true that most Agile teams lack BA specific organic expertise.
To learn how the “agile requirements” are somehow different and special do an Agile course at the reputed Imarticus Learning Academy.