SlideShare a Scribd company logo
Driven Development - Closing the Loop on Scrum
Who Am I?
Developer/Evangelist at LaunchKey
Founder/Co-Organizer of Las Vegas PHP UG
Co-Organizer of Las Vegas Developer UG
#vegastech enthusiast
Overview
Why Driven Development?
Business goals are a moving target and speed to
market pressures are immense
Development iteration cycles cannot degrade as a
products feature set grows and evolves
Documentation must be accurate and extensive to
prevent tribal knowledge hindering growth
Quality is a product differentiator
The Mashup
Lean software development at its core
Scrum for requirements gathering and project
management
Behavior-driven development for quality assurance,
acceptance testing, and documentation
Domain-driven design for code style and quality
The Result
Build only what is necessary
Deliver the highest possible quality
Deliver quickly and regularly
Empower the team
Empower change
The Drivers
Lean/Scrum keeps everyone focused
Ubiquitous language gets everyone speaking the same
language
Real language tests ensure business requirements are
met today and tomorrow
Test driven development keeps quality high
Domain driven development makes code easier to
refactor
Evolution of a Feature
Business Owner
Brings a very general idea as a requirement.
Hopefully they have an idea of business priority and
impact.
This general idea is represented as a product
backlog item
From: Big Boss
To: Project Manager
Proj,
We need a TODO list ASAP! This is top priority. Could
mean billions in revenue. Get me an estimate
tomorrow!
Big
Scrum Master/BSA
Works with the business owner to flesh out
requirements.
Requirements are very general and generic. They
are only used to determine scope and assist with
sizing during sprint planning.
TODO list
In order to keep on track with tasks, as a user, I can manage
my tasks in a TODO list. This will be accomplished by adding
tasks to a task list and being able to update the completion
status of those tasks.
User Experience Designer
Defines the actual user experience
Takes the very generic business requirements and
creates very specific scenarios for each feature
Scenarios are analogous to use cases
Feature: Task List
As an application user, in order to see my tasks, I will be
presented a task list.
Scenario: No pre-existing tasks
As a user with no existing tasks, I will see an input field with a
placeholder value of “What needs to be done”. The footer will
not be visible.
Scenario: Pre-existing tasks
As a user with pre-existing tasks, I will see the task input fields
and below it a list of tasks in the order in which they were
entered.
Test Automation
Takes the User Experience requirements and builds
“feature” files utilizing Gherkin, the Cucumber DSL
for writing test scenarios
Scenarios will be standardized to promote ubiquitous
language conformity and step definition re-use
Missing step definitions identified
Feature: Task List
As an application user, in order to see my tasks, I will be
presented a task list.
Background:
Given I am on the homepage
Scenario: Pre-existing tasks shows list and add input
Given the “Do first” task exists
And the “Do next” task exists
Then the “Do first” task is the first item in the task list
And the “Do next” task is the second item in the task list
Feature/Scenario
Acceptance
The Feature files with their scenarios act as
acceptance criteria for development
Once the tests pass, the story is considered
complete and ready for demo to the product owner.
Any features/scenarios that cannot be immediately
tested in automation are tagged as such but are
added regardless.
Code Example
100% JavaScript
Node.js
Express.js
Cucumber.js
Available on GitHub at
https://github.com/aenglander/driven-development-
example
https://www.slideshare.net/AdamEnglander/driven-
development
https://github.com/aenglander/driven-development-
example
@adam_englander
#launchkey on freenode.net
#vegastech on freenode.net
adam@launchkey.com
LV Dev, LV PHP, VegasJS, LV Python, etc.
PyCon 2015 in Montreal

More Related Content

What's hot (20)

PDF
LinkedIn Cover Letter
Joe Helfrich
 
PPTX
Cucumber presenation
Oussama BEN WAFI
 
PPT
What is Objective-j
Joe Terry
 
PDF
Preso #5 mvp2 data presentation
John Murphy
 
PPTX
Engineering dictionary
Mofaqkhayrul Islam
 
PPTX
What Is Cucumber?
QATestLab
 
PDF
Frontend Development vs Backend Development | Detailed Comparison
Mariya James
 
PDF
Asj session-4
SahilMore34
 
PPTX
Slide1 basics
A Subbiah
 
PDF
Front End Developer Resume | Edureka
Edureka!
 
PPTX
Jenkins pipelines
kraqa
 
PPTX
Behavioral tests with behat for qa
Sergey Bielanovskiy
 
PDF
Technologies
MWBECKERMEDIA
 
PPTX
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
POSSCON
 
PDF
Final year internship presentation
Nischal0101
 
PDF
Progressive Web Application by Citytech
Ritwik Das
 
PDF
Code Camp Applying Modern Software Development Techniques To Ui Testing
ChristopherGTaylor
 
PDF
Intelligent Testing with mabl
mabl
 
PDF
How much would it cost to hire developers in india
Your Dedicated Developers
 
PPTX
Software Quality Assurance: A mind game between you and devil
Nahian Al Hossain Basunia
 
LinkedIn Cover Letter
Joe Helfrich
 
Cucumber presenation
Oussama BEN WAFI
 
What is Objective-j
Joe Terry
 
Preso #5 mvp2 data presentation
John Murphy
 
Engineering dictionary
Mofaqkhayrul Islam
 
What Is Cucumber?
QATestLab
 
Frontend Development vs Backend Development | Detailed Comparison
Mariya James
 
Asj session-4
SahilMore34
 
Slide1 basics
A Subbiah
 
Front End Developer Resume | Edureka
Edureka!
 
Jenkins pipelines
kraqa
 
Behavioral tests with behat for qa
Sergey Bielanovskiy
 
Technologies
MWBECKERMEDIA
 
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
POSSCON
 
Final year internship presentation
Nischal0101
 
Progressive Web Application by Citytech
Ritwik Das
 
Code Camp Applying Modern Software Development Techniques To Ui Testing
ChristopherGTaylor
 
Intelligent Testing with mabl
mabl
 
How much would it cost to hire developers in india
Your Dedicated Developers
 
Software Quality Assurance: A mind game between you and devil
Nahian Al Hossain Basunia
 

Viewers also liked (20)

PDF
Sofware Fora de Séria 2016 - Implementando realtime no frontend
William Seiti Mizuta
 
PDF
Package and distribute your Python code
Sanket Saurav
 
PPTX
S.O.L.I.D. - ПаĐČДл ĐšĐŸŃ…Đ°Đœ, Python Meetup 26.09.2014
Python Meetup
 
PDF
Como DDD e Strategic Design estĂŁo nos ajudando a modernizar um Legado
Luiz Costa
 
PDF
ZCA: A component architecture for Python
Timo Stollenwerk
 
PDF
Organise a Code Dojo!
Nicholas Tollervey
 
PPTX
Hexagonal Design in Django
mvschaik
 
PDF
Python SOLID
Eduardo Ferro Aldama
 
PDF
Postgres performance for humans
Craig Kerstiens
 
PDF
Moving from Django Apps to Services
Craig Kerstiens
 
PDF
Introduction to hexagonal architecture
Manel Sellés
 
PDF
DDD session BrownBagLunch (FR)
Cyrille Martraire
 
PDF
Developing Software As A Service App with Python & Django
Allan Mangune
 
PDF
Code & Cannoli - Domain Driven Design
Frank Levering
 
PDF
Domain-driven design
Knoldus Inc.
 
PPTX
Domain Driven Design
Ryan Riley
 
PDF
Domain Driven Design and Hexagonal Architecture with Rails
Declan Whelan
 
PDF
Legacy Code: Evolve or Rewrite?
Cyrille Martraire
 
PDF
Refactoring for Domain Driven Design
David Berliner
 
PDF
Why Domain-Driven Design Matters
Mathias Verraes
 
Sofware Fora de Séria 2016 - Implementando realtime no frontend
William Seiti Mizuta
 
Package and distribute your Python code
Sanket Saurav
 
S.O.L.I.D. - ПаĐČДл ĐšĐŸŃ…Đ°Đœ, Python Meetup 26.09.2014
Python Meetup
 
Como DDD e Strategic Design estĂŁo nos ajudando a modernizar um Legado
Luiz Costa
 
ZCA: A component architecture for Python
Timo Stollenwerk
 
Organise a Code Dojo!
Nicholas Tollervey
 
Hexagonal Design in Django
mvschaik
 
Python SOLID
Eduardo Ferro Aldama
 
Postgres performance for humans
Craig Kerstiens
 
Moving from Django Apps to Services
Craig Kerstiens
 
Introduction to hexagonal architecture
Manel Sellés
 
DDD session BrownBagLunch (FR)
Cyrille Martraire
 
Developing Software As A Service App with Python & Django
Allan Mangune
 
Code & Cannoli - Domain Driven Design
Frank Levering
 
Domain-driven design
Knoldus Inc.
 
Domain Driven Design
Ryan Riley
 
Domain Driven Design and Hexagonal Architecture with Rails
Declan Whelan
 
Legacy Code: Evolve or Rewrite?
Cyrille Martraire
 
Refactoring for Domain Driven Design
David Berliner
 
Why Domain-Driven Design Matters
Mathias Verraes
 
Ad

Similar to Driven Development - Closing the Loop on Scrum (20)

PPTX
Behaviour Driven Development
Andy Kelk
 
PPTX
Behat - human-readable automated testing
nyccamp
 
PDF
Full Stack Development In Mohali.pdf
ExcellenceAcademy16
 
DOC
GPavlioti MResume
Grygoriy Pavlioti
 
PPTX
CucumberSeleniumWD
Vikas Sarin
 
PDF
HP's ALM11 Guides Companies Through Shifting Landscape of Application Develop...
Dana Gardner
 
PPTX
How to Deliver the Right Software (Specification by example)
Asier Barrenetxea
 
DOCX
RAJATBATHWAL
Rajat Bathwal
 
DOCX
MAKSUD KHONDOKER most recent
MAKSUD KHONDOKER
 
PPTX
Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile
KenAtIndeed
 
PDF
Slides from "Taking an Holistic Approach to Product Quality"
Peter Marshall
 
PPT
Portal Deployment Best Practices | IBM Portal Excellence Conference 2009
Perficient, Inc.
 
DOCX
Maksud khondoker manual testing (updated)
MAKSUD KHONDOKER
 
PDF
cucumber harpal.pdf
VennelaVasupilli
 
PPTX
Progressive Web Applications - The Next Gen Web Technologies
GeekNightHyderabad
 
PPTX
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
TEST Huddle
 
DOCX
Kavithe_Res.doc
kavitha sravanthi
 
DOCX
Anupam_Resume
Anupam Jha
 
PPTX
Agile driven development main principles
Tanya Epstein
 
PPT
How to run an Enterprise PHP Shop
Jim Plush
 
Behaviour Driven Development
Andy Kelk
 
Behat - human-readable automated testing
nyccamp
 
Full Stack Development In Mohali.pdf
ExcellenceAcademy16
 
GPavlioti MResume
Grygoriy Pavlioti
 
CucumberSeleniumWD
Vikas Sarin
 
HP's ALM11 Guides Companies Through Shifting Landscape of Application Develop...
Dana Gardner
 
How to Deliver the Right Software (Specification by example)
Asier Barrenetxea
 
RAJATBATHWAL
Rajat Bathwal
 
MAKSUD KHONDOKER most recent
MAKSUD KHONDOKER
 
Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile
KenAtIndeed
 
Slides from "Taking an Holistic Approach to Product Quality"
Peter Marshall
 
Portal Deployment Best Practices | IBM Portal Excellence Conference 2009
Perficient, Inc.
 
Maksud khondoker manual testing (updated)
MAKSUD KHONDOKER
 
cucumber harpal.pdf
VennelaVasupilli
 
Progressive Web Applications - The Next Gen Web Technologies
GeekNightHyderabad
 
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
TEST Huddle
 
Kavithe_Res.doc
kavitha sravanthi
 
Anupam_Resume
Anupam Jha
 
Agile driven development main principles
Tanya Epstein
 
How to run an Enterprise PHP Shop
Jim Plush
 
Ad

More from Adam Englander (20)

PPTX
Making PHP Smarter - Dutch PHP 2023.pptx
Adam Englander
 
PDF
Practical API Security - PyCon 2019
Adam Englander
 
PDF
Threat Modeling for Dummies
Adam Englander
 
PDF
ZendCon 2018 - Practical API Security
Adam Englander
 
PDF
ZendCon 2018 - Cryptography in Depth
Adam Englander
 
PDF
Threat Modeling for Dummies - Cascadia PHP 2018
Adam Englander
 
PDF
Dutch PHP 2018 - Cryptography for Beginners
Adam Englander
 
PDF
php[tek] 2108 - Cryptography Advances in PHP 7.2
Adam Englander
 
PDF
php[tek] 2018 - Biometrics, fantastic failure point of the future
Adam Englander
 
PDF
Biometrics: Sexy, Secure and... Stupid - RSAC 2018
Adam Englander
 
PPTX
Practical API Security - PyCon 2018
Adam Englander
 
PDF
Practical API Security - Midwest PHP 2018
Adam Englander
 
PDF
Cryptography for Beginners - Midwest PHP 2018
Adam Englander
 
PDF
Cryptography for Beginners - Sunshine PHP 2018
Adam Englander
 
PDF
ConFoo Vancouver 2017 - Biometrics: Fantastic Failure Point of the Future
Adam Englander
 
PDF
Con Foo 2017 - Don't Loose Sleep - Secure Your REST
Adam Englander
 
PDF
ZendCon 2017 - Cryptography for Beginners
Adam Englander
 
PDF
ZendCon 2017: The Red Team is Coming
Adam Englander
 
PDF
ZendCon 2017 - Build a Bot Workshop - Async Primer
Adam Englander
 
PDF
Symfony Live San Franciso 2017 - BDD API Development with Symfony and Behat
Adam Englander
 
Making PHP Smarter - Dutch PHP 2023.pptx
Adam Englander
 
Practical API Security - PyCon 2019
Adam Englander
 
Threat Modeling for Dummies
Adam Englander
 
ZendCon 2018 - Practical API Security
Adam Englander
 
ZendCon 2018 - Cryptography in Depth
Adam Englander
 
Threat Modeling for Dummies - Cascadia PHP 2018
Adam Englander
 
Dutch PHP 2018 - Cryptography for Beginners
Adam Englander
 
php[tek] 2108 - Cryptography Advances in PHP 7.2
Adam Englander
 
php[tek] 2018 - Biometrics, fantastic failure point of the future
Adam Englander
 
Biometrics: Sexy, Secure and... Stupid - RSAC 2018
Adam Englander
 
Practical API Security - PyCon 2018
Adam Englander
 
Practical API Security - Midwest PHP 2018
Adam Englander
 
Cryptography for Beginners - Midwest PHP 2018
Adam Englander
 
Cryptography for Beginners - Sunshine PHP 2018
Adam Englander
 
ConFoo Vancouver 2017 - Biometrics: Fantastic Failure Point of the Future
Adam Englander
 
Con Foo 2017 - Don't Loose Sleep - Secure Your REST
Adam Englander
 
ZendCon 2017 - Cryptography for Beginners
Adam Englander
 
ZendCon 2017: The Red Team is Coming
Adam Englander
 
ZendCon 2017 - Build a Bot Workshop - Async Primer
Adam Englander
 
Symfony Live San Franciso 2017 - BDD API Development with Symfony and Behat
Adam Englander
 

Recently uploaded (20)

PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Per Axbom: The spectacular lies of maps
Nexer Digital
 
PDF
introduction to computer hardware and sofeware
chauhanshraddha2007
 
PDF
Market Insight : ETH Dominance Returns
CIFDAQ
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PPTX
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PPTX
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
PDF
Researching The Best Chat SDK Providers in 2025
Ray Fields
 
PDF
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Per Axbom: The spectacular lies of maps
Nexer Digital
 
introduction to computer hardware and sofeware
chauhanshraddha2007
 
Market Insight : ETH Dominance Returns
CIFDAQ
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
The Future of Artificial Intelligence (AI)
Mukul
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
Researching The Best Chat SDK Providers in 2025
Ray Fields
 
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 

Driven Development - Closing the Loop on Scrum

  • 2. Who Am I? Developer/Evangelist at LaunchKey Founder/Co-Organizer of Las Vegas PHP UG Co-Organizer of Las Vegas Developer UG #vegastech enthusiast
  • 4. Why Driven Development? Business goals are a moving target and speed to market pressures are immense Development iteration cycles cannot degrade as a products feature set grows and evolves Documentation must be accurate and extensive to prevent tribal knowledge hindering growth Quality is a product differentiator
  • 5. The Mashup Lean software development at its core Scrum for requirements gathering and project management Behavior-driven development for quality assurance, acceptance testing, and documentation Domain-driven design for code style and quality
  • 6. The Result Build only what is necessary Deliver the highest possible quality Deliver quickly and regularly Empower the team Empower change
  • 7. The Drivers Lean/Scrum keeps everyone focused Ubiquitous language gets everyone speaking the same language Real language tests ensure business requirements are met today and tomorrow Test driven development keeps quality high Domain driven development makes code easier to refactor
  • 8. Evolution of a Feature
  • 9. Business Owner Brings a very general idea as a requirement. Hopefully they have an idea of business priority and impact. This general idea is represented as a product backlog item
  • 10. From: Big Boss To: Project Manager Proj, We need a TODO list ASAP! This is top priority. Could mean billions in revenue. Get me an estimate tomorrow! Big
  • 11. Scrum Master/BSA Works with the business owner to flesh out requirements. Requirements are very general and generic. They are only used to determine scope and assist with sizing during sprint planning.
  • 12. TODO list In order to keep on track with tasks, as a user, I can manage my tasks in a TODO list. This will be accomplished by adding tasks to a task list and being able to update the completion status of those tasks.
  • 13. User Experience Designer Defines the actual user experience Takes the very generic business requirements and creates very specific scenarios for each feature Scenarios are analogous to use cases
  • 14. Feature: Task List As an application user, in order to see my tasks, I will be presented a task list. Scenario: No pre-existing tasks As a user with no existing tasks, I will see an input field with a placeholder value of “What needs to be done”. The footer will not be visible. Scenario: Pre-existing tasks As a user with pre-existing tasks, I will see the task input fields and below it a list of tasks in the order in which they were entered.
  • 15. Test Automation Takes the User Experience requirements and builds “feature” files utilizing Gherkin, the Cucumber DSL for writing test scenarios Scenarios will be standardized to promote ubiquitous language conformity and step definition re-use Missing step definitions identified
  • 16. Feature: Task List As an application user, in order to see my tasks, I will be presented a task list. Background: Given I am on the homepage Scenario: Pre-existing tasks shows list and add input Given the “Do first” task exists And the “Do next” task exists Then the “Do first” task is the first item in the task list And the “Do next” task is the second item in the task list
  • 17. Feature/Scenario Acceptance The Feature files with their scenarios act as acceptance criteria for development Once the tests pass, the story is considered complete and ready for demo to the product owner. Any features/scenarios that cannot be immediately tested in automation are tagged as such but are added regardless.
  • 18. Code Example 100% JavaScript Node.js Express.js Cucumber.js Available on GitHub at https://github.com/aenglander/driven-development- example