Generating Product Requirements
in an Agile/Incremental Process
Prof. David Bernstein
James Madison University
Computer Science Department
bernstdh@jmu.edu
A Reminder
Product Design:
Analysis - understanding the problem (i.e., eliciting needs)
Resolution - creating a solution (i.e., generating product requirements)
Resolution in an Agile/Incremental Process:
Requirements are generated "just in time" (i.e., just enough requirements are generated to allow construction to begin/continue)
The requirements are modified continuously (based on conversations and negotiations with stakeholders)
Rationale
Problems with Heavyweight/Non-Incremental Processes:
Changes are expensive because the work in process (i.e., the detailed requirements and the construction based on them) might need to be discarded
Advantages of Incremental Processes:
Low-value requirements can be eliminated and high-value requirements can be added
Complete specifications can't be created up-front for innovative products
Approach
Progressive Refinement:
Requirements that will be realized sooner have more detail than requirements that will be realized later
Product backlog items (PBIs) act as placeholders
Disaggregation occurs "just in time"
Conversation:
Don't create detailed written descriptions (which are likely to contain defects), have timely conversations