19

Driven Development - Closing the Loop on Scrum

Embed Size (px)

Citation preview

Page 1: Driven Development - Closing the Loop on Scrum
Page 2: 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

Page 3: Driven Development - Closing the Loop on Scrum

Overview

Page 4: Driven Development - Closing the Loop on Scrum

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

Page 5: Driven Development - Closing the Loop on Scrum

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

Page 6: Driven Development - Closing the Loop on Scrum

The Result

Build only what is necessary

Deliver the highest possible quality

Deliver quickly and regularly

Empower the team

Empower change

Page 7: Driven Development - Closing the Loop on Scrum

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

Page 8: Driven Development - Closing the Loop on Scrum

Evolution of a Feature

Page 9: Driven Development - Closing the Loop on Scrum

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

Page 10: Driven Development - Closing the Loop on Scrum

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

Page 11: Driven Development - Closing the Loop on Scrum

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.

Page 12: Driven Development - Closing the Loop on Scrum

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.

Page 13: Driven Development - Closing the Loop on Scrum

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

Page 14: Driven Development - Closing the Loop on Scrum

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.

Page 15: Driven Development - Closing the Loop on Scrum

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

Page 16: Driven Development - Closing the Loop on Scrum

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

Page 17: Driven Development - Closing the Loop on Scrum

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.

Page 18: Driven Development - Closing the Loop on Scrum

Code Example

100% JavaScript

Node.js

Express.js

Cucumber.js

Available on GitHub at

https://github.com/aenglander/driven-development-

example

Page 19: Driven Development - Closing the Loop on Scrum

https://www.slideshare.net/AdamEnglander/driven-

development

https://github.com/aenglander/driven-development-

example

@adam_englander

#launchkey on freenode.net

#vegastech on freenode.net

[email protected]

LV Dev, LV PHP, VegasJS, LV Python, etc.

PyCon 2015 in Montreal