liveBook · Manning

Requirements

As explained in Collaborative Software Design: How to facilitate domain modeling decisions

A requirement is a stated need, constraint, or capability that a software system is expected to satisfy.

A requirement states a user need, constraint, or capability that software is expected to satisfy. It should describe what users need rather than prematurely prescribing implementation details. section 1.2 section 1.2.4

Requirements become unreliable when one product owner gathers stakeholder input, translates it into implementation-focused user stories, and hands them to isolated developers. Direct collaboration creates shared understanding and reduces assumptions and quick fixes. section 1.2

Use requirements as a basis for collaborative design:

  • Involve stakeholders and developers together instead of relying on a single handoff. section 1.2
  • Separate user needs from technical requirements and implementation decisions. section 1.2 section 1.2.4
  • Treat requirements as changeable because users often revise their assessment after interacting with a feature. section 1.2.4

BigScreen’s back-office reporting

Back-office users needed comprehensive theater-performance data and accurate handling of extended movie runs. Instead, they depended on developers for database queries and Excel exports, while extended runs were entered as new movie schedules. The resulting workaround produced cumbersome analysis, inaccurate data, and inaccurate metrics. section 1.2

Figure 1.4 Detailed diagram of the Waterfall process

Compare requirements treated as a fixed handoff with the changing feedback loop characteristic of software development. section 1.2.4

How Collaborative Software Design: How to facilitate domain modeling decisions covers it

How deep it goes
Contrasts user requirements with implementation details and explains handoff failures, but stops short of a detailed elicitation procedure.
Examples
Uses BigScreen’s back-office reporting, movie-run extensions, database queries, Excel exports, and inaccurate performance metrics.
What you can do after
Diagnose requirements failures by tracing incomplete handoffs, implementation-led stories, and developer assumptions back to the design process.
How it connects
Connects requirements with user needs, user stories, technical requirements, collaboration, Agile, and Waterfall.

Also explained in

Compare how 13 books explain requirements →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Collaborative Software Design: How to facilitate domain modeling decisions. The section links point to the parts of the book it draws on.