White Papers
Jan 27, 2012

Jason Moccia
OneSpring Partner & CEO
Streamlining Software Development: Agile Requirements Definition and Management
One of the common misconceptions surrounding Agile software development is that documentation is unnecessary. While the Agile Manifesto prioritizes "Working Software over Comprehensive Documentation," it doesn't eliminate the need for documentation entirely. The emphasis is on value: is your documentation truly adding value, or simply creating bottlenecks?
Agile and Lean Thinking prioritize eliminating waste and delivering value to the customer. This involves empowering self-organizing teams to improve quality and efficiency.
The Challenge of Traditional Requirements in Agile
Agile Requirements Definition and Management (RDM) isn't new, but integrating traditional requirements cycles into an Agile framework can be tricky. To create a successful system, consider the entire lifecycle, not just the software development phase. Analyze your current documentation process and identify areas of waste. You might be surprised to find that a significant portion of your documentation isn't actually used.
Complexity is often the culprit. As systems mature, they become more complex, making them difficult to understand, manage, and maintain. The best systems are simple and streamlined. Lean Thinking addresses this by removing waste and focusing on essential elements. Traditional requirements specifications, often hundreds of pages long, can become unwieldy and difficult to manage.
A Holistic Approach to Agile Requirements
To adopt Agile and run a leaner operation, take a broad view of your organization. Agile requirements definition should be viewed independently, not just as part of the development team's process. Apply the same Agile principles to requirements definition and management.
Consider Scrum, a popular Agile framework. In Scrum, development teams build software incrementally during 2-4 week Sprints. Requirements are added to a Product Backlog and broken down into Sprint Backlog Items during Sprint Planning. The development team decides what to develop based on organizational needs, guided by a Product Owner and managed by a ScrumMaster.
The challenge is that many organizations struggle to keep their Product Backlog up-to-date with the level of detail needed for development Sprints.
Agile Requirements Definition and Management: A Solution
Agile Requirements Definition and Management (RDM) solves this problem by outpacing the development team. It feeds the Product Backlog faster than the development team can produce code. Use it for just-in-time requirements definition or to build a requirements repository for future use.
Since the Product Backlog drives the Sprint timeframe, the pace of filling it is critical. Ensure the Product Owner can clearly articulate what needs to be built and that the definitions are high quality. The Requirements Cycle mirrors the development cycle but stays two to three steps ahead, enabling requirements to be thoroughly vetted, organized, communicated, and focused on quality.
It starts with a Requirements Backlog, a list of items that need to be defined to populate the Product Backlog. This could include User Stories, Visualizations, Functional Requirements, etc. The requirements team plans their Sprint, performs the work, and reviews the outputs based on business strategy and objectives. Approved outputs are then moved to the Product Backlog. Organizational documents may also be included in the Requirements Backlog, even if they don't end up in the Product Backlog, serving as reference material for the development team. Traceability from the Product Backlog to these external documents is crucial for project continuity.
Decomposition: Refining Requirements Through Collaboration
Decomposition is the process of refining Product Backlog Items in collaboration with the development team. This can involve bringing development teams into the requirements phase to groom the backlog, a common practice in Scrum.
Decomposition is also useful for projects with gaps between requirements definition and development. These gaps can increase the risk of developing the wrong product due to loss of team members, knowledge, or overall availability. Decomposition bridges this gap by using the Product Backlog to communicate and share requirements.
Embrace Agile for Optimized Software Development
Agile is becoming the dominant approach to software development due to its emphasis on continuous improvement, time-boxed cycles, and delivering faster value to end-users. The quality and clarity of the requirements that feed the development process are key to that value. An agile, lean, and timely approach to requirements ensures an optimized process.
Experiment with different Agile flavors to discover what works best for your organization. The sooner you embrace Agile, the sooner you'll see its benefits.
Ready to transform your UX design process with Agile?
Contact OneSpring.net today for a subscription UX Design Service tailored to your needs. Let us help you streamline your requirements, optimize your workflow, and deliver exceptional user experiences.