Home

04 Requirements Engineering: From Process to Practice

lecture requirements agile elicitation change-management poc

1. Introduction: From Documentation to Discovery

Where we left off:

In Part 1, you learned:

But we haven’t answered the harder questions:

Today’s focus: The process of requirements engineering - from elicitation to change management, and why Agile emerged as a response to requirements uncertainty.


2. Learning Objectives

By the end of this lecture, you will:

  1. See requirements from different perspectives (developer, PM, product manager, founder)
  2. Apply elicitation techniques to discover requirements through stakeholder interviews
  3. Distinguish bugs from change requests and understand why this matters
  4. Use POC-driven approaches to discover requirements through prototyping
  5. Understand traditional development models (Waterfall, V-Model, V-Modell XT) and their limitations
  6. Recognize why V-Modell XT matters for German government and regulated industry projects
  7. Preview Agile methodology as a response to requirements uncertainty

Connection to Part 1: These skills build on the documentation and quality criteria from Part 1. You can’t elicit requirements well if you don’t know what makes a good requirement.


3. Beyond the Developer: Business Perspectives

Different roles ask different questions about requirements.

3.1 The Developer’s View

Questions:

Focus: Precision, testability, implementation details

3.2 The Project Manager’s View

Questions:

Focus: The iron triangle:

graph TD
    Scope --- Time
    Time --- Budget
    Budget --- Scope

    Quality((Quality))

    Scope -.-> Quality
    Time -.-> Quality
    Budget -.-> Quality

“Good, Fast, Cheap - pick two.”

3.3 The Product Manager’s View

Questions:

Focus: Value delivery, user needs, prioritization

3.4 The Startup Founder’s View

Questions:

Focus: Product-market fit, validation, pivoting

Key insight: The same “requirement” looks different at each level:

“Display intersection point”


4. Eliciting Requirements: How to Interview Stakeholders

Requirements don’t write themselves. Someone has to discover them through conversation with stakeholders.

4.1 Techniques for Requirements Elicitation

Technique Best For Watch Out For
Interviews Understanding individual perspectives, exploring unknowns Leading questions, assumptions
Workshops Resolving conflicts, building consensus Dominant voices, groupthink
Observation Understanding actual workflow (not what users say) Hawthorne effect (people change behavior when observed)
Surveys Gathering data from many users Low response rates, shallow answers
Prototyping Exploring "I'll know it when I see it" requirements Users confusing prototype with product

4.2 Good Questions vs Bad Questions

Bad questions (leading, closed):

Good questions (open, exploratory):

4.3 The 5 Whys Technique

When you hear a requirement, dig deeper:

User: “I need the intersection calculation to be faster.”

Why? “Because I’m waiting too long.”

Why does waiting matter? “Because I have to process 50 profiles per day.”

Why 50 per day? “That’s how many road segments we survey.”

Why not batch them? “I need results before the next measurement.”

Why immediately? “To adjust the camera angle for the next segment.”

Real requirement discovered: Not “faster calculation” but “real-time feedback loop for camera adjustment.”

Solution might be: Prediction/preview, not faster calculation.


5. Change Request vs Bug Fix: A Critical Distinction

This seems like a technical detail, but it’s actually a business-critical decision.

5.1 Definitions

Bug:

The software does not meet an existing, documented requirement.

Change Request (CR):

The stakeholder wants the software to do something different or additional to existing requirements.

5.2 Why This Matters

Aspect Bug Fix Change Request
Billing Usually free (warranty) Typically billable
Priority Often high (broken promise) Depends on business value
Scope Part of original scope Expands scope
Blame Developer team Neither (new requirement)
Timeline Doesn't extend deadline May extend deadline

5.3 The Gray Area

Customer says: “The intersection point is wrong!”

Is it a bug or CR?

graph TD
    A[Customer reports issue] --> B{Is expected behavior documented?}
    B -->|Yes| C{Does software match documentation?}
    B -->|No| D[Gray area - discuss with stakeholder]
    C -->|Yes| E[Change Request - software works as specified]
    C -->|No| F[Bug - software doesn't match spec]
    D --> G{Was behavior implied by context?}
    G -->|Yes| H[Probably a bug]
    G -->|No| I[Probably a CR]

Real example:

“The intersection calculation returns wrong results for angles greater than 180°.”

Key insight: Good requirements documentation prevents these disputes.

Warning: Beyond Software Development

This distinction isn’t just a technical matter—it can have legal and financial consequences that go far beyond the scope of software engineering. In real-world projects, bug vs. change request disputes often escalate to contract negotiations, legal discussions, or even court cases.

Perspective Risk Protection Strategy
As a Developer/Vendor Customers may claim "bugs" to get new features for free, expanding scope without compensation Detailed requirements docs, clear acceptance criteria, signed specifications
As a Customer Vendors may charge for "change requests" when fixing genuine bugs, making you pay twice Require clear bug definitions in contracts, acceptance testing before payment

Real-world scenarios you should be aware of:

What this means for you as a student:

Bottom line: The clearer your requirements documentation, the fewer disputes arise. When disputes do occur, good documentation protects both parties.


6. POC-Driven Requirements: Build to Learn

Here’s the uncomfortable truth about requirements:

Customers don’t know what they want until they see it.

This isn’t a failure - it’s human nature. Requirements emerge through interaction with tangible artifacts.

6.1 The Problem with Big Upfront Requirements

Traditional RE assumes you can:

  1. Interview stakeholders
  2. Write complete requirements
  3. Build the system
  4. Deliver what they wanted

Reality:

  1. Stakeholders describe what they think they want
  2. You build it
  3. They see it and say “Actually, I meant…”
  4. Expensive rework

6.2 Lean Startup: Build-Measure-Learn

The Lean Startup approach (Eric Ries) flips the process:

graph LR
    A[Idea] --> B[Build MVP]
    B --> C[Measure]
    C --> D[Learn]
    D --> A

MVP = Minimum Viable Product: The smallest thing you can build to test your hypothesis about what users want.

Example for Road Profile Viewer:

Instead of building the full system:

  1. MVP 1: Command-line script that calculates intersection → Show to user
  2. MVP 2: Simple plot with hardcoded data → “Is this what you need?”
  3. MVP 3: Interactive angle selector → “Does this workflow work?”

Each iteration refines requirements based on real feedback.

6.3 Design Thinking: Empathize First

Design Thinking (IDEO, Stanford d.school) emphasizes understanding users before defining solutions:

Empathize → Define → Ideate → Prototype → Test
     ↑_____________________________________|

Key activities:

Requirements emerge from this process - they’re not inputs to it.

6.4 Modern Approach: Gen AI for Rapid Prototyping

Here’s where it gets exciting for modern developers:

Traditional prototyping:

Gen AI-assisted prototyping (“vibe coding”):

Example workflow:

Developer: "Create a simple Python GUI that loads a CSV of road points
           and displays them as a line chart. Add a slider for angle."

[AI generates working code in 10 minutes]

Developer: *Shows to road engineer*

Engineer: "This is interesting, but I need to see the camera position too.
          And can the intersection point blink when it updates?"

Developer: "Add camera position marker and blinking intersection to the code."

[AI updates code in 5 minutes]

Developer: *Shows updated version*

Engineer: "Yes! But actually, I realize I need to compare two profiles
          side by side..."

The insight: AI lets you create POCs so fast that requirements discovery becomes interactive.

Instead of:

  1. Long interview → Written requirements → Build → Wrong thing

You get:

  1. Quick chat → Working prototype → Immediate feedback → Refined prototype → Real requirements emerge

Requirements become conversations with working software as a shared reference.

6.5 When Traditional RE Fails

POC-driven approaches are especially valuable when:

Traditional RE still works for:


7. Traditional Development Models

Before we dive into Agile, we need to understand what came before it. Traditional development models dominated software engineering for decades, and many organizations—especially in regulated industries—still use them today. Understanding these models helps you appreciate why Agile emerged and when traditional approaches might still be appropriate.

7.1 The Waterfall Model: Origins and Structure

The Waterfall model is the grandfather of all software development methodologies.

History:

Requirements
Design
Implementation
Testing
Deployment
Maintenance

Each phase “flows” into the next like water cascading down a waterfall—hence the name. Once you’ve passed a phase, going back upstream is difficult and expensive.

The Royce Irony:

Here’s a fascinating historical detail: Winston Royce, whose 1970 paper is universally cited as the origin of the Waterfall model, actually warned against the pure sequential approach. In his paper, he called the basic waterfall “risky and inviting failure.” The rest of his paper described iterative improvements and feedback loops.

The industry adopted his diagram but ignored his warnings. Royce’s “cautionary example” became the standard process.

Characteristics:

Where Waterfall Works:

Despite its limitations, Waterfall can be appropriate for:

7.2 The V-Model: Testing Built In

The V-Model emerged in the 1980s as an evolution of Waterfall, addressing one of its key weaknesses: testing as an afterthought.

Origin: Paul Rook introduced the V-Model in the late 1980s, primarily for software development in regulated industries.

Key Innovation: Each development phase on the left side of the “V” has a corresponding testing phase on the right side. Test planning happens in parallel with development, not after it.

Requirements Analysis
test planning
Acceptance Testing
System Design
System Testing
Detailed Design
Integration Testing
Implementation
Unit Testing

The V-shape: development flows down the left arm, reaches Implementation at the bottom point, then testing flows up the right arm. The horizontal dashed lines show that test planning happens in parallel—acceptance tests are designed when requirements are written, not after coding.

The V-Shape Explained:

Development Phase (Left) Corresponding Test Phase (Right) What's Verified
Requirements Analysis Acceptance Testing Does the system meet user needs?
System Design System Testing Does the system work as designed?
Detailed Design Integration Testing Do components work together?
Implementation Unit Testing Does each unit work correctly?

Improvement over Waterfall:

Still Sequential:

Despite the improvement, the V-Model suffers from the same fundamental problem as Waterfall: working software appears only at the end. If requirements were wrong, you still discover it late.

7.3 V-Modell XT: The German Government Standard

If you work on IT projects for the German federal government, you are required to use V-Modell XT. This isn’t optional—it’s mandated by law.

What is V-Modell XT?

V-Modell XT (where “XT” stands for “eXtreme Tailoring”) is the standard development process for German federal IT projects since 2005. Version 2.3 (published March 2019) is currently in use.

Official Resources:

History:

Why “Extreme Tailoring”?

Unlike rigid process models, V-Modell XT is designed to be adapted to different project types and sizes. The “tailoring” process selects which parts of the model apply to your specific project.

Core Components:

  1. Decision Points (Entscheidungspunkte): Project gates where specific deliverables must be approved before proceeding. These ensure quality and provide management visibility.

  2. Process Building Blocks (Vorgehensbausteine): Approximately 20 standardized modules that can be combined:
    • Project Management (PM)
    • Quality Assurance (QA)
    • Configuration Management (KM)
    • Problem and Change Management (PÄM)
    • Requirements Management
    • System Development
    • And more…
  3. Project Types:
    • System Development Project (Systementwicklungsprojekt)
    • System Implementation Project
    • Combined Development and Implementation
    • Service Projects
    • Agile Development Project (yes, even V-Modell XT has agile variants!)
  4. 108 Defined Deliverables (Produkte): From requirements specifications to test reports, each deliverable has a defined structure and approval process.

  5. 35 Defined Roles: Project managers, architects, developers, testers, quality managers, and more—each with defined responsibilities.

Tailoring Process:

graph LR
    A[Select Project Type] --> B[Select Project Type Variant]
    B --> C[Define Project Characteristics]
    C --> D[Generate Project-Specific Model]

Real-World Applications:

Why This Matters for Students:

Even if you don’t plan to work in government, understanding V-Modell XT is valuable because:

7.4 The Problem with Sequential Models

All sequential models—Waterfall, V-Model, and V-Modell XT—share fundamental limitations that eventually led to the Agile movement.

The Late Feedback Problem:

In sequential models, working software appears only at the end. If requirements were wrong, you discover it months (or years) after the decision was made.

graph LR
    A[Requirements<br>Decision] -->|"6-18 months"| B[Working<br>Software]
    B --> C[Discovery:<br>'That's not what I meant!']
    C --> D[Expensive<br>Rework]

The Cost of Change:

Barry Boehm’s seminal 1981 book “Software Engineering Economics” documented what became known as the “cost of change curve.” His studies showed that defects found late in development are dramatically more expensive to fix:

Note: Modern studies show varying ratios depending on context. The exact numbers are disputed, but the principle is robust: late changes cost more than early changes.

Why? A requirements error found during requirements means changing a document. The same error found in production means:

The Fundamental Tensions:

Sequential models assume we can:

  1. Know all requirements upfront
  2. Design a complete solution before coding
  3. Build it right the first time

Reality contradicts all three assumptions:

Assumption Reality
"We can know all requirements upfront" Users don't know what they want until they see it
"We can design completely before coding" Design decisions need feedback from implementation
"We can build it right the first time" Software is learned, not manufactured

The Paradox:

The Solution?

Accept that change is inevitable and build processes that embrace it. Don’t fight uncertainty—work with it.

This insight led to the Agile movement…


8. Preview: Toward Agile Development

Everything we’ve discussed points to a fundamental tension:

The planning problem:

Traditional response: More planning, more documentation, change control

Agile response: Embrace change as inevitable, iterate quickly, deliver value early

8.1 The Agile Manifesto (Preview)

We are uncovering better ways of developing software by doing it and helping others do it.

Through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

8.2 Agile Requirements

In Agile development:

Next lecture: We’ll dive deep into Agile methodology - Scrum, sprints, backlogs, and how testing fits into iterative development.


9. Summary

Concept Key Point Connection to Testing
Business Perspectives Same requirement, different views Different acceptance criteria per role
Elicitation Techniques Requirements are discovered, not dictated Better questions → better test cases
Bug vs Change Request Does not meet spec vs new spec Tests define the boundary
POC-Driven RE Build to discover requirements Prototype tests hypotheses
Waterfall & V-Model Sequential phases, late feedback V-Model pairs dev phases with test phases
V-Modell XT German government standard, mandatory for federal IT 108 deliverables, 35 roles, decision gates
Sequential Model Problems Late changes cost more (Boehm) Tests planned late = defects found late
Agile Preview Embrace change, iterate quickly Continuous testing in sprints

The Big Picture (Both Parts Combined):

Stakeholder Needs
       ↓
   Requirements (User Stories, Acceptance Criteria)  ← Part 1
       ↓
   Elicitation & Refinement  ← Part 2
       ↓
   Tests (verify requirements)  ← Part 1
       ↓
   Code (implements requirements, passes tests)
       ↓
   Change Requests & Bug Fixes  ← Part 2
       ↑
   Gaps reveal missing requirements
       ↑
   Back to stakeholder conversations

10. Reflection Questions

  1. Look at your current project: What requirements are implicit in your code? Where are they documented?

  2. Stakeholder analysis: Who are the stakeholders for the Road Profile Viewer? What might a “safety officer” stakeholder require that wasn’t in our original list?

  3. Bug or CR? A user reports: “The system crashes when I load a file with 1 million points.” The documentation says nothing about file size limits. Bug or change request? How would you handle this?

  4. Testability: Take this requirement: “The system should be reliable.” Rewrite it to be testable.

  5. POC approach: If you were building a new feature for Road Profile Viewer and didn’t know exactly what users needed, how would you use a Gen AI-assisted POC approach to discover requirements?


11. Further Reading

Books:

Standards:

Tools:

© 2026 Dominik Mueller   •  Powered by Soopr   •  Theme  Moonwalk