Problem Analysis and Project Scope
In short Agree on the problem before you specify a solution, and agree on a scope the team can actually deliver. Leffingwell and Widrig offer five steps of problem analysis, a one-paragraph problem statement, three “syndromes” that make elicitation hard, and blunt advice on scope.
Based on: D. Leffingwell, D. Widrig, Managing Software Requirements: A Unified Approach, ch. 1–9 and 19–23.
On this page
Key ideas#
Five steps of problem analysis#
- Agree on the problem definition. Write the problem in a fixed form and check that everyone accepts it (template below). The Vision document in the Rational Unified Process (RUP) uses a very similar problem statement.
- Find the root causes, the problems behind the problem, with a fishbone diagram or by asking the people doing the work. Then rank causes with a Pareto chart and fix only those where fixing costs less than the damage they cause.
- Identify stakeholders and users. A stakeholder is anyone materially affected by the new system. Treat users and other stakeholders separately; both need attention.
- Define the solution boundary. Split the world into the system and what interacts with it. An actor is anything outside the system that interacts with it. Finding the actors is a key analytical step.
- Identify constraints on the solution. List each with its source and rationale. Some will become requirements.
Three syndromes#
- “Yes, but…” Users react to what they see with “yes, but…”. You cannot avoid it, so trigger it early with storyboards and prototypes rather than late with finished software.
- “Undiscovered ruins”. The more requirements you find, the clearer it is that more remain. Completeness is a horizon, not a finish line.
- “User and developer”. The two sides differ in language, background and motivation. The authors’ remedies: treat users as the domain experts and use storyboards or prototypes when they cannot say what they want; show storyboards, role playing or prototypes as early as possible; let analysts who think they know better play the user’s role for an hour or a day; and accept that suspecting others of politics is simply human nature.
Context-free questions#
Ask about the user’s problem without implying a solution: Who is the user? Who is the customer? Are their needs different? Bring in solution-related questions later, for feedback. At the end of each interview, write down the three most important needs you heard; the authors suggest about ten interviews yield around fifteen key needs. Questionnaires do not replace interviews, but they can test assumptions and measure preferences.
Davis’s five elements#
The authors cite Davis: a system definition is complete when it covers inputs, outputs, functions (how inputs map to outputs), system attributes (such as reliability and maintainability), and environment attributes (operating limits, compatibility). To test whether something is a software requirement, check that it fits one of the five.
Scope: the 200% problem#
Brooks’ law says that adding people to a late software project makes it later. Leffingwell and Widrig treat scope as features against resources and time, and observe that projects commonly start with about twice the work the team can deliver. The job is to cut scope, often by half, not to add people.
To set a baseline: list and prioritize features, estimate each roughly, and rate each one’s risk. A typical baseline holds all critical features, one or two important ones, and useful ones only as capacity allows; the rest move to future releases. Underpromise and overdeliver.
Negotiating scope#
Do not cut scope without the customer. A customer who takes part in the decision owns the result; one who hears about it afterwards blames the team. The authors draw on Fisher, Ury and Patton’s Getting to Yes: aim high but not unreasonably, separate people from the problem, focus on interests rather than positions, know your walk-away point, look for options that benefit both sides, and use objective criteria. A formal request for a new feature is the easier case, because you can show its impact (what must drop to make room). Features that slip in informally are more dangerous.
Process models and scope#
Applied to a 200% project, the waterfall model ends with nothing working at the deadline; Boehm’s spiral model at least leaves a few working prototypes and customer feedback; the iterative approach of Kruchten, later the basis of RUP, offers the most points to correct scope as feedback arrives. The authors’ conclusion: scope management, more than the choice of model, decides success.
How to apply it#
- Draft a problem statement and get every key stakeholder to accept it in writing.
- Run a short root-cause session; rank causes and pick the ones worth fixing.
- List actors and constraints; draw the boundary.
- Use context-free questions in early interviews; record the top three needs each time.
- Build a feature list with priority, rough effort and risk; compare total effort with capacity.
- Cut scope with the customer in the room.
Template#
| Element | Your text |
|---|---|
| The problem of | <describe the problem> |
| affects | <who is affected> |
| the impact of which is | <effect on stakeholders and the business> |
| a successful solution would | <main benefits of a solution> |
Example#
The Workshop, a fictional bike-repair chain: The problem of customers not knowing when their bike will be ready affects customers and front-desk staff at all 12 workshops; the impact of which is constant status calls that interrupt bookings, and bikes left uncollected; a successful solution would tell customers automatically when status changes and free front-desk time. The root-cause session finds that mechanics update a paper board nobody else can see, so the first release focuses on status capture and notifications, and parts ordering moves to release 2.
Sources and further reading#
- D. Leffingwell, D. Widrig. Managing Software Requirements: A Unified Approach. Addison-Wesley, 2000, ch. 1–9, 19–20 and 23; ch. 21 (negotiating scope with the customer); ch. 22 (process models and scope).
- F. P. Brooks. The Mythical Man-Month. Addison-Wesley, 1975 (Brooks’ law).