Technology Maturity and Risk Reduction (TMRR) Phase
Agile Fundamentals Overview
MATERIEL SOLUTION ANALYSIS (MSA) PHASE
Materiel Development Decision (MDD)
Analysis of Alternatives (AoA)
Develop Acquisition Strategy
TECHNOLOGY MATURITY AND RISK REDUCTION (TMRR) PHASE
Mature Acquisition Strategy
Request for Proposal
ENGINEERING & MANUFACTURING DEVELOPMENT (EMD) PHASE
Manage Program Backlogs
Requirements in an Agile environment are usually managed via program, release, and sprint backlogs rather than through formal requirements documents. Backlogs could take the form of databases, Excel spreadsheets, or Agile-based software tools. The Product Owner actively manages (grooms) program and release backlogs, working with the user community and other stakeholders to identify the greatest level of detail needed for the highest priority requirements.
The figure below shows the relationships among the program, release, and sprint backlogs. The program backlog contains all desired functionality and requirements. A release backlog typically comprises the highest priority requirements from a program backlog that a team can complete within the established timeframe. Each sprint consists of the highest priority requirements from the release backlog. Once the development team commits to the scope of work for a sprint, that scope is locked. Sprint demonstrations conducted by the contractor at the end of a sprint may identify new features or defects that the team would add to the release or program backlogs.
Initial Development of a Product Backlog
The Product Owner, in collaboration with operational sponsors, requirements organizations, legacy system operators, a broad user base, architects, systems engineers, enterprise architects, and other stakeholders, captures, integrates, refines, and prioritizes items on a program backlog. Items can include:
- Epics or themes of major requirements elements that span multiple releases
- Interfaces with other systems
- Infrastructure requirements/interfaces
Interaction between Program, Release, and Sprint Backlogs
Many commercial Agile development tools are available to capture program requirements via user stories with acceptance criteria. These user stories are maintained in a database to further refine, prioritize, and estimate the complexity, time, and cost for each element. During the early phases of the program, this is often done by government personnel such as the Product Owner with support from the PMO prior to contractor selection during the EMD phase.
Government personnel, to include FFRDC and support contractors with Agile development expertise, draft the user stories based on end-user requirements; these user stories and estimates are refined once a development contractor is selected. User stories must be clearly presented in operational terms using an established format and include acceptance criteria. The government captures draft estimates of the complexity and time required to complete the necessary activities for the top priority stories to support structuring releases and estimating costs and schedules. The details of the lower priority stories will be worked out in the future.
The bulk of requirement management via backlogs and user stories will done during the EMD Phase once a contractor has been selected. See Manage Backlogs for details.
- IT Box
- Eliciting, Collecting, and Developing Requirements, MITRE Systems Engineering Handbook
- Analyzing and Defining Requirements, MITRE Systems Engineering Handbook
- Agile Software Requirements, Dean Leffingwell
- User Stories Applied: For Agile Software Development, Mike Cohn
- Requirements Engineering in an Agile Software Development Environment, Alan Huckabee, Sep 2015
- Agile Requirements Best Practices by Scott Ambler
- Requirements by Collaboration by Ellen Gottesdiener (See also the book by same name)
- Agile Requirements Modeling by Scott Ambler
- Agile Software Requirements by Dean Leffingwell
- Writing Effective Use Cases by Alistair Cockburn
- To slice stories, first make sure they are too big, Gojko Adzic