This Construction phase process goal describes our approach to managing requirements changes. Changes may include new functionality, modifications to existing functionality, or potential defects in existing functionality. Of course, new information isn’t always a requirement change. The reality is that as a team works on something, the stakeholder’s understanding, and in turn the team’s understanding, of the true requirements will evolve and new or changed details will surface.
Click the diagram to open the interactive DA Browser, where you can learn more about the decision points and options of this goal.
Why This is Important
There are several reasons why this goal is important:
- Teams do more than implement new requirements. Yes, stakeholders need our team to implement the new requirements that they come up with. But they also need us to fix the defects that are found when using the solution, they need us to support other teams working in parallel to our own, they need us to learn and grow as professionals, and they need us to improve the quality of our implementations. The implication is that their needs will generate a range of work item types, or “classes of service.” This includes, but is not limited to, new requirements, changed/evolved requirements, defect fixes, growing team members through training or education events, paying down technical debt, and running experiments.
- Stakeholder needs will change. There are a variety of reasons why stakeholder needs change, including gaining insight during a demo, your competitors releasing a competing offering that your stakeholders need to react to, technology changes, legislation changes, and many more good reasons. Requirements evolution is not scope creep, but rather our understanding of the true needs grows and thus enables us to deliver a better end product. Disciplined Agilists embrace the fact that change is natural.
- We want to explore requirements details at the last most responsible moment. By doing so, we can focus on what our stakeholders actually need. The longer we wait to gather the details, the more we’ll know about the domain and therefore will be able to ask more intelligent questions. Likewise, our stakeholders will have seen the solution developed over time so will be able to give us better answers. The bottom line is that by waiting we can focus and have better conversations.
- The changes need to be managed. Part of embracing change is managing those changes so that we react appropriately to them. Change is good and natural, but uncontrolled change is not. We need to exhibit some degree of discipline regarding change so that we can meet the delivery expectations of our stakeholders.
Important Questions to Consider
- How will we work with stakeholders?
- How will our team elicit feedback from stakeholders?
- How will we explore the problem space?
- A team will receive feedback on a regular basis that reflects the changing understanding of what stakeholders believe they need.
- On many teams, product owners are responsible for eliciting and prioritizing changing stakeholder needs, but there are other (and sometimes better) options to help accomplish these things.