Requirements
A requirement is a stated need, capability, quality, condition, or constraint that a system, product, solution, or project is expected to satisfy.
Lead Developer Career Guide
A specified capability, behavior, or constraint that a software product or feature must satisfy.
- How it is used
- Guides feature development and aligns technical work with business needs before design and estimation.
- How deep it goes
- Develops practical clarification and documentation tactics before implementation and QA, without prescribing a formal specification template.
- Examples
- Uses vague feature requests and a client presentation that overlooked the client’s technical ideas.
- What you can do after
- Practice/perform clarifying requirements before work begins, then using them to support estimates, budgets, and QA checks.
Read how Lead Developer Career Guide explains requirements →
BDD in Action, Second Edition
A requirement is a stated capability, condition, or constraint that a software system is expected to satisfy.
- How it is used
- Guides collaborative discovery of needed behavior, then connects that behavior to implementation and evidence of business value.
- How deep it goes
- Traces requirements from uncertain goals through examples, executable criteria, changes, and coverage; does not treat initial specifications as complete.
- Examples
- Uses a train-departure change and an authentication feature with pending single sign-on examples.
- What you can do after
- Practice/perform collaborative refinement, update acceptance criteria when needs change, and assess which defined requirements remain unimplemented.
Read how BDD in Action, Second Edition explains requirements →
Architecting an Apache Iceberg Lakehouse
A storage requirement is an explicit, testable condition that a storage system or architecture must satisfy.
- How it is used
- Guides lakehouse architecture and tool evaluation by converting organizational needs into testable decision filters.
- How deep it goes
- Explains an audit-to-requirements process across five lakehouse layers but stops short of selecting specific tools or vendors.
- Examples
- Uses residency, encryption, archival, low-latency ingestion, regulatory extracts, shared semantics, and dashboard scenarios as requirement examples.
- What you can do after
- Apply requirements to compare architectures and tools against business value, constraints, implementation effort, and operational tradeoffs.
Read how Architecting an Apache Iceberg Lakehouse explains requirements →
Delivering Machine Learning Projects: From design to deployment
A requirement is a stated need, capability, quality attribute, constraint, or operational condition that a system or project must address.
- How it is used
- Turns business objectives into feasibility questions before an ML project commits to delivery.
- How deep it goes
- Distinguishes functional, nonfunctional, and system requirements, then calls for iterative clarification rather than a fixed upfront specification.
- Examples
- Uses a large model on a slow processor and an organizational chart marking stakeholder and user touchpoints.
- What you can do after
- Evaluate/understand whether requested model behavior and operating constraints make an ML project practical before committing resources.
Read how Delivering Machine Learning Projects: From design to deployment explains requirements →
Object-Oriented Software Design in C++
A software requirement is a capability, constraint, or condition that a software system must satisfy.
- How it is used
- Guides discovery and analysis so developers build the application clients need before refining its internal design.
- How deep it goes
- Covers quality criteria, elicitation, stated and implied requirements, and initial class analysis, while deferring broader software engineering detail.
- Examples
- Uses a library card-catalogue automation case involving interviews, observation, customer searches, and prototypes.
- What you can do after
- Apply interviews, observation, prototypes, validation, and analysis to derive an initial set of application classes.
Read how Object-Oriented Software Design in C++ explains requirements →
Software Design for Python Programmers
A software requirement is a specified capability, constraint, or quality that a software application must satisfy.
- How it is used
- Guides teams toward building the application clients need before applying techniques to build it well.
- How deep it goes
- Covers gathering, validation, functional analysis, and initial classes, while deferring detailed requirements engineering.
- Examples
- Uses client interviews, workplace observation, and a book catalogue with flexible, case-insensitive, wildcard searches.
- What you can do after
- Apply requirements gathering and analysis to define behavior, identify initial classes, and accommodate later changes.
Read how Software Design for Python Programmers explains requirements →
Build Python Web Apps with Streamlit
Software requirements are stated needs, capabilities, goals, and constraints that a software system is expected to satisfy.
- How it is used
- Turns an app concept into an agreed scope before user-experience design and implementation.
- How deep it goes
- Defines capabilities, stakeholders, implementation independence, and exclusions, then stops short of prescribing technical solutions.
- Examples
- Uses unit-converter and daily to-do-list capabilities alongside explicit exclusions such as currency conversion, logging, export, and persistence.
- What you can do after
- Apply via a six-step development process to define capabilities, set boundaries, and guide implementation choices.
Read how Build Python Web Apps with Streamlit explains requirements →
Everyday Data Visualization
A stated need, capability, constraint, or condition that a project, product, or system is expected to satisfy.
- How it is used
- Frames research and planning by identifying what a dashboard must provide before design and development begin.
- How deep it goes
- Develops requirements through stakeholder interviews into metrics, interactions, audience, time-window, and device constraints.
- Examples
- Uses a housekeeping scheduling dashboard with occupancy metrics, a movable 30-day view, and desktop-only use.
- What you can do after
- Apply it to specify dashboard metrics, interaction needs, audience scope, and device constraints with users.
Read how Everyday Data Visualization explains requirements →
Functional Design and Architecture: Examples in Haskell
A requirement is a stated capability, constraint, or goal that a software system must satisfy.
- How it is used
- Guides software design and testing by stating required capabilities and system properties.
- How deep it goes
- Defines functional and nonfunctional categories with examples, then applies them to contracts and testing.
- Examples
- Uses spacecraft manual and automatic control, fault tolerance, security, compatibility, and testing contracts as concrete examples.
- What you can do after
- Evaluate software against functional and nonfunctional expectations through contracts, tests, and design decisions.
Read how Functional Design and Architecture: Examples in Haskell explains requirements →
Coding with AI
Software requirements are specified capabilities, constraints, and qualities that a software system must satisfy.
- How it is used
- Guides design-document analysis, AI prompting, user-story creation, and application scaffolding.
- How deep it goes
- Explains extraction steps, structured prompts, user stories, stubs, and validation, but stops short of formal requirements specification.
- Examples
- Uses a HAM radio test-preparation application, question-pool requirements, random question selection, UI needs, and email-validation prompts.
- What you can do after
- Apply it via ChatGPT or Gemini to extract, structure, validate, and transform design details into implementation-ready stories and stubs.
"Looks Good to Me"
A requested capability, behavior, or constraint that software is expected to satisfy.
- How it is used
- Aligns implementation with business requests and acceptance criteria during feature development and code review.
- How deep it goes
- Connects requirements to feature discussion and acceptance criteria, but does not prescribe a formal requirements method.
- Examples
- Uses incomplete pull requests and implementations that solve the wrong problem as failure examples.
- What you can do after
- Diagnose whether implementation addresses business requests and agreed acceptance criteria.
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.
- How it is used
- Guides software design by expressing user needs before implementation and coordinating stakeholders with developers.
- 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.
Design for Developers
A business need or constraint is a product or project outcome that an organization expects to satisfy.
- How it is used
- Guides content grouping, wireframing, design approval, testing, and iterative development.
- How deep it goes
- Defines requirements within a four-phase user-centered process but does not detail formal requirements documentation.
- Examples
- Uses buying products, booking appointments, comparing hotels, content layouts, wireframes, and approved MVPs.
- What you can do after
- Apply it via user-centered design to decide when a design is ready for testing and iteration.
Related concepts
- nonfunctional requirementincludes · A nonfunctional requirement specifies a quality attribute, constraint, or operating condition that a system must satisfy beyond the particular functions it performs.
- controlimplemented by · Control is the means or degree of influence over a system’s actions, behavior, processes, or operation.
- functional requirementincludes · A functional requirement specifies a behavior or capability that a system must provide or enable.
- testmeasured by · A test is a procedure or check that evaluates behavior using specified inputs or evidence against expected results or criteria.
- use caseused by · A use case is a description of a situation or interaction in which a system, method, or capability is applied to achieve or support a goal or outcome.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.












