In a traditional IT environment, requirements are created at the beginning, handed down the process, and validated at the end. In an Agile IT environment, requirements represent working software and are created, refined, and revised in a circular process.
So, what does that requirement lifecycle look like in an Agile environment?
Related Article: User Stories & Mousetraps: A Lifecycle of Conversations
1) Build the Right Thing
The first step is to identify why we are doing something. Stakeholders come to us with their identified problems. However, it is up to the business analyst to probe for the root cause, the business value desired, and the innovative solution.
For example, a homeowner requests new hardwood floors so they look like the day the house was new. We need to know if the customer wants new floors for $12,000 or to refinish the existing floors at $4,000.
Second, we determine who is using our product. We want to know who is our audience, what matters to them, and how we get their feedback. We can use techniques such as story mapping.
Third, turn key features into requirements that deliver customer value. Once we understand the Why and the Who, we align our feature requirements based on the value it delivers. In this way, we ensure all feature development delivers value, and we reduce the likelihood of waste.
2) Build the Thing Right
Once we’ve determined the right thing, we begin the process of building the thing right. The requirement lifecycle continues to get as independent, small, and testable as possible. This example demonstrates the refinement process.
|Vertically slice your requirements to create stand alone, customer-value-driven requirements – not architecture-oriented, stack-oriented, or data-oriented.
||Start: I need a form which collects the number of family members for one unit.
I need to calculate the total number of family members based on number of adults and dependents.
|Progressively elaborate further using INVEST||New:
I need to collect the number of adults within a family.
I need to collect the number of dependents within a family.
|Break down these requirements into user stories.||For total number of adults:
As a client manager, I want to sum the number of adults based on date of birth in a family so that I can report accurate information to funding organizations.
|Add objective, measurable, testable acceptance criteria to measure when the criteria is satisfied.||Acceptance Criteria:
– Must be a whole, positive number
– Must be larger than zero
3) Gather feedback
The lifecycle leads you through the process back to the beginning. You need to collect customer feedback once you’ve implemented an independent, small, testable feature.
At this stage, measure how your customers or clients use the features. Compare results with your goals and objectives identified in your Product Vision. Revisit “Build the Right Thing”. Did you get it right? What do you need to change? What do you need to add?