SlideShare a Scribd company logo
Agile Software
Requirements Management
Software Crafters, Bucharest, July 2020
Fred Heath
http://bootstrap.me.uk
https://dev.to/redfred7
This talk is about
Goals
1. Eliciting and modeling requirements
2. Creating executable specifications from
requirements
Topics
● Requirements Domain
● Impact Mapping
● Behavior Driven Development
● D3, structured conversation, Business
Process mapping
Why do software projects fail?
Requirements mis-management is the biggest
cause of project failure
● https://www.wrike.com/blog/complete-collection-project-management-
statistics-2015/
● https://www.askspoke.com/blog/it/reasons-for-it-project-failure/
● https://www.researchgate.net/publication/288260664_Understanding_the_sou
rces_of_information_systems_project_failure_see_BCS_wwwbcsorgcontentC
onWebDoc19584
Requirements mis-management is the biggest
cause of project failure
1. The requirements were inaccurate or unclear
2. The requirements were not translated into specifications
3. The project goals did not align with business goals
4. Requirements or requirement priorities changed without the project changing
accordingly
Requirements vs Specifications
Requirement = the expression of a need, wish
desire or expectation
Specification = a description of the system
behaviour required in order to fulfill or realise a
requirement
“Failing to write a spec is the single biggest
unnecessary risk you take in a software project.
It’s as stupid as setting off to cross the Mojave
desert with just the clothes on your back, hoping
to ‘wing it’.”
Joel on Software
What’s a Requirement?
● A formal statement ("The system shall provide a document searching facility")
● Unstructured statement (“Admin can bulk upload CSVs into their company’s account,
or add individual users into the account.“.
● A business rule (" accounts with monthly deposits larger than $1000 receive a 10%
discount")
● An example ("Joe didn't have to pay for his coffee because it was his 11th coffee in
that store")
● A Business Process
● A screen mockup or wireframe
● A Flow-chart, activity chart, or some other type of diagram
The fog of agile software development
What’s a User Story?
A requirement, a feature, a description, an end-
goal, a high-level abstraction, a small piece of
business value..??
What’s a Feature?
Epic?
Requirement?
[many conflicting opinions]
https://dev.to/redfred7/enough-with-the-user-stories-already-2a8a
Requirements Domain entities
The Requirements Domain
Entities:
● Stakeholder: affect or benefit from with our system
● Goal: something of benefit to a Stakeholder
● Capability: impact of the Stakeholder to our system
● Feature: functionality needed to deliver Capability
Impact Map
Agile software requirements management with Impact Mapping and BDD
Requirements Domain: Stakeholders
Stakeholder: someone/something
that derives value, benefits from or
influences our system
Actor: A Stakeholder who interacts
with the system, either directly or
indirectly
Business Goals vs Domain Goals
Non-acting Stakeholders (Business
Sponsors) CEO, CTO, Director, etc =>
Business Goals
Actors =>
Domain Goals
Domain Goals
A goal that adds value to an Actor.
Domain Goals are usually defined by Actors
Good Domain Goals add value to Stakeholders
by specifying goals tangential or extrinsic to the
system's intended abilities and functionality.
Example 1: Sell my stuff
Example 2: Make money
Example 3: Get rid of things I don’t need
Requirements Domain: Capabilities
● A system ability that directly helps a Stakeholder achieve a Goal
● Capabilities define how the stakeholder impacts the system
● Our job as System Builders is to deliver capabilities
Requirements Domain: Features
● A system functionality that helps deliver a Capability
● Features define what the system will do to support Capabilities
● Our job as System Builders is to deliver capabilities
Capabilities vs Features
Capability Feature
Granularity Coarse Fine
Type Impact Functionality
POV Stakeholder System
Association Goal Capability
Directly Actionable No Yes
Agile software requirements management with Impact Mapping and BDD
“ User Stories are just descriptive devices for
Requirements Domain Entities. Nothing more,
nothing less.”
User Story Hell
Agile software requirements management with Impact Mapping and BDD
Behavior Driven Development
Behaviour-Driven Development: what is it?
● BDD is an outside-in development methodology
● It’s about collaboration and communication
● Cucumber, JBehave, SpecFlow, etc. are BDD tools
● It is NOT. ABOUT. TESTING !!!
Behaviour-Driven Development: Features
● Features outline behaviour
● Features are the Specification
● Features are living documentation
● Features drive the development
Feature: User Authentication
As a Head of School
I want to log into the system
So I can see attendance records
Scenario: successful authentication
Given I am at the login page
When I enter my credentials
Then I see a welcome message
Behaviour-Driven Development: some rules
● Features use Domain language
● Features must be readable by all
stakeholders
● Features do not contain technical
information
● Features described in Gherkin DSL
(natural language subset)
Feature: User Authentication
Rule: passwords must be over 8 characters
Scenario: successful authentication
Given I go to the login page
When I enter my credentials
Then I see a welcome message
Behaviour-Driven Development: Scenarios
● Scenarios are just context switching
● Scenarios are atomic
● Not many scenarios needed. Often just
‘happy day’ + a couple of
error/alternative contexts. 80/20 rule
● NEVER go for 100% coverage. BDD
isn’t about testing !
Executable Specifications
STEPS
Scenario: Successful
withdrawal from an account in
credit
Given I have $100 in my account
When I request $20
Then $20 should be dispensed
And my account balance is $80
STEP DEFINITIONS
Given /I have $100 in my
Account/ do
my_account.clear &&
my_account.deposit(100)
And /my account balance
is $80/ do
assert(my_account.balance
== 80)
Agile software requirements management with Impact Mapping and BDD
BDD Patterns
Pattern: CRUD Features
Pattern: CRUD Features - fixed
Pattern: Composite Features
Pattern: Composite Features - fixed
Pattern: Feature Interpolation
Pattern: Feature Interpolation
Background:
#--> existing step
Given the user is logged in as a Writer
#--> new step below:
And the Writer is using a:
| device |
| MacBook |
| Windows laptop |
| iPhone |
| Android phone |
| Android tablet |
| iPad |
Pattern: Feature Interpolation - fixed
BDD Anti-Patterns
BDD Anti-Pattern: Thinking like developers
Scenario: simple search
Given I am a Reviewer
When I go to ‘http://ierd.com/search’
And I click on the Search button
And I see a search text box
And I enter ‘morrison + assessment’
Then I’m redirected to the results page
And I see a link to the ‘IB assessment practices.doc’ by J.Morrison
BDD Anti-Pattern: Thinking like developers -fixed
Scenario: simple search
Given I am a Reviewer
When I go to the search page
And I search for ‘morrison’ and ‘assessment’
Then I can see ‘IB assessment practices.doc’ by J.Morrison
BDD Anti-Pattern: Incidentals details
Scenario: successful login
Given I am an Event Coordinator
When I go to the login page
And I enter ‘Fred’ as the username
And I enter ‘qwerty’ as the password
Then I see a message:
“””
Welcome to the app, Fred. Have fun
“””
BDD Anti-Pattern: Incidentals - fixed
Scenario: successful login
Given I am an Event Coordinator
When I go to the login page
And I enter a valid username and password
Then I see a welcome message
BDD Anti-Pattern: A flood of Scenarios
More than 10 Scenarios per Feature indicate a problem
Cause #1: BDD isn’t testing, don’t go for 100% coverage!
Cause #2: It’s a CRUD or Composite Feature
Cause #3: It’s a Capability
Agile software requirements management with Impact Mapping and BDD
Agile software requirements management with Impact Mapping and BDD
Code: 20AGILEWAY

More Related Content

PPTX
Automatisation des tests - objectifs et concepts - partie 1
PDF
ODP
Introduction to BDD
DOC
PPTX
Introducing OpenAPI Version 3.1
PPTX
How to Execute a Successful API Strategy
PDF
VueJS Introduction
PPTX
Measuring UX
Automatisation des tests - objectifs et concepts - partie 1
Introduction to BDD
Introducing OpenAPI Version 3.1
How to Execute a Successful API Strategy
VueJS Introduction
Measuring UX

What's hot (20)

PDF
BDD in Action – principles, practices and real-world application
PDF
Intro to vue.js
PPT
Automatisation des tests
PPTX
Test Automation Framework with BDD and Cucumber
PPTX
PPTX
BDD WITH CUCUMBER AND JAVA
PPTX
Agile test-management-test-rail-lastest
PPTX
Behavior driven development (bdd)
PDF
Test unitaire
ODP
Test Automation Framework using Cucumber BDD overview (part 1)
PDF
Test and Behaviour Driven Development (TDD/BDD)
PDF
Cypress Best Pratices for Test Automation
PDF
Resume - Dhanshri Kalgaonkar
PPTX
Spring Security 5
PPTX
Rest assured
PPTX
Build JSON and XML using RABL gem
PPTX
Angular interview questions
PDF
Cucumber ppt
PPTX
Introduction to React JS for beginners | Namespace IT
PPTX
BDD with SpecFlow and Selenium
BDD in Action – principles, practices and real-world application
Intro to vue.js
Automatisation des tests
Test Automation Framework with BDD and Cucumber
BDD WITH CUCUMBER AND JAVA
Agile test-management-test-rail-lastest
Behavior driven development (bdd)
Test unitaire
Test Automation Framework using Cucumber BDD overview (part 1)
Test and Behaviour Driven Development (TDD/BDD)
Cypress Best Pratices for Test Automation
Resume - Dhanshri Kalgaonkar
Spring Security 5
Rest assured
Build JSON and XML using RABL gem
Angular interview questions
Cucumber ppt
Introduction to React JS for beginners | Namespace IT
BDD with SpecFlow and Selenium
Ad

Similar to Agile software requirements management with Impact Mapping and BDD (20)

PDF
Expo qa from user stories to automated acceptance tests with bdd
PPT
Bdd with m spec
PDF
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
PPTX
Using Stories to Test Requirements and Systems
PDF
Behavior Driven Development - WPC 2011
PDF
PDF
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
PPTX
Behaviour driven development aka bdd
PDF
User Requirements, Functional and Non-Functional Requirements
PPTX
Cucumber is a Behavior Driven Development tool used to develop test cases for...
PDF
Non-functional requirements
PDF
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
PDF
Bdd For Web Applications from Scandinavian Developer Conference 2010
PPTX
Bdd masterclass
PDF
BDD approaches for web development at Agile Testing Days 2009
KEY
Bahaviour Driven Development
PDF
Writing Requirements Right
PDF
Behavior Driven Development
PPTX
BEHAVIOR-DRIVEN-DEVELOPMENT.pptx
PDF
Bdd for Web Applications at TelecomCity DevCon 2010
Expo qa from user stories to automated acceptance tests with bdd
Bdd with m spec
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Using Stories to Test Requirements and Systems
Behavior Driven Development - WPC 2011
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Behaviour driven development aka bdd
User Requirements, Functional and Non-Functional Requirements
Cucumber is a Behavior Driven Development tool used to develop test cases for...
Non-functional requirements
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
Bdd For Web Applications from Scandinavian Developer Conference 2010
Bdd masterclass
BDD approaches for web development at Agile Testing Days 2009
Bahaviour Driven Development
Writing Requirements Right
Behavior Driven Development
BEHAVIOR-DRIVEN-DEVELOPMENT.pptx
Bdd for Web Applications at TelecomCity DevCon 2010
Ad

More from Fred Heath (8)

PDF
Make BDD work for you - how to write readable and resilient features
PDF
Nim programming language - DevFest Berlin 2019
PDF
USP Estimation - SwanseaCon 2016
PDF
Introduction to Nim
PPTX
Port80: the uncertainty principle
PDF
Agile diff usp
PDF
Design Patterns the Ruby way - ConFoo 2015
PDF
User Story Point estimation method at ConFoo 2015
Make BDD work for you - how to write readable and resilient features
Nim programming language - DevFest Berlin 2019
USP Estimation - SwanseaCon 2016
Introduction to Nim
Port80: the uncertainty principle
Agile diff usp
Design Patterns the Ruby way - ConFoo 2015
User Story Point estimation method at ConFoo 2015

Recently uploaded (20)

PPTX
Transform Your Business with a Software ERP System
PDF
System and Network Administraation Chapter 3
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
AI in Product Development-omnex systems
PPTX
history of c programming in notes for students .pptx
PPTX
Introduction to Artificial Intelligence
PDF
Digital Strategies for Manufacturing Companies
PDF
Nekopoi APK 2025 free lastest update
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
top salesforce developer skills in 2025.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
medical staffing services at VALiNTRY
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Transform Your Business with a Software ERP System
System and Network Administraation Chapter 3
Design an Analysis of Algorithms I-SECS-1021-03
AI in Product Development-omnex systems
history of c programming in notes for students .pptx
Introduction to Artificial Intelligence
Digital Strategies for Manufacturing Companies
Nekopoi APK 2025 free lastest update
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
top salesforce developer skills in 2025.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PTS Company Brochure 2025 (1).pdf.......
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Which alternative to Crystal Reports is best for small or large businesses.pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
medical staffing services at VALiNTRY
Softaken Excel to vCard Converter Software.pdf
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises

Agile software requirements management with Impact Mapping and BDD

  • 1. Agile Software Requirements Management Software Crafters, Bucharest, July 2020
  • 3. This talk is about Goals 1. Eliciting and modeling requirements 2. Creating executable specifications from requirements Topics ● Requirements Domain ● Impact Mapping ● Behavior Driven Development ● D3, structured conversation, Business Process mapping
  • 4. Why do software projects fail?
  • 5. Requirements mis-management is the biggest cause of project failure ● https://www.wrike.com/blog/complete-collection-project-management- statistics-2015/ ● https://www.askspoke.com/blog/it/reasons-for-it-project-failure/ ● https://www.researchgate.net/publication/288260664_Understanding_the_sou rces_of_information_systems_project_failure_see_BCS_wwwbcsorgcontentC onWebDoc19584
  • 6. Requirements mis-management is the biggest cause of project failure 1. The requirements were inaccurate or unclear 2. The requirements were not translated into specifications 3. The project goals did not align with business goals 4. Requirements or requirement priorities changed without the project changing accordingly
  • 7. Requirements vs Specifications Requirement = the expression of a need, wish desire or expectation Specification = a description of the system behaviour required in order to fulfill or realise a requirement “Failing to write a spec is the single biggest unnecessary risk you take in a software project. It’s as stupid as setting off to cross the Mojave desert with just the clothes on your back, hoping to ‘wing it’.” Joel on Software
  • 8. What’s a Requirement? ● A formal statement ("The system shall provide a document searching facility") ● Unstructured statement (“Admin can bulk upload CSVs into their company’s account, or add individual users into the account.“. ● A business rule (" accounts with monthly deposits larger than $1000 receive a 10% discount") ● An example ("Joe didn't have to pay for his coffee because it was his 11th coffee in that store") ● A Business Process ● A screen mockup or wireframe ● A Flow-chart, activity chart, or some other type of diagram
  • 9. The fog of agile software development What’s a User Story? A requirement, a feature, a description, an end- goal, a high-level abstraction, a small piece of business value..?? What’s a Feature? Epic? Requirement? [many conflicting opinions] https://dev.to/redfred7/enough-with-the-user-stories-already-2a8a
  • 11. The Requirements Domain Entities: ● Stakeholder: affect or benefit from with our system ● Goal: something of benefit to a Stakeholder ● Capability: impact of the Stakeholder to our system ● Feature: functionality needed to deliver Capability
  • 14. Requirements Domain: Stakeholders Stakeholder: someone/something that derives value, benefits from or influences our system Actor: A Stakeholder who interacts with the system, either directly or indirectly
  • 15. Business Goals vs Domain Goals Non-acting Stakeholders (Business Sponsors) CEO, CTO, Director, etc => Business Goals Actors => Domain Goals
  • 16. Domain Goals A goal that adds value to an Actor. Domain Goals are usually defined by Actors Good Domain Goals add value to Stakeholders by specifying goals tangential or extrinsic to the system's intended abilities and functionality. Example 1: Sell my stuff Example 2: Make money Example 3: Get rid of things I don’t need
  • 17. Requirements Domain: Capabilities ● A system ability that directly helps a Stakeholder achieve a Goal ● Capabilities define how the stakeholder impacts the system ● Our job as System Builders is to deliver capabilities
  • 18. Requirements Domain: Features ● A system functionality that helps deliver a Capability ● Features define what the system will do to support Capabilities ● Our job as System Builders is to deliver capabilities
  • 19. Capabilities vs Features Capability Feature Granularity Coarse Fine Type Impact Functionality POV Stakeholder System Association Goal Capability Directly Actionable No Yes
  • 21. “ User Stories are just descriptive devices for Requirements Domain Entities. Nothing more, nothing less.”
  • 25. Behaviour-Driven Development: what is it? ● BDD is an outside-in development methodology ● It’s about collaboration and communication ● Cucumber, JBehave, SpecFlow, etc. are BDD tools ● It is NOT. ABOUT. TESTING !!!
  • 26. Behaviour-Driven Development: Features ● Features outline behaviour ● Features are the Specification ● Features are living documentation ● Features drive the development Feature: User Authentication As a Head of School I want to log into the system So I can see attendance records Scenario: successful authentication Given I am at the login page When I enter my credentials Then I see a welcome message
  • 27. Behaviour-Driven Development: some rules ● Features use Domain language ● Features must be readable by all stakeholders ● Features do not contain technical information ● Features described in Gherkin DSL (natural language subset) Feature: User Authentication Rule: passwords must be over 8 characters Scenario: successful authentication Given I go to the login page When I enter my credentials Then I see a welcome message
  • 28. Behaviour-Driven Development: Scenarios ● Scenarios are just context switching ● Scenarios are atomic ● Not many scenarios needed. Often just ‘happy day’ + a couple of error/alternative contexts. 80/20 rule ● NEVER go for 100% coverage. BDD isn’t about testing !
  • 29. Executable Specifications STEPS Scenario: Successful withdrawal from an account in credit Given I have $100 in my account When I request $20 Then $20 should be dispensed And my account balance is $80 STEP DEFINITIONS Given /I have $100 in my Account/ do my_account.clear && my_account.deposit(100) And /my account balance is $80/ do assert(my_account.balance == 80)
  • 37. Pattern: Feature Interpolation Background: #--> existing step Given the user is logged in as a Writer #--> new step below: And the Writer is using a: | device | | MacBook | | Windows laptop | | iPhone | | Android phone | | Android tablet | | iPad |
  • 40. BDD Anti-Pattern: Thinking like developers Scenario: simple search Given I am a Reviewer When I go to ‘http://ierd.com/search’ And I click on the Search button And I see a search text box And I enter ‘morrison + assessment’ Then I’m redirected to the results page And I see a link to the ‘IB assessment practices.doc’ by J.Morrison
  • 41. BDD Anti-Pattern: Thinking like developers -fixed Scenario: simple search Given I am a Reviewer When I go to the search page And I search for ‘morrison’ and ‘assessment’ Then I can see ‘IB assessment practices.doc’ by J.Morrison
  • 42. BDD Anti-Pattern: Incidentals details Scenario: successful login Given I am an Event Coordinator When I go to the login page And I enter ‘Fred’ as the username And I enter ‘qwerty’ as the password Then I see a message: “”” Welcome to the app, Fred. Have fun “””
  • 43. BDD Anti-Pattern: Incidentals - fixed Scenario: successful login Given I am an Event Coordinator When I go to the login page And I enter a valid username and password Then I see a welcome message
  • 44. BDD Anti-Pattern: A flood of Scenarios More than 10 Scenarios per Feature indicate a problem Cause #1: BDD isn’t testing, don’t go for 100% coverage! Cause #2: It’s a CRUD or Composite Feature Cause #3: It’s a Capability