System Design Space
Knowledge graphSettings

Updated: February 21, 2026 at 11:59 PM

Software Requirements (short summary)

hard

Software Requirements

Authors: Karl Wiegers, Joy Beatty
Publisher: Microsoft Press, 2013 (3rd Edition)
Length: ~670 pages

Classics from Karl Wiegers: requirements levels, elicitation techniques, MoSCoW and Kano prioritization, change management.

Software Requirements - original coverOriginal
Software Requirements - translated editionTranslated

Primary source

Official page of Software Requirements by Karl Wiegers and Joy Beatty.

Open book page

Key Concepts

Requirement levels

  • Business Requirements — business goals
  • User Requirements — what users will be able to do
  • Functional Requirements — system behavior
  • Non-functional - quality attributes

Quality Attributes

  • Performance (latency, throughput)
  • Scalability (load growth)
  • Availability (uptime)
  • Security, Maintainability, Usability

Stakeholders

Different stakeholders have different requirements. It is important to identify all stakeholders and understand their priorities. During an interview, it helps to ask the right follow-up questions.

Use Cases

Description of user interaction with the system. Includes the main scenario and alternative paths. Helps not to miss edge cases when designing.

Book structure

Part I

Software Requirements: What, Why, and Who

Basics: what are requirements, why are they important, roles in the process. The Business Analyst role. Requirements engineering as a discipline.

Part II

Requirements Development

Elicitation (detection), Analysis (analysis), Specification (documentation), Validation (validation). Interview and workshop techniques.

Part III

Requirements for Specific Project Types

Agile projects, package solutions, outsourcing, embedded systems, business intelligence.

Part IV

Requirements Management

Change management, versioning, traceability, requirements reuse.

Requirements Elicitation Techniques

Interview

Structured and unstructured conversations with stakeholders. Open questions for research, closed questions for clarification.

Observation

Observe users in their work environment. Helps to identify unconscious requirements and real workflows.

Prototyping

Rapid prototypes to validate understanding of requirements. Helps identify gaps in the early stages.

Requirements prioritization

Interviews often ask you to define an MVP or prioritize features. Wiegers suggests several approaches:

MoSCoW

  • Must have - required for release
  • Should have - important, but not critical
  • Could have - preferably
  • Won't have - not in this release

Kano Model

  • Basic - expected (must be)
  • Performance - the more the better
  • Excitement - wow effect

Common mistakes

❌ At the interview

  • Jump straight to a solution without specifying requirements
  • Don't ask about scale and load
  • Ignore non-functional requirements
  • Don't specify feature priorities

✓ How to do it correctly

  • Start with business context and goals
  • Identify the main use cases
  • Specify SLA/SLO (availability, latency)
  • Agree on scope and priorities

Application at System Design interview

Checklist of questions (from the book):

Who are the main users of the system?
What are the main use cases?
What is the expected volume of data/traffic?
What are the requirements for latency and availability?
What are the limitations (budget, time frame, technology)?
What exactly is NOT included in scope?
What integrations with external systems?
What are the security requirements?

Main conclusions

Requirements are not a list of features, but a hierarchy from business goals to details
Non-functional requirements are often more important than functional ones
Prioritization is a key skill when resources are limited
Asking clarifying questions at the beginning saves time on rework.
Scope creep is the main enemy of a successful project
Good requirements - testable, measurable, traceable

Where to find the book

Enable tracking in Settings

System Design Space

© 2026 Alexander Polomodov