Importance of Requirements Management for Agile Development

November 21, 2007

Recently, a colleague and I were discussing the importance of requirements management when leveraging Agile development methodologies. The discussion resulted in a summarization of three primary reasons requirements management is critical to success in Agile development. They are Quality, Agility, and Management of Expectations.

1. If a project has ambiguous requirements the team cannot determine at the end of each iteration if the product is releasable. What happens is the team demonstrates and exits the iteration without good acceptance criteria. This means there is questionable quality at the end of the iteration. The result is a large QA cycle at the end of the release and the date slips. The team simply cannot tell if an ambiguous requirement has been met. This puts them into defect management. Its no longer about delivering incremental working software when this happens. It is more about large releases and working through a stack of defects in the end game. Improve requirements and improve quality.

2. Release planning is about assigning “value points” or IDDs or some other sizing mechanism to requirements and laying them into iterations. These requirements become the fundamental unit the team develops against during each iteration. While requirements will always have interdependencies, they need to be as loosely coupled to each other as possible. This is where the team “gets” their agility (or should). Teams need to be able to move these requirements between iterations and between releases. This presupposes a couple of things. First, there must be a continuous backlog of requirements to be consumed an ongoing basis. This backlog should be used across iterations and across releases. Second, the backlog is reprioritized and elaborated on an ongoing basis. Teams must have near perfect requirements to be truly agile. Improve requirements and increase agility.

3. Requirements management is critical for managing existing consumer expectations. There needs to be a process that takes requirements from various sources, determines if they should be added to the backlog, and disposes of them properly. This allows for management in many directions. I like to call this requirements work flow. Easy to describe but seemingly difficult to do. Improve requirements and manage expectations.

For teams new to Agile good requirements management (in this form) will likely be elusive. However, a detailed understanding of requirements management and its importance will significantly increase the probability of success when transitioning to Agile.