SlideShare ist ein Scribd-Unternehmen 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
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
“ User Stories are just descriptive devices for
Requirements Domain Entities. Nothing more,
nothing less.”
User Story Hell
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)
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
Code: 20AGILEWAY

Weitere ähnliche Inhalte

Was ist angesagt?

Software testing Report
Software testing ReportSoftware testing Report
Introduction to BDD
Introduction to BDD Introduction to BDD
Introduction to BDD
Ranjith Tharayil
 
Behavior driven development (bdd)
Behavior driven development (bdd)Behavior driven development (bdd)
Behavior driven development (bdd)
Rohit Bisht
 
Project Status KPI Dashboard Showing Schedule And Alignment
Project Status KPI Dashboard Showing Schedule And AlignmentProject Status KPI Dashboard Showing Schedule And Alignment
Project Status KPI Dashboard Showing Schedule And Alignment
SlideTeam
 
Web accessibility
Web accessibilityWeb accessibility
Web accessibility
AGILEDROP
 
Neison,s Heuristic Examples
Neison,s Heuristic ExamplesNeison,s Heuristic Examples
Neison,s Heuristic Examples
Muhammad Hassaan Mahmood
 
Ux is not UI
Ux is not UIUx is not UI
Ux is not UI
Bruno Mendes
 
Site Migration and Content Strategy
Site Migration and Content StrategySite Migration and Content Strategy
Site Migration and Content Strategy
Randy Carey
 
UX UI - Principles and Best Practices 2014-2015
UX UI - Principles and Best Practices 2014-2015UX UI - Principles and Best Practices 2014-2015
UX UI - Principles and Best Practices 2014-2015
Harsh Wardhan Dave
 
UX/UI design process - Studio CreativeMe
UX/UI design process - Studio CreativeMeUX/UI design process - Studio CreativeMe
UX/UI design process - Studio CreativeMe
Madhuri Garg
 
UI/UX Fundamentals
UI/UX FundamentalsUI/UX Fundamentals
UI/UX Fundamentals
Dijup Tuladhar
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Behavior Driven Development (BDD)
Behavior Driven Development (BDD)
Ajay Danait
 
Front end development
Front end developmentFront end development
Front end development
Maitrikpaida
 
UX Patterns & Design Systems
UX Patterns & Design SystemsUX Patterns & Design Systems
UX Patterns & Design Systems
Roshan Ravi
 
Front End Development
Front End Development Front End Development
Front End Development
Вѓд Сн
 
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UXBehaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
John Patterson
 
Ux team organization
Ux team organizationUx team organization
Ux team organization
Deidre Bohannon
 
The shift left strategy
The shift left strategy The shift left strategy
The shift left strategy
Clearsky testautomation
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using Cucumber
KMS Technology
 
Annotating designs for accessibility
Annotating designs for accessibilityAnnotating designs for accessibility
Annotating designs for accessibility
Intopia
 

Was ist angesagt? (20)

Software testing Report
Software testing ReportSoftware testing Report
Software testing Report
 
Introduction to BDD
Introduction to BDD Introduction to BDD
Introduction to BDD
 
Behavior driven development (bdd)
Behavior driven development (bdd)Behavior driven development (bdd)
Behavior driven development (bdd)
 
Project Status KPI Dashboard Showing Schedule And Alignment
Project Status KPI Dashboard Showing Schedule And AlignmentProject Status KPI Dashboard Showing Schedule And Alignment
Project Status KPI Dashboard Showing Schedule And Alignment
 
Web accessibility
Web accessibilityWeb accessibility
Web accessibility
 
Neison,s Heuristic Examples
Neison,s Heuristic ExamplesNeison,s Heuristic Examples
Neison,s Heuristic Examples
 
Ux is not UI
Ux is not UIUx is not UI
Ux is not UI
 
Site Migration and Content Strategy
Site Migration and Content StrategySite Migration and Content Strategy
Site Migration and Content Strategy
 
UX UI - Principles and Best Practices 2014-2015
UX UI - Principles and Best Practices 2014-2015UX UI - Principles and Best Practices 2014-2015
UX UI - Principles and Best Practices 2014-2015
 
UX/UI design process - Studio CreativeMe
UX/UI design process - Studio CreativeMeUX/UI design process - Studio CreativeMe
UX/UI design process - Studio CreativeMe
 
UI/UX Fundamentals
UI/UX FundamentalsUI/UX Fundamentals
UI/UX Fundamentals
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Behavior Driven Development (BDD)
Behavior Driven Development (BDD)
 
Front end development
Front end developmentFront end development
Front end development
 
UX Patterns & Design Systems
UX Patterns & Design SystemsUX Patterns & Design Systems
UX Patterns & Design Systems
 
Front End Development
Front End Development Front End Development
Front End Development
 
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UXBehaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
 
Ux team organization
Ux team organizationUx team organization
Ux team organization
 
The shift left strategy
The shift left strategy The shift left strategy
The shift left strategy
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using Cucumber
 
Annotating designs for accessibility
Annotating designs for accessibilityAnnotating designs for accessibility
Annotating designs for accessibility
 

Ähnlich wie Agile software requirements management with Impact Mapping and BDD

BDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User StoriesBDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User Stories
Sauce Labs
 
Expo qa from user stories to automated acceptance tests with bdd
Expo qa   from user stories to automated acceptance tests with bddExpo qa   from user stories to automated acceptance tests with bdd
Expo qa from user stories to automated acceptance tests with bdd
Eduardo Riol
 
A step-by-step guide to behavior-driven development
A step-by-step guide to behavior-driven developmentA step-by-step guide to behavior-driven development
A step-by-step guide to behavior-driven development
valuebound
 
Technical Debt.pptx
Technical Debt.pptxTechnical Debt.pptx
Technical Debt.pptx
Atish Narlawar
 
German Testing Day 2015 - How behavior-driven development fuses developers an...
German Testing Day 2015 - How behavior-driven development fuses developers an...German Testing Day 2015 - How behavior-driven development fuses developers an...
German Testing Day 2015 - How behavior-driven development fuses developers an...
Bastian Seehaus
 
Behavioral tests with behat for qa
Behavioral tests with behat for qaBehavioral tests with behat for qa
Behavioral tests with behat for qa
Sergey Bielanovskiy
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5
SSW
 
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo RiolWebinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
atSistemas
 
prod-dev-management.pptx
prod-dev-management.pptxprod-dev-management.pptx
prod-dev-management.pptx
Michael Ming Lei
 
Ranendra_new_CV
Ranendra_new_CVRanendra_new_CV
Ranendra_new_CV
ranendrabiswas
 
Ranendra_new_CV
Ranendra_new_CVRanendra_new_CV
Ranendra_new_CV
ranendrabiswas
 
Testing stage. being ahead business with cucumber
Testing stage. being ahead business with cucumberTesting stage. being ahead business with cucumber
Testing stage. being ahead business with cucumber
Alex Mikitenko
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
Adam Englander
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for Testers
John Ferguson Smart Limited
 
Cloud Developer Resume Jhon-Arzu-Gil
Cloud Developer Resume Jhon-Arzu-Gil Cloud Developer Resume Jhon-Arzu-Gil
Cloud Developer Resume Jhon-Arzu-Gil
Cloud Technology Computing
 
Pubcon Florida 2018 | CSI: Forensic SEO Audits
Pubcon Florida 2018 | CSI: Forensic SEO AuditsPubcon Florida 2018 | CSI: Forensic SEO Audits
Pubcon Florida 2018 | CSI: Forensic SEO Audits
Renee Girard
 
Myths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven DevelopmentMyths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven Development
Pankaj Nakhat
 
QA Challange Accepted - How and why we should use Behat?
QA Challange Accepted - How and why we should use Behat?QA Challange Accepted - How and why we should use Behat?
QA Challange Accepted - How and why we should use Behat?
Bozhidar Boshnakov
 
Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD
Gervais Johnson, Advisor
 
Lavanya-Resume 10+
Lavanya-Resume 10+Lavanya-Resume 10+
Lavanya-Resume 10+
Lavanya Sri
 

Ähnlich wie Agile software requirements management with Impact Mapping and BDD (20)

BDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User StoriesBDD Selenium for Agile Teams - User Stories
BDD Selenium for Agile Teams - User Stories
 
Expo qa from user stories to automated acceptance tests with bdd
Expo qa   from user stories to automated acceptance tests with bddExpo qa   from user stories to automated acceptance tests with bdd
Expo qa from user stories to automated acceptance tests with bdd
 
A step-by-step guide to behavior-driven development
A step-by-step guide to behavior-driven developmentA step-by-step guide to behavior-driven development
A step-by-step guide to behavior-driven development
 
Technical Debt.pptx
Technical Debt.pptxTechnical Debt.pptx
Technical Debt.pptx
 
German Testing Day 2015 - How behavior-driven development fuses developers an...
German Testing Day 2015 - How behavior-driven development fuses developers an...German Testing Day 2015 - How behavior-driven development fuses developers an...
German Testing Day 2015 - How behavior-driven development fuses developers an...
 
Behavioral tests with behat for qa
Behavioral tests with behat for qaBehavioral tests with behat for qa
Behavioral tests with behat for qa
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5
 
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo RiolWebinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
 
prod-dev-management.pptx
prod-dev-management.pptxprod-dev-management.pptx
prod-dev-management.pptx
 
Ranendra_new_CV
Ranendra_new_CVRanendra_new_CV
Ranendra_new_CV
 
Ranendra_new_CV
Ranendra_new_CVRanendra_new_CV
Ranendra_new_CV
 
Testing stage. being ahead business with cucumber
Testing stage. being ahead business with cucumberTesting stage. being ahead business with cucumber
Testing stage. being ahead business with cucumber
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for Testers
 
Cloud Developer Resume Jhon-Arzu-Gil
Cloud Developer Resume Jhon-Arzu-Gil Cloud Developer Resume Jhon-Arzu-Gil
Cloud Developer Resume Jhon-Arzu-Gil
 
Pubcon Florida 2018 | CSI: Forensic SEO Audits
Pubcon Florida 2018 | CSI: Forensic SEO AuditsPubcon Florida 2018 | CSI: Forensic SEO Audits
Pubcon Florida 2018 | CSI: Forensic SEO Audits
 
Myths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven DevelopmentMyths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven Development
 
QA Challange Accepted - How and why we should use Behat?
QA Challange Accepted - How and why we should use Behat?QA Challange Accepted - How and why we should use Behat?
QA Challange Accepted - How and why we should use Behat?
 
Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD
 
Lavanya-Resume 10+
Lavanya-Resume 10+Lavanya-Resume 10+
Lavanya-Resume 10+
 

Mehr von Fred Heath

Nim programming language - DevFest Berlin 2019
Nim programming language -  DevFest Berlin 2019Nim programming language -  DevFest Berlin 2019
Nim programming language - DevFest Berlin 2019
Fred Heath
 
USP Estimation - SwanseaCon 2016
USP Estimation - SwanseaCon 2016USP Estimation - SwanseaCon 2016
USP Estimation - SwanseaCon 2016
Fred Heath
 
Introduction to Nim
Introduction to NimIntroduction to Nim
Introduction to Nim
Fred Heath
 
Port80: the uncertainty principle
Port80: the uncertainty principlePort80: the uncertainty principle
Port80: the uncertainty principle
Fred Heath
 
Agile diff usp
Agile diff uspAgile diff usp
Agile diff usp
Fred Heath
 
Design Patterns the Ruby way - ConFoo 2015
Design Patterns the Ruby way - ConFoo 2015Design Patterns the Ruby way - ConFoo 2015
Design Patterns the Ruby way - ConFoo 2015
Fred Heath
 
User Story Point estimation method at ConFoo 2015
User Story Point estimation method at ConFoo 2015User Story Point estimation method at ConFoo 2015
User Story Point estimation method at ConFoo 2015
Fred Heath
 

Mehr von Fred Heath (7)

Nim programming language - DevFest Berlin 2019
Nim programming language -  DevFest Berlin 2019Nim programming language -  DevFest Berlin 2019
Nim programming language - DevFest Berlin 2019
 
USP Estimation - SwanseaCon 2016
USP Estimation - SwanseaCon 2016USP Estimation - SwanseaCon 2016
USP Estimation - SwanseaCon 2016
 
Introduction to Nim
Introduction to NimIntroduction to Nim
Introduction to Nim
 
Port80: the uncertainty principle
Port80: the uncertainty principlePort80: the uncertainty principle
Port80: the uncertainty principle
 
Agile diff usp
Agile diff uspAgile diff usp
Agile diff usp
 
Design Patterns the Ruby way - ConFoo 2015
Design Patterns the Ruby way - ConFoo 2015Design Patterns the Ruby way - ConFoo 2015
Design Patterns the Ruby way - ConFoo 2015
 
User Story Point estimation method at ConFoo 2015
User Story Point estimation method at ConFoo 2015User Story Point estimation method at ConFoo 2015
User Story Point estimation method at ConFoo 2015
 

Kürzlich hochgeladen

一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
Ayan Halder
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Envertis Software Solutions
 

Kürzlich hochgeladen (20)

一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
 

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
  • 13.
  • 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
  • 20.
  • 21. “ User Stories are just descriptive devices for Requirements Domain Entities. Nothing more, nothing less.”
  • 23.
  • 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)
  • 30.
  • 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
  • 45.
  • 46.