Skip to content

Requirements elicitation

Technique · Chapter 3

  • Requirements deal with knowns and unknowns — known knowns, known unknowns, and unknown unknowns. Elicitation aims to eliminate the unknown unknowns before design.
  • Stakeholders often don’t know exactly what they want, and requirements “rarely lie on the surface” (Hunt & Thomas, The Pragmatic Programmer) — they’re buried under assumptions, misconceptions, and politics.
  • Elicitation (aka requirements gathering) is a proactive, not reactive, process. Combining multiple techniques often yields the best results.
TechniqueWhat it isStrengthsWatch out for
InterviewsFormal or informal sessions with one person or a small group; ask open-ended questions to spur discussion, closed-ended to confirm factsDifferent stakeholder types give different perspectives; good for gathering infoDepends on interviewee’s knowledge/willingness; poor for reaching consensus (not everyone present); assign a note-taker
Requirements workshopsGroup of relevant stakeholders meets to collect and prioritize requirementsOne of the most common and effective methods; builds clarityNeeds a facilitator + separate note-taker, a clear agenda, and the right number of people; hard to gather everyone (run multiple sessions if needed)
BrainstormingSpontaneous idea generation from a group, documented as you goFun, productive; varied stakeholders surface unconsidered ideasKeep to 5-10 people; clear goals/scope; no criticism allowed; facilitator steers off-topic talk; use a visible whiteboard/shared screen; set a time limit
ObservationStudying a stakeholder doing real work in their environment (passive = non-disruptive, active = ongoing dialog)Reveals requirements stakeholders forget or don’t realize are requirements; great for understanding current processesTime-consuming and potentially disruptive; may miss infrequent scenarios; use as a supplement, not the only technique
Focus groupsMore formal than brainstorming; invited group (often external users/experts) gives feedback via a neutral moderatorGood for public/external-facing apps; observe nonverbal cues and group interaction; faster than individual interviewsRisk of following the crowd; some hesitate to share; moderator may be a paid hire
SurveysWritten questionnaires with a clear purposeScales to many stakeholders; closed-ended questions are easy to analyzePeople avoid long surveys — prefer several focused ones; open-ended answers cost more to analyze
Document analysisMining existing docs (manuals, contracts, SOWs, emails, training materials, COTS manuals) for requirementsExisting systems/docs seed the new requirements; useful when stakeholders are unavailableAssumes usable artifacts exist
PrototypingBuilding a prototype/wireframes (or even a working version) stakeholders can see or useTriggers ideas for visually-oriented people; validates requirements; agile iterations reveal what works and what doesn’tTakes time to build; best combined with other techniques
Reverse engineeringAnalyzing existing source code to determine requirementsPowerful when an existing system embodies exactly what must happen; useful when stakeholders/docs are unavailableTime-consuming; needs source-code access and technical skill; often a last resort
  • Even with good techniques, the right stakeholders may be unavailable, unhelpful, or unwilling to participate.
  • Because requirements analysis is so important, make the effort to get access — this may mean escalating to your own management or the stakeholder’s organization’s management.
  • Many stakeholders are external to your organization, which makes access harder; the project’s success may depend on it.
  • Software Architect’s Handbook (Packt, 2018), Ch.3 “Requirements elicitation”, pp. 163-175.