Requirements Engineering for moderne Software-Teams
Most agile teams do requirements work informally - spread across Slack threads, refinement meetings, and Jira comments. This course teaches you to recognize the difference between a requirement and an idea, write acceptance criteria that survive a sprint planning session, and handle non-functional requirements before they become release problems. Built around a fictional SaaS product with real team conflicts.
Milica
Solo
Perfect for individual learners.
Save $240 with annual - 5 months free
- Start learning with
- Access to all current courses
- Hands-on exercises with real-time feedback
- Free updates and access to new courses
- Progress tracking per lesson
Team
For teams learning together.
Save $744 vs. 5 solo annual licenses
- Everything in Solo +
- Up to 5 team members
- Shared team experience
- Progress overview for all members
Why Clarity Comes Before Speed
Most teams diagnose their project problems as communication failures. This module shows why that diagnosis is usually wrong - and how a requirements decision made in Sprint 1 becomes a rework bill in Sprint 8. No prior knowledge of requirements engineering needed.
What Is a Requirement, Actually?
Most backlogs contain three fundamentally different kinds of things — requirements, wishes, and solution ideas - treated as if they were the same. This module gives you the sorting skill that has to come before any prioritization can work.
Product Vision - Before the First Requirement Is Written
Before the first requirement can be written, there's a prior question that has to be answered: what is this product actually for - and does the whole team agree? This module teaches you to make a product vision explicit and shared using Roman Pichler's Product Vision Board, and to use the completed board as a decision filter when incoming feature requests arrive.
Discovery - Asking the Right Questions
After this module, learners can decide who to interview for a concrete software product, which questions to ask, and how to translate what they hear into formulated user needs that can be directly converted into requirements. The module covers stakeholder mapping, behavioral interview techniques, and the translation from raw stakeholder interview material into actionable user needs.
Problem Space and Solution Space
Most teams jump to solutions before they've properly named the problem. This module shows you how to recognize that tendency, apply a two-column analysis that separates user needs from solution options, and decide which statements from your discovery output are ready to become requirements - and which ones aren't yet. But the deeper insight is the counterintuitive one: separation isn't the end goal. Drawing on the Twin Peaks model and continuous discovery research, you'll learn why problem space and solution space must iterate together - and how to make that iteration deliberate rather than accidental.
Structuring Requirements - From Discovery Output to Backlog
You have a Discovery output - interview notes, a categorized idea pool, analysis from Module 04. This module turns that raw material into a structured Story Map: an activity-based backbone that describes what users do, sprint-ready stories that survive planning, and a release boundary that delivers a complete user journey rather than a complete Epic. The judgment this module builds is knowing when a map is structurally wrong before it poisons the backlog - and when a correct map still isn't ready for a sprint.
Acceptance Criteria - The Language of Verifiability
Acceptance criteria are where requirements get tested - or fail. This module teaches you to write ACs that survive sprint planning: how to tell too vague from over-specified, when Given-When-Then adds genuine value and when it's overhead, and how to find the edge cases your imagination skips before a developer does.
Prioritization - The Right Framework for the Right Context
When every item on the backlog feels like a Must Have, something went wrong before the session started. This module teaches you to use MoSCoW, the Kano model, and Impact/Effort not as competing methods but as complementary lenses - each built to answer a different question about your product and your users. You'll work through a real backlog with a shared failure definition, learn to identify which absences customers will punish versus which features will delight them, and resolve conflicts between framework outputs with reasoning you can defend in a stakeholder conversation.
Non-functional Requirements: The Underestimated Requirements
Most teams write functional requirements - what the system does. This module covers the harder discipline: specifying how well the system does it, and under what conditions. Through the Kira case study, you will learn to recognize quality observations buried in Miro boards and Slack messages, turn vague intentions into testable requirements using a three-element schema (condition, attribute, measurable threshold), and judge which quality attributes genuinely shape your product's experience versus which simply need a minimum floor to be crossed.
RE in Agile - Refinement as a Quality Practice
A Definition of Ready only works if its criteria are actually checkable - not aspirational. This module shows you how to turn the RE artefacts from earlier modules into a concrete sprint-readiness checklist, structure a refinement meeting around the Three Amigos principle, and recognize when a DoR becomes a stage-gate that slows rather than protects delivery.
Synthesis & Transfer
The closing module of the course. Learners assess the complete Kira Release 1 Requirements-Set for strengths, thin spots, and gaps; locate their own team on a four-level RE maturity spectrum using observable symptoms; and design a bottom-up adoption plan — one practice, one sprint experiment, and one introduction sentence that lands as a solution to a known problem rather than as process overhead.

