Requirements engineering

Requirements in Agile Projects

In short Agile projects do not need a different kind of requirement: developers need the same information to build the right thing in any life cycle. What changes is when the detail is produced, how deep it goes and how much of it is written down.

Based on: K. Wiegers, J. Beatty, Software Requirements, 3rd ed. (Microsoft Press, 2013), ch. 20.

On this page

Key ideas#

What is different about this kind of project#

Wiegers and Beatty contrast two approaches. A predictive (waterfall) approach reduces risk by planning heavily before development and works when requirements are clear and stable. An adaptive (agile) approach assumes change is inevitable and plans in short cycles. They point out that Royce’s original 1970 paper on the waterfall already called a strict single pass risky and recommended iteration. Their core claim: there are no “agile requirements”, only shifts in emphasis: - Customer involvement runs through the whole project, not just the start. - Documentation is the minimum that gives developers and testers precise guidance; anything more is waste. - Timing: high-level stories fill the backlog early; detail is added just before a story enters an iteration, through a small cycle of elicitation, analysis, specification and validation. - Change is expected, not resisted.

One backlog#

Citing Mike Cohn, the authors recommend a single backlog per project that holds stories and defects alike; with separate lists you cannot compare priorities. Backlog priorities are never fixed.

Quality attributes come early#

Performance, availability and other quality attributes shape the architecture. You cannot wait for “their” iteration as you would with ordinary functionality; elicit them up front.

Stories need an editor#

Stories written by people without analysis experience, including customers themselves, are often imprecise. Someone with business analysis skills should refine them before they are built.

Epics, features and stories#

  • User story: sized to fit in one iteration.
  • Epic (a term the authors attribute to Mike Cohn): a story too big for one iteration; split it into smaller stories, if needed through smaller epics.
  • Feature: a set of capabilities that has value to users; it can span one story, several stories or several epics.

The minimum marketable feature (MMF, from Denne and Cleland-Huang) is the smallest set of stories that the team can deliver at once and that still gives the customer real value. Do not obsess over the labels; the quality of the requirements matters more.

Expect change, but look ahead#

The business analyst’s (BA’s) reflex shifts from “that’s out of scope” to “let’s talk about it”. Expecting change does not mean ignoring the future: a look ahead lets the team choose a more extensible architecture without designing for every hypothetical case. Removing backlog items is normal too, because of implementation problems, findings by the product owner or testers, or more valuable work.

Avoid purism#

The authors describe an organization where rolling out agile “by the book” everywhere at once failed. One team settled on a hybrid (a backlog, three-week iterations, detailed requirements for each iteration) and most agile practices took hold only after people stopped forcing them. Their advice: choose practices that fit your context, start with a pilot project, and bring in an experienced coach for the first few iterations.

How to apply it#

  1. Create one backlog and load it with high-level stories derived from business objectives.
  2. Elicit key quality attributes before architecture decisions.
  3. Before each iteration, refine the top stories: split epics, add acceptance criteria, check terms against the glossary.
  4. Group stories into features and define the first minimum marketable feature.
  5. Re-prioritize every iteration; escalate changes that affect overall scope, budget or dates.

Example#

At The Workshop, a fictional bike-repair chain, the backlog starts with the epic “Online booking”. The BA splits it into stories such as “As a customer, I want to see free slots at my nearest workshop so that I can pick a convenient time” and “As front-desk staff, I want to see today’s online bookings so that I can plan check-ins”. The feature “Repair-status updates” spans stories for mechanics (set a status) and for customers (receive an SMS). The first MMF is booking at a single pilot workshop with an email confirmation. Before iteration 1, the team agrees the quality attribute that will shape the architecture: the slot calendar must stay responsive during the Saturday-morning peak.

Pitfalls#

  • “Agile means no documentation” → write the minimum that lets developers and testers work precisely.
  • Stories accepted exactly as written by stakeholders → refine them first.
  • Separate backlogs for features and defects → one list, one set of priorities.
  • Postponing performance and security → elicit them before the architecture is set.

Checklist#

  • One backlog holds stories, defects and other work.
  • Key quality attributes are known before architecture decisions.
  • A BA refines each story before it enters an iteration.
  • Epics are split before iteration planning.
  • The first release delivers a minimum marketable feature.
  • Priorities are reviewed every iteration.
  • Changes to overall scope, budget or dates go beyond the team.

Sources and further reading#

  • K. Wiegers, J. Beatty. Software Requirements, 3rd ed. Microsoft Press, 2013, ch. 20 (including the authors’ references to Royce, Cohn, and Denne and Cleland-Huang).