SlideShare a Scribd company logo
1 of 47
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

More Related Content

What's hot

Caching Data in OutSystems: A Tale of Gains Without Pain
Caching Data in OutSystems: A Tale of Gains Without PainCaching Data in OutSystems: A Tale of Gains Without Pain
Caching Data in OutSystems: A Tale of Gains Without PainCatarinaPereira64715
 
Composable Software Architecture with Spring
Composable Software Architecture with SpringComposable Software Architecture with Spring
Composable Software Architecture with SpringSam Brannen
 
The Evolving Role of the Business Analyst
The Evolving Role of the Business AnalystThe Evolving Role of the Business Analyst
The Evolving Role of the Business AnalystTracy Cook
 
Lean Change Management with JIRA Service Desk
Lean Change Management with JIRA Service DeskLean Change Management with JIRA Service Desk
Lean Change Management with JIRA Service DeskAtlassian
 
Agile Architecture in a Modern Cloud-Native Ecosystem
Agile Architecture in a Modern Cloud-Native EcosystemAgile Architecture in a Modern Cloud-Native Ecosystem
Agile Architecture in a Modern Cloud-Native EcosystemCloud Study Network
 
Azure API Management
Azure API ManagementAzure API Management
Azure API ManagementDaniel Toomey
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAraf Karsh Hamid
 
API Management Solution Powerpoint Presentation Slides
API Management Solution Powerpoint Presentation SlidesAPI Management Solution Powerpoint Presentation Slides
API Management Solution Powerpoint Presentation SlidesSlideTeam
 
API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)Bishoy Demian
 
Hexagonal Architecture
Hexagonal ArchitectureHexagonal Architecture
Hexagonal ArchitectureMarcelo Cure
 
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...Edureka!
 
Architecting SaaS: Doing It Right the First Time
Architecting SaaS: Doing It Right the First TimeArchitecting SaaS: Doing It Right the First Time
Architecting SaaS: Doing It Right the First TimeSerhiy (Serge) Haziyev
 
What is SonarQube in DevOps.docx
What is SonarQube in DevOps.docxWhat is SonarQube in DevOps.docx
What is SonarQube in DevOps.docxDevOps University
 
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)WSO2
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecturetyrantbrian
 
Designing and building a micro-services architecture. Stairway to heaven or a...
Designing and building a micro-services architecture. Stairway to heaven or a...Designing and building a micro-services architecture. Stairway to heaven or a...
Designing and building a micro-services architecture. Stairway to heaven or a...Sander Hoogendoorn
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesAraf Karsh Hamid
 

What's hot (20)

Caching Data in OutSystems: A Tale of Gains Without Pain
Caching Data in OutSystems: A Tale of Gains Without PainCaching Data in OutSystems: A Tale of Gains Without Pain
Caching Data in OutSystems: A Tale of Gains Without Pain
 
Composable Software Architecture with Spring
Composable Software Architecture with SpringComposable Software Architecture with Spring
Composable Software Architecture with Spring
 
The Evolving Role of the Business Analyst
The Evolving Role of the Business AnalystThe Evolving Role of the Business Analyst
The Evolving Role of the Business Analyst
 
Lean Change Management with JIRA Service Desk
Lean Change Management with JIRA Service DeskLean Change Management with JIRA Service Desk
Lean Change Management with JIRA Service Desk
 
Agile Architecture in a Modern Cloud-Native Ecosystem
Agile Architecture in a Modern Cloud-Native EcosystemAgile Architecture in a Modern Cloud-Native Ecosystem
Agile Architecture in a Modern Cloud-Native Ecosystem
 
What is in your Business Analysis Toolkit?
What is in your Business Analysis Toolkit?What is in your Business Analysis Toolkit?
What is in your Business Analysis Toolkit?
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven Design
 
API Management Solution Powerpoint Presentation Slides
API Management Solution Powerpoint Presentation SlidesAPI Management Solution Powerpoint Presentation Slides
API Management Solution Powerpoint Presentation Slides
 
API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)
 
Hexagonal Architecture
Hexagonal ArchitectureHexagonal Architecture
Hexagonal Architecture
 
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
 
Architecting SaaS: Doing It Right the First Time
Architecting SaaS: Doing It Right the First TimeArchitecting SaaS: Doing It Right the First Time
Architecting SaaS: Doing It Right the First Time
 
Data and AI reference architecture
Data and AI reference architectureData and AI reference architecture
Data and AI reference architecture
 
Business Analysis 101
Business Analysis 101Business Analysis 101
Business Analysis 101
 
What is SonarQube in DevOps.docx
What is SonarQube in DevOps.docxWhat is SonarQube in DevOps.docx
What is SonarQube in DevOps.docx
 
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Designing and building a micro-services architecture. Stairway to heaven or a...
Designing and building a micro-services architecture. Stairway to heaven or a...Designing and building a micro-services architecture. Stairway to heaven or a...
Designing and building a micro-services architecture. Stairway to heaven or a...
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 

Similar to Agile software requirements management with Impact Mapping and BDD

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 UXJohn Patterson
 
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 StoriesSauce 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 bddEduardo 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 developmentvaluebound
 
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 qaSergey 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.5SSW
 
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 RiolatSistemas
 
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 cucumberAlex Mikitenko
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven DevelopmentAdam 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 TestersJohn Ferguson Smart Limited
 
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 AuditsRenee 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 DevelopmentPankaj 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
 

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

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
 
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
 

More from Fred Heath

Nim programming language - DevFest Berlin 2019
Nim programming language -  DevFest Berlin 2019Nim programming language -  DevFest Berlin 2019
Nim programming language - DevFest Berlin 2019Fred Heath
 
USP Estimation - SwanseaCon 2016
USP Estimation - SwanseaCon 2016USP Estimation - SwanseaCon 2016
USP Estimation - SwanseaCon 2016Fred Heath
 
Introduction to Nim
Introduction to NimIntroduction to Nim
Introduction to NimFred Heath
 
Port80: the uncertainty principle
Port80: the uncertainty principlePort80: the uncertainty principle
Port80: the uncertainty principleFred Heath
 
Agile diff usp
Agile diff uspAgile diff usp
Agile diff uspFred 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 2015Fred 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 2015Fred Heath
 

More from 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
 

Recently uploaded

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 

Recently uploaded (20)

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 

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.