SlideShare una empresa de Scribd logo
1 de 44
Descargar para leer sin conexión
CHRISTIAN HASSA
CH@TECHTALK.AT
@CHR99HA
ALM Summit Vienna, 30th of November 2012
Agile requirements management
End-to-End: from project goals to
automated acceptance tests
TechTalk at a glance
• Agile software development
• Consulting and Delivery (Nearshoring)
• Locations: Zürich, Vienna, Budapest
• ~50 TechTalkers
• Founded: 1993
TechTalk office, Vienna/Austria
3
How do we specify
requirements?
4
• Describe user needs
• Describe system features
• Unit of planning
• Reminder for a discussion
• Mechanism to defer a discussion
The purpose of user stories …
5
Impact Mapping
Story Mapping
Specification-By-Example
Building software that matters
Why?
How?
Code
Acceptance
Criterion
Epic
Deliverable, Outcome
Goals, Impacts
Easier to define upfront Harder to define upfront
Feature
User Story
Example
6
Impact Mapping
From: Gojko Adzic: www.impactmapping.org
Based on:
Ingrid Domingues,
Mijo Balic
Effect Managing IT
“Impact Mapping helps us plan better!
It is collaborative, visual and fast.”
7
Impact Map structure
Goal
Actors
Impacts
Deliverables
WHY?
WHO?
HOW?
WHAT?
Sell 10.000 books within the first 6 months
after launching the business.
Shopper for mainstream books,
Shopper for rarely available books,
Agent preparing shipments, …
Shopper for mainstream books:
get books faster/more convenient
find popular books easily
Shopper for mainstream books:
get books faster/more convenient:
order books online
semi-automated distribution center
8
Example: Impact Map
9
delivering software
that generates
Impact
10
Specification-By-Example
Impact Mapping
Story Mapping
Optimizing and refining scope
Why?
How?
Code
Acceptance
Criterion
Epic
Deliverable, Outcome
Goals, Impacts
Easier to define upfront Harder to define upfront
Feature
User Story
Example
11
Story Maps
• Original concept by Jeff Patton
• Supports iterative product design
• Optimized for desired outcome or
deliverable the system should support
14
Building story maps
Get mainstream book
fast and conveniently
delivered
Find book
I want
Collect
books
Complete
order
Wait for
book
Receive
book
time
browse
best
sellers
put into
basket
enter
address
receive
delivery
slip
receive
delivery
notificat.
pay with
credit
card
search
book by
title
create
wish list
inquiry
order
status
desired outcome
or deliverable
user
activities
system
features
necessity
15
Walking
skeleton
Enabling build – measure - learn
Find book
I want
Collect
books
Complete
order
Wait for
book
Receive
book
time
browse
best
sellers
enter
address
receive
delivery
slip
pay with
credit
card
search
book by
title
create
wish list
inquiry
order
status
put into
basket
receive
delivery
notificat.
necessity
manual
workaround
omitted
steps
Get mainstream book
fast and conveniently
delivered
16
Story Map Workshop
Deliverables:
• Accept and confirm candidates
• Electronically publish candidate profiles
• Determine funding committee through electronic voting
• Provide the system as a service to other corporations
17
Slicing Features
18
Story Maps in ALM with TFS
TFS work items in story maps
http://speclog.net
19
Story Map in SpecLog
20
Sprint 1
21
Sprint 2
22
Sprint 3
23
Sprint 4
24
Dropped Scope
25
Added Scope
26
Impact Mapping
Story Mapping
Specification-By-Example
Establishing a shared understanding
Why?
How?
Code
Acceptance
Criterion
Epic
Capability
Impact, Goal
Easier to define upfront Harder to define upfront
Reminder
for a
discussion
Bug
report
Isolated,
formalized
example
Feature
User Story
Example
27
Collecting Acceptance Criteria
“I would try to put a book into the
shopping cart …”
“I would try to remove a book
from the shopping cart…”
“I’d check whether the shopping cart
is empty, when I enter the shop …”
“I would try to add the same book
again to the shopping cart …”
Books can be placed into
shopping cart.
Books can be removed from
shopping cart.
Shopping cart should be empty
when entering the shop.
Adding same book again to
shopping cart should increase
quantity.
As a potential customer
I want to collect books in a shopping cart
So that I can order several books at once.
“Imagine this story is
already implemented:
how would you verify it?”
28
Why
do we need
examples?
29
UI wire frames,
existing UI
rules, key examples
existing artifacts,
samples
Examples for user stories
30
Specification-by-Example
Examples …
• make abstract descriptions
better understandable
However …
• examples are usually not formally
exchanged or documented
Brian Marick
Examples Tests
Requirements
consist of
describe verify
fulfillment of
31
Discussion of acceptance criteria
public void TestInitialOrderDiscount()
{
Customer newCustomer = new Customer();
Order newOrder = new Order(newCustomer);
newOrder.AddBook(
Catalog.Find(“ISBN-0955683610”)
);
Assert.Equals(33.75,
newOrder.Subtotal);
}
Register as “bart_bookworm”
Go to “/catalog/search”
Enter “ISBN-0955683610”
Click “Search”
Click “Add to Cart”
Click “View Cart”
Verify “Subtotal” is “$33.75”
We would like to encourage new users to
buy in our shop.
Therefore we offer 10% discount for their
first order.
Original idea for the illustration: George Dinwiddie
http://blog.gdinwiddie.com
32
… illustrated with formalized examples
Given the user has not ordered yet
When the user adds a book with the price of EUR 37.5
into the shopping cart
Then the shopping cart sub-total is EUR 33.75.
Original idea for the illustration: George Dinwiddie
http://blog.gdinwiddie.com
33
Discover hidden assumptions
Actually, this not quite right:
Books on sale should be excluded.
Original idea for the illustration: George Dinwiddie
http://blog.gdinwiddie.com
34
Collaboration: 3 amigos
“Happy
Path”
Technical
feasability
Exceptions,
border cases
Original idea for the illustration: George Dinwiddie
http://blog.gdinwiddie.com
35
Abstract acceptance criteria
As a shop visitor
I want to collect books in my shopping basket
so that I can purchase multiple books at once.
Books can be added to the shopping basket
Books can be removed from the shopping basket
Shopping basket is initially empty
The same book can be added multiple times to the shopping
basket
36
Examples for acceptance criteria
As a shop visitor
I want to collect books in my shopping basket
so that I can purchase multiple books at once.
Books can be added to the shopping basket
Given my shopping basket is empty
When I add the book “Harry Potter” to my shopping basket
Then my shopping basket should contain 1 copy of “Harry Potter”
37
As a shop visitor
I want to collect books in my shopping basket
so that I can purchase multiple books at once.
Books can be added to the shopping basket
Examples for acceptance criteria
When I add the book “Harry Potter” to my shopping basket
Then my shopping basket should contain 2 copies of “Harry Potter”
The same book can be added multiple times to the shopping basket
Given my shopping basket contains 1 copy of “Harry Potter”
38
The same book can be added multiple times to the shopping basket
Structure of examples
Given my shopping basket contains 1 copy of “Harry Potter”
When I add the book “Harry Potter” to my shopping basket
Then my shopping basket should contain 2 copies of “Harry Potter”
Title: Describes intention/abstract acceptance criterion
Arrange: Context, initial state of the system
Act: Execution of the feature
Assert: Assertion of observable behaviour
And I should see the warning: “Book already existed in basket”
Triple-A
constraint
“Checks”
Chaining
up steps
39
Purpose of examples
• Shared understanding:
acceptance criteria
• Documentation:
Look-up detail aspects
of the system
• Regression-tests:
Understand what
assumptions have been violated
40
Continuous validation with automation
Given my shopping basket contains 1 copy of “Harry Potter”
When I add the book “Harry Potter” to my shopping basket
Then my shopping basket should contain 2 copies of “Harry Potter”
System
„Step Definitions“ are binding individual steps
to an automatable interface of the application.
Automatable
interface
UI
Automation
Automation does not necessarily have to bind to the UI.
Automatability of system is supported/evolving with development.
41
Executable specification for .NET
http://www.specflow.org
Gherkin automation for .NET
• Visual Studio plugin (VS-Gallery)
• NuGet Package
42
SpecFlow in Visual Studio
43
Living documentation
• Link business readable automation from source code to story maps
• Feed execution results into story maps
44
Books
Gojko Adzic
Impact Mapping
Gojko Adzic
Specification by Example
45
Summary
Impact Maps
• Discover the unknown
• Experiments for impacts towards goal
Story Maps
• Optimize and refine scope
• Prioritize for rapid learning through delivery
Specification-By-Example
• Shared understanding
• Living documentation and continuous validation
Questions
CHRISTIAN HASSA (CH@TECHTALK.AT)
@CHR99HA

Más contenido relacionado

La actualidad más candente

The Product Owner Role
The Product Owner RoleThe Product Owner Role
The Product Owner RoleRoman Pichler
 
"How to write better User Stories" por @jrhuerta
"How to write better User Stories" por @jrhuerta"How to write better User Stories" por @jrhuerta
"How to write better User Stories" por @jrhuertawebcat
 
How to Break the Requirements into User Stories
How to Break the Requirements into User StoriesHow to Break the Requirements into User Stories
How to Break the Requirements into User StoriesShriKant Vashishtha
 
Product Backlog - Refinement and Prioritization Techniques
Product Backlog - Refinement and Prioritization TechniquesProduct Backlog - Refinement and Prioritization Techniques
Product Backlog - Refinement and Prioritization TechniquesVikash Karuna
 
Analysis In Agile: It's More than Just User Stories
Analysis In Agile: It's More than Just User StoriesAnalysis In Agile: It's More than Just User Stories
Analysis In Agile: It's More than Just User StoriesKent McDonald
 
Product Owner & Product Manager Training
Product Owner & Product Manager TrainingProduct Owner & Product Manager Training
Product Owner & Product Manager TrainingRob Betcher
 
User Story Mapping Workshop
User Story Mapping WorkshopUser Story Mapping Workshop
User Story Mapping WorkshopDana Pylayeva
 
Product owner
Product ownerProduct owner
Product ownerMrSnow76
 
Agile2009 Product Manager - Product Owner Dilemma
Agile2009 Product Manager - Product Owner DilemmaAgile2009 Product Manager - Product Owner Dilemma
Agile2009 Product Manager - Product Owner DilemmaEnthiosys Inc
 
Game Product Discovery: Validation & Iteration
Game Product Discovery: Validation & IterationGame Product Discovery: Validation & Iteration
Game Product Discovery: Validation & IterationMartyn Jones
 
Planning, scaling and flowing within your agile organization
Planning, scaling and flowing within your agile organizationPlanning, scaling and flowing within your agile organization
Planning, scaling and flowing within your agile organizationDimitri Ponomareff
 
Story Mapping in a Nutshell
Story Mapping in a NutshellStory Mapping in a Nutshell
Story Mapping in a NutshellVersionOne
 
Agile Transformation
Agile TransformationAgile Transformation
Agile TransformationMax Carlin
 
The 5 Levels Planning in Agile
The 5 Levels Planning in AgileThe 5 Levels Planning in Agile
The 5 Levels Planning in AgileDimitri Ponomareff
 

La actualidad más candente (20)

The Product Owner Role
The Product Owner RoleThe Product Owner Role
The Product Owner Role
 
"How to write better User Stories" por @jrhuerta
"How to write better User Stories" por @jrhuerta"How to write better User Stories" por @jrhuerta
"How to write better User Stories" por @jrhuerta
 
How to Break the Requirements into User Stories
How to Break the Requirements into User StoriesHow to Break the Requirements into User Stories
How to Break the Requirements into User Stories
 
Product Backlog - Refinement and Prioritization Techniques
Product Backlog - Refinement and Prioritization TechniquesProduct Backlog - Refinement and Prioritization Techniques
Product Backlog - Refinement and Prioritization Techniques
 
Analysis In Agile: It's More than Just User Stories
Analysis In Agile: It's More than Just User StoriesAnalysis In Agile: It's More than Just User Stories
Analysis In Agile: It's More than Just User Stories
 
User Story Sizing using Agile Relative Estimation
User Story Sizing using Agile Relative EstimationUser Story Sizing using Agile Relative Estimation
User Story Sizing using Agile Relative Estimation
 
Product Owner & Product Manager Training
Product Owner & Product Manager TrainingProduct Owner & Product Manager Training
Product Owner & Product Manager Training
 
User Story Mapping Workshop
User Story Mapping WorkshopUser Story Mapping Workshop
User Story Mapping Workshop
 
Product owner
Product ownerProduct owner
Product owner
 
Agile Business Value
Agile Business ValueAgile Business Value
Agile Business Value
 
Product Management 101
Product Management 101Product Management 101
Product Management 101
 
User Stories Fundamentals
User Stories FundamentalsUser Stories Fundamentals
User Stories Fundamentals
 
Agile2009 Product Manager - Product Owner Dilemma
Agile2009 Product Manager - Product Owner DilemmaAgile2009 Product Manager - Product Owner Dilemma
Agile2009 Product Manager - Product Owner Dilemma
 
Game Product Discovery: Validation & Iteration
Game Product Discovery: Validation & IterationGame Product Discovery: Validation & Iteration
Game Product Discovery: Validation & Iteration
 
Product Roadmap
Product RoadmapProduct Roadmap
Product Roadmap
 
Planning, scaling and flowing within your agile organization
Planning, scaling and flowing within your agile organizationPlanning, scaling and flowing within your agile organization
Planning, scaling and flowing within your agile organization
 
Story Mapping in a Nutshell
Story Mapping in a NutshellStory Mapping in a Nutshell
Story Mapping in a Nutshell
 
User Stories
User StoriesUser Stories
User Stories
 
Agile Transformation
Agile TransformationAgile Transformation
Agile Transformation
 
The 5 Levels Planning in Agile
The 5 Levels Planning in AgileThe 5 Levels Planning in Agile
The 5 Levels Planning in Agile
 

Similar a Agile requirements management

Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with GherkinChristian Hassa
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with GherkinChristian Hassa
 
From impact to stakeholder examples: Three techniques for end-to-end requirem...
From impact to stakeholder examples: Three techniques for end-to-end requirem...From impact to stakeholder examples: Three techniques for end-to-end requirem...
From impact to stakeholder examples: Three techniques for end-to-end requirem...Christian Hassa
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with GherkinChristian Hassa
 
Tutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with GherkinTutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with GherkinChristian Hassa
 
BDD, Gherkin, Cucumber and why we need it.
BDD, Gherkin, Cucumber and why we need it.BDD, Gherkin, Cucumber and why we need it.
BDD, Gherkin, Cucumber and why we need it.AlexOsadchyy
 
«BDD, Gherkin, Cucumber and why we need it for successful product development»
«BDD, Gherkin, Cucumber and why we need it for successful product development»«BDD, Gherkin, Cucumber and why we need it for successful product development»
«BDD, Gherkin, Cucumber and why we need it for successful product development»Provectus
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with GherkinChristian Hassa
 
Agile Business Analysis
Agile Business AnalysisAgile Business Analysis
Agile Business Analysisdavid_draper
 
Cross mobile testautomation mit Xamarin & SpecFlow
Cross mobile testautomation mit Xamarin & SpecFlowCross mobile testautomation mit Xamarin & SpecFlow
Cross mobile testautomation mit Xamarin & SpecFlowChristian Hassa
 
How 'Open' Changes Product Development
How 'Open' Changes Product DevelopmentHow 'Open' Changes Product Development
How 'Open' Changes Product DevelopmentPhase2
 
Tutorial: Story Maps in practice: enable early feedback to build what really ...
Tutorial: Story Maps in practice: enable early feedback to build what really ...Tutorial: Story Maps in practice: enable early feedback to build what really ...
Tutorial: Story Maps in practice: enable early feedback to build what really ...Christian Hassa
 
Unify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog ServiceUnify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog ServiceMongoDB
 
Digital marketing from a startup founder point of view - Brussels Meetup
Digital marketing from a startup founder point of view - Brussels MeetupDigital marketing from a startup founder point of view - Brussels Meetup
Digital marketing from a startup founder point of view - Brussels MeetupMohsin El Khamlichi
 
Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...
Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...
Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...MongoDB
 
Retail Reference Architecture
Retail Reference ArchitectureRetail Reference Architecture
Retail Reference ArchitectureMongoDB
 
Product Management - much more than coding and designing
Product Management - much more than coding and designingProduct Management - much more than coding and designing
Product Management - much more than coding and designingJusto Hidalgo
 
Prepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDBPrepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDBMongoDB
 

Similar a Agile requirements management (20)

Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with Gherkin
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with Gherkin
 
From impact to stakeholder examples: Three techniques for end-to-end requirem...
From impact to stakeholder examples: Three techniques for end-to-end requirem...From impact to stakeholder examples: Three techniques for end-to-end requirem...
From impact to stakeholder examples: Three techniques for end-to-end requirem...
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with Gherkin
 
Tutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with GherkinTutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with Gherkin
 
BDD, Gherkin, Cucumber and why we need it.
BDD, Gherkin, Cucumber and why we need it.BDD, Gherkin, Cucumber and why we need it.
BDD, Gherkin, Cucumber and why we need it.
 
«BDD, Gherkin, Cucumber and why we need it for successful product development»
«BDD, Gherkin, Cucumber and why we need it for successful product development»«BDD, Gherkin, Cucumber and why we need it for successful product development»
«BDD, Gherkin, Cucumber and why we need it for successful product development»
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with Gherkin
 
Agile Business Analysis
Agile Business AnalysisAgile Business Analysis
Agile Business Analysis
 
Cross mobile testautomation mit Xamarin & SpecFlow
Cross mobile testautomation mit Xamarin & SpecFlowCross mobile testautomation mit Xamarin & SpecFlow
Cross mobile testautomation mit Xamarin & SpecFlow
 
How 'Open' Changes Product Development
How 'Open' Changes Product DevelopmentHow 'Open' Changes Product Development
How 'Open' Changes Product Development
 
Story Maps in practice
Story Maps in practiceStory Maps in practice
Story Maps in practice
 
Tutorial: Story Maps in practice: enable early feedback to build what really ...
Tutorial: Story Maps in practice: enable early feedback to build what really ...Tutorial: Story Maps in practice: enable early feedback to build what really ...
Tutorial: Story Maps in practice: enable early feedback to build what really ...
 
Unify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog ServiceUnify Your Selling Channels in One Product Catalog Service
Unify Your Selling Channels in One Product Catalog Service
 
Digital marketing from a startup founder point of view - Brussels Meetup
Digital marketing from a startup founder point of view - Brussels MeetupDigital marketing from a startup founder point of view - Brussels Meetup
Digital marketing from a startup founder point of view - Brussels Meetup
 
chapter_03_5e.pdf
chapter_03_5e.pdfchapter_03_5e.pdf
chapter_03_5e.pdf
 
Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...
Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...
Retail Reference Architecture Part 1: Flexible, Searchable, Low-Latency Produ...
 
Retail Reference Architecture
Retail Reference ArchitectureRetail Reference Architecture
Retail Reference Architecture
 
Product Management - much more than coding and designing
Product Management - much more than coding and designingProduct Management - much more than coding and designing
Product Management - much more than coding and designing
 
Prepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDBPrepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDB
 

Más de Christian Hassa

Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)
Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)
Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)Christian Hassa
 
Agile Software Development - Cargo Cult or Competitive Advantage?
Agile Software Development - Cargo Cult or Competitive Advantage?Agile Software Development - Cargo Cult or Competitive Advantage?
Agile Software Development - Cargo Cult or Competitive Advantage?Christian Hassa
 
Impact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungImpact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungChristian Hassa
 
Impact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungImpact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungChristian Hassa
 
Scrum Alliance Webinar: Impact Mapping
Scrum Alliance Webinar: Impact MappingScrum Alliance Webinar: Impact Mapping
Scrum Alliance Webinar: Impact MappingChristian Hassa
 
Impact Mapping - delivering what really matters!
Impact Mapping - delivering what really matters!Impact Mapping - delivering what really matters!
Impact Mapping - delivering what really matters!Christian Hassa
 
Impact Mapping - strategische Steuerung für agile Entwicklung
Impact Mapping - strategische Steuerung für agile EntwicklungImpact Mapping - strategische Steuerung für agile Entwicklung
Impact Mapping - strategische Steuerung für agile EntwicklungChristian Hassa
 
Impact Mapping with Innovation Games (TM)
Impact Mapping with Innovation Games (TM)Impact Mapping with Innovation Games (TM)
Impact Mapping with Innovation Games (TM)Christian Hassa
 
Impact Mapping with Innovation Games (R)
Impact Mapping with Innovation Games (R)Impact Mapping with Innovation Games (R)
Impact Mapping with Innovation Games (R)Christian Hassa
 
Impact Maps/Story Maps - liefern was wirklich zählt
Impact Maps/Story Maps - liefern was wirklich zähltImpact Maps/Story Maps - liefern was wirklich zählt
Impact Maps/Story Maps - liefern was wirklich zähltChristian Hassa
 
Impact Maps und Story Maps - liefern was wirklich zählt
Impact Maps und Story Maps - liefern was wirklich zähltImpact Maps und Story Maps - liefern was wirklich zählt
Impact Maps und Story Maps - liefern was wirklich zähltChristian Hassa
 
How I learned to stop worrying and love flexible scope.
How I learned to stop worrying and love flexible scope.How I learned to stop worrying and love flexible scope.
How I learned to stop worrying and love flexible scope.Christian Hassa
 
Story Maps Workshop (German) - DNUG Bern
Story Maps Workshop (German) - DNUG BernStory Maps Workshop (German) - DNUG Bern
Story Maps Workshop (German) - DNUG BernChristian Hassa
 
Live it - or leave it! Returning your investment into Agile
Live it - or leave it! Returning your investment into AgileLive it - or leave it! Returning your investment into Agile
Live it - or leave it! Returning your investment into AgileChristian Hassa
 
How I learned stop worrying and how to love flexible scope.
How I learned stop worrying and how to love flexible scope.How I learned stop worrying and how to love flexible scope.
How I learned stop worrying and how to love flexible scope.Christian Hassa
 
Story Maps - Liefern was wirklich zählt
Story Maps - Liefern was wirklich zähltStory Maps - Liefern was wirklich zählt
Story Maps - Liefern was wirklich zähltChristian Hassa
 
Build-Measure-Learn: Was macht agile Methoden erfolgreich?
Build-Measure-Learn: Was macht agile Methoden erfolgreich?Build-Measure-Learn: Was macht agile Methoden erfolgreich?
Build-Measure-Learn: Was macht agile Methoden erfolgreich?Christian Hassa
 

Más de Christian Hassa (20)

Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)
Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)
Impact Mapping: Guiding Agile Teams with Customer Obsession (workshop)
 
Agile Software Development - Cargo Cult or Competitive Advantage?
Agile Software Development - Cargo Cult or Competitive Advantage?Agile Software Development - Cargo Cult or Competitive Advantage?
Agile Software Development - Cargo Cult or Competitive Advantage?
 
Impact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungImpact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler Entwicklung
 
Impact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler EntwicklungImpact Mapping - strategische Steuerung agiler Entwicklung
Impact Mapping - strategische Steuerung agiler Entwicklung
 
Scrum Alliance Webinar: Impact Mapping
Scrum Alliance Webinar: Impact MappingScrum Alliance Webinar: Impact Mapping
Scrum Alliance Webinar: Impact Mapping
 
Impact Mapping - delivering what really matters!
Impact Mapping - delivering what really matters!Impact Mapping - delivering what really matters!
Impact Mapping - delivering what really matters!
 
Impact Mapping - strategische Steuerung für agile Entwicklung
Impact Mapping - strategische Steuerung für agile EntwicklungImpact Mapping - strategische Steuerung für agile Entwicklung
Impact Mapping - strategische Steuerung für agile Entwicklung
 
Upcoming events 2017
Upcoming events 2017Upcoming events 2017
Upcoming events 2017
 
Impact Mapping with Innovation Games (TM)
Impact Mapping with Innovation Games (TM)Impact Mapping with Innovation Games (TM)
Impact Mapping with Innovation Games (TM)
 
Impact Mapping with Innovation Games (R)
Impact Mapping with Innovation Games (R)Impact Mapping with Innovation Games (R)
Impact Mapping with Innovation Games (R)
 
Impact Map Your Project
Impact Map Your ProjectImpact Map Your Project
Impact Map Your Project
 
Impact Maps/Story Maps - liefern was wirklich zählt
Impact Maps/Story Maps - liefern was wirklich zähltImpact Maps/Story Maps - liefern was wirklich zählt
Impact Maps/Story Maps - liefern was wirklich zählt
 
Agile Requirements
Agile RequirementsAgile Requirements
Agile Requirements
 
Impact Maps und Story Maps - liefern was wirklich zählt
Impact Maps und Story Maps - liefern was wirklich zähltImpact Maps und Story Maps - liefern was wirklich zählt
Impact Maps und Story Maps - liefern was wirklich zählt
 
How I learned to stop worrying and love flexible scope.
How I learned to stop worrying and love flexible scope.How I learned to stop worrying and love flexible scope.
How I learned to stop worrying and love flexible scope.
 
Story Maps Workshop (German) - DNUG Bern
Story Maps Workshop (German) - DNUG BernStory Maps Workshop (German) - DNUG Bern
Story Maps Workshop (German) - DNUG Bern
 
Live it - or leave it! Returning your investment into Agile
Live it - or leave it! Returning your investment into AgileLive it - or leave it! Returning your investment into Agile
Live it - or leave it! Returning your investment into Agile
 
How I learned stop worrying and how to love flexible scope.
How I learned stop worrying and how to love flexible scope.How I learned stop worrying and how to love flexible scope.
How I learned stop worrying and how to love flexible scope.
 
Story Maps - Liefern was wirklich zählt
Story Maps - Liefern was wirklich zähltStory Maps - Liefern was wirklich zählt
Story Maps - Liefern was wirklich zählt
 
Build-Measure-Learn: Was macht agile Methoden erfolgreich?
Build-Measure-Learn: Was macht agile Methoden erfolgreich?Build-Measure-Learn: Was macht agile Methoden erfolgreich?
Build-Measure-Learn: Was macht agile Methoden erfolgreich?
 

Agile requirements management

  • 1. CHRISTIAN HASSA CH@TECHTALK.AT @CHR99HA ALM Summit Vienna, 30th of November 2012 Agile requirements management End-to-End: from project goals to automated acceptance tests
  • 2. TechTalk at a glance • Agile software development • Consulting and Delivery (Nearshoring) • Locations: Zürich, Vienna, Budapest • ~50 TechTalkers • Founded: 1993 TechTalk office, Vienna/Austria
  • 3. 3 How do we specify requirements?
  • 4. 4 • Describe user needs • Describe system features • Unit of planning • Reminder for a discussion • Mechanism to defer a discussion The purpose of user stories …
  • 5. 5 Impact Mapping Story Mapping Specification-By-Example Building software that matters Why? How? Code Acceptance Criterion Epic Deliverable, Outcome Goals, Impacts Easier to define upfront Harder to define upfront Feature User Story Example
  • 6. 6 Impact Mapping From: Gojko Adzic: www.impactmapping.org Based on: Ingrid Domingues, Mijo Balic Effect Managing IT “Impact Mapping helps us plan better! It is collaborative, visual and fast.”
  • 7. 7 Impact Map structure Goal Actors Impacts Deliverables WHY? WHO? HOW? WHAT? Sell 10.000 books within the first 6 months after launching the business. Shopper for mainstream books, Shopper for rarely available books, Agent preparing shipments, … Shopper for mainstream books: get books faster/more convenient find popular books easily Shopper for mainstream books: get books faster/more convenient: order books online semi-automated distribution center
  • 10. 10 Specification-By-Example Impact Mapping Story Mapping Optimizing and refining scope Why? How? Code Acceptance Criterion Epic Deliverable, Outcome Goals, Impacts Easier to define upfront Harder to define upfront Feature User Story Example
  • 11. 11 Story Maps • Original concept by Jeff Patton • Supports iterative product design • Optimized for desired outcome or deliverable the system should support
  • 12. 14 Building story maps Get mainstream book fast and conveniently delivered Find book I want Collect books Complete order Wait for book Receive book time browse best sellers put into basket enter address receive delivery slip receive delivery notificat. pay with credit card search book by title create wish list inquiry order status desired outcome or deliverable user activities system features necessity
  • 13. 15 Walking skeleton Enabling build – measure - learn Find book I want Collect books Complete order Wait for book Receive book time browse best sellers enter address receive delivery slip pay with credit card search book by title create wish list inquiry order status put into basket receive delivery notificat. necessity manual workaround omitted steps Get mainstream book fast and conveniently delivered
  • 14. 16 Story Map Workshop Deliverables: • Accept and confirm candidates • Electronically publish candidate profiles • Determine funding committee through electronic voting • Provide the system as a service to other corporations
  • 16. 18 Story Maps in ALM with TFS TFS work items in story maps http://speclog.net
  • 17. 19 Story Map in SpecLog
  • 24. 26 Impact Mapping Story Mapping Specification-By-Example Establishing a shared understanding Why? How? Code Acceptance Criterion Epic Capability Impact, Goal Easier to define upfront Harder to define upfront Reminder for a discussion Bug report Isolated, formalized example Feature User Story Example
  • 25. 27 Collecting Acceptance Criteria “I would try to put a book into the shopping cart …” “I would try to remove a book from the shopping cart…” “I’d check whether the shopping cart is empty, when I enter the shop …” “I would try to add the same book again to the shopping cart …” Books can be placed into shopping cart. Books can be removed from shopping cart. Shopping cart should be empty when entering the shop. Adding same book again to shopping cart should increase quantity. As a potential customer I want to collect books in a shopping cart So that I can order several books at once. “Imagine this story is already implemented: how would you verify it?”
  • 27. 29 UI wire frames, existing UI rules, key examples existing artifacts, samples Examples for user stories
  • 28. 30 Specification-by-Example Examples … • make abstract descriptions better understandable However … • examples are usually not formally exchanged or documented Brian Marick Examples Tests Requirements consist of describe verify fulfillment of
  • 29. 31 Discussion of acceptance criteria public void TestInitialOrderDiscount() { Customer newCustomer = new Customer(); Order newOrder = new Order(newCustomer); newOrder.AddBook( Catalog.Find(“ISBN-0955683610”) ); Assert.Equals(33.75, newOrder.Subtotal); } Register as “bart_bookworm” Go to “/catalog/search” Enter “ISBN-0955683610” Click “Search” Click “Add to Cart” Click “View Cart” Verify “Subtotal” is “$33.75” We would like to encourage new users to buy in our shop. Therefore we offer 10% discount for their first order. Original idea for the illustration: George Dinwiddie http://blog.gdinwiddie.com
  • 30. 32 … illustrated with formalized examples Given the user has not ordered yet When the user adds a book with the price of EUR 37.5 into the shopping cart Then the shopping cart sub-total is EUR 33.75. Original idea for the illustration: George Dinwiddie http://blog.gdinwiddie.com
  • 31. 33 Discover hidden assumptions Actually, this not quite right: Books on sale should be excluded. Original idea for the illustration: George Dinwiddie http://blog.gdinwiddie.com
  • 32. 34 Collaboration: 3 amigos “Happy Path” Technical feasability Exceptions, border cases Original idea for the illustration: George Dinwiddie http://blog.gdinwiddie.com
  • 33. 35 Abstract acceptance criteria As a shop visitor I want to collect books in my shopping basket so that I can purchase multiple books at once. Books can be added to the shopping basket Books can be removed from the shopping basket Shopping basket is initially empty The same book can be added multiple times to the shopping basket
  • 34. 36 Examples for acceptance criteria As a shop visitor I want to collect books in my shopping basket so that I can purchase multiple books at once. Books can be added to the shopping basket Given my shopping basket is empty When I add the book “Harry Potter” to my shopping basket Then my shopping basket should contain 1 copy of “Harry Potter”
  • 35. 37 As a shop visitor I want to collect books in my shopping basket so that I can purchase multiple books at once. Books can be added to the shopping basket Examples for acceptance criteria When I add the book “Harry Potter” to my shopping basket Then my shopping basket should contain 2 copies of “Harry Potter” The same book can be added multiple times to the shopping basket Given my shopping basket contains 1 copy of “Harry Potter”
  • 36. 38 The same book can be added multiple times to the shopping basket Structure of examples Given my shopping basket contains 1 copy of “Harry Potter” When I add the book “Harry Potter” to my shopping basket Then my shopping basket should contain 2 copies of “Harry Potter” Title: Describes intention/abstract acceptance criterion Arrange: Context, initial state of the system Act: Execution of the feature Assert: Assertion of observable behaviour And I should see the warning: “Book already existed in basket” Triple-A constraint “Checks” Chaining up steps
  • 37. 39 Purpose of examples • Shared understanding: acceptance criteria • Documentation: Look-up detail aspects of the system • Regression-tests: Understand what assumptions have been violated
  • 38. 40 Continuous validation with automation Given my shopping basket contains 1 copy of “Harry Potter” When I add the book “Harry Potter” to my shopping basket Then my shopping basket should contain 2 copies of “Harry Potter” System „Step Definitions“ are binding individual steps to an automatable interface of the application. Automatable interface UI Automation Automation does not necessarily have to bind to the UI. Automatability of system is supported/evolving with development.
  • 39. 41 Executable specification for .NET http://www.specflow.org Gherkin automation for .NET • Visual Studio plugin (VS-Gallery) • NuGet Package
  • 41. 43 Living documentation • Link business readable automation from source code to story maps • Feed execution results into story maps
  • 42. 44 Books Gojko Adzic Impact Mapping Gojko Adzic Specification by Example
  • 43. 45 Summary Impact Maps • Discover the unknown • Experiments for impacts towards goal Story Maps • Optimize and refine scope • Prioritize for rapid learning through delivery Specification-By-Example • Shared understanding • Living documentation and continuous validation