Importance of Requirements Management for Agile Development

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.

5 Responses to Importance of Requirements Management for Agile Development

  1. Robert says:

    Paul – Good points on the need for requirements management in Agile projects, especially #1 and #3.

    I am with a mid-size software company in California – we have developers in US, Russia and India. We’ve been practicing Agile development for more than 3 years.

    We implemented a process for documenting and tracking all requirements about 10 months ago. The positive impact has been quite significant.

  2. Thanks for information.
    many interesting things
    Celpjefscylc

  3. Anthony says:

    “Teams must have near perfect requirements to be truly agile. Improve requirements and increase agility.”

    That seems to miss one of the key point of agile — that you don’t need to have exact requirements, that you can proceed with “good enough” requirements, and that you can accomodate and adapt to change, as well as volatile requirements.

  4. Jerryxb says:

    thats it, guy

  5. Toby says:

    I agree with your points. I was wondering if you have any suggestions on methods and/or tools that can be used to capture this information and manage the change that is inevitable as the product evolves.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: