SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
@sebrose http://claysnow.co.uk
1
LESS is MORE
Seb	
  Rose
Claysnow	
  Limited
@sebrose
Tuesday, 24 March 15
@sebrose http://claysnow.co.ukhttp://leadinganswers.typepad.com/leading_answers/files/original_waterfall_paper_winston_royce.pdf
Last century?
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
Agile manifesto signatories
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
http://www.developersurvivalguide.com/tag/agile/
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
https://markkolier.files.wordpress.com/2012/12/feedback.png?w=300
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
http://media.mediatemple.netdna-cdn.com/wp-content/uploads/2013/01/floops_loops.png
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
http://blog.rescuetime.com/wp-content/uploads/2012/08/feedback-loop-graphic-1.jpg
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
http://conversionxl.com/wp-content/uploads/2014/05/3.png
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
Is it small,
or just far away?
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
The Cone of Uncertainty in Project Management
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
http://dannorth.net/2010/08/30/introducing-deliberate-discovery/
“Ignorance is the single greatest
impediment to throughput.”
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
ASSUME
YOU'RE
IGNORANT
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
Outside-in: user stories, then TDD
CHANGE OF PLAN
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
User Stories
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
http://www.developersurvivalguide.com/tag/agile/
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
What is a story?
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
To Do In Progress Done
Story A
As a .................
I want .................
So that ...............
13 points
Story B
As a .................
I want .................
So that ...............
8 points
HELP!
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
https://intranet.5amsolutions.com/display/process/Playing+Planning+Poker
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
https://estimation.lunarlogic.io/assets/cards-range-8fc41b2e3fd282125f4602a712020204.png
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
Why split them?
Tuesday, 24 March 15
@sebrose http://claysnow.co.ukwinnipegagilist.blogspot.com
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
MVP
http://toolsforagile.com/blog/wp-content/uploads/2011/03/mvp.png
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
1. Just about everyone in the world has done
this.
2. Lots of people have done this, including
someone on our team.
3. Someone in our company has done this, or
we have access to expertise.
4. Someone in the world did this, but not in
our organisation (and probably at a
competitor).
5. Nobody in the world has ever done this
before.
http://lizkeogh.com/2013/07/21/estimating-complexity/
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
MMFs
1.
2.
3.
4.
5.
6.
7.
Naked Planning
In progress Urgent
Average delivery
time from here:
?? days
via @arlobelshee
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
http://image.slidesharecdn.com/agilepm-140409183015-phpapp01/95/agile-product-owner-51-638.jpg
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
How to split them?
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
http://www.jbrains.ca/permalink/how-youll-probably-learn-to-split-features
1. Write out any, and I mean any,
meaningful end-to-end scenario in
detail with concrete values at every
step.
2. Now that you’ve chosen one real scenario, go to each step in that
scenario and ask the question,“What would I need to assume to
eliminate this step?” If you find those assumptions make for a reasonable
scenario, then use that assumption to simplify the scenario.
3. Repeat step 2 until exhausted or unable to come up with a simplifying
assumption with five minutes’ thought.
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
http://www.jbrains.ca/permalink/how-youll-probably-learn-to-split-features
1. Write out any, and I mean any, meaningful end-to-end scenario in detail
with concrete values at every step.
2. Now that you’ve chosen one real
scenario, go to each step in that
scenario and ask the question,
“What would I need to assume to
eliminate this step?” If you find
those assumptions make for a
reasonable scenario, then use that
assumption to simplify the scenario.
3. Repeat step 2 until exhausted or unable to come up with a simplifying
assumption with five minutes’ thought.
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
http://www.jbrains.ca/permalink/how-youll-probably-learn-to-split-features
1. Write out any, and I mean any, meaningful end-to-end scenario in detail
with concrete values at every step.
2. Now that you’ve chosen one real scenario, go to each step in that
scenario and ask the question,“What would I need to assume to
eliminate this step?” If you find those assumptions make for a reasonable
scenario, then use that assumption to simplify the scenario.
3. Repeat step 2 until exhausted or
unable to come up with a
simplifying assumption with five
minutes’ thought.
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
Shouty!
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
https://github.com/cucumber-ltd/shouty.rb
Ruby
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
C#
https://github.com/cucumber-ltd/shouty.net
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
https://github.com/cucumber-ltd/shouty.java
Java
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
https://github.com/cucumber-ltd/shouty.java
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
http://www.jbrains.ca/permalink/how-youll-probably-learn-to-split-features
1. Write out any, and I mean any, meaningful end-to-end scenario in detail
with concrete values at every step.
2. Now that you’ve chosen one real scenario, go to each step in that
scenario and ask the question,“What would I need to assume to
eliminate this step?” If you find those assumptions make for a reasonable
scenario, then use that assumption to simplify the scenario.
3. Repeat step 2 until exhausted or unable to come up with a simplifying
assumption with five minutes’ thought.
Let’s apply @jbrains approach:
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
What do you think of our story?
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
TDD
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
Print Diamond
Given a letter, print a diamond starting with
‘A’ with the supplied letter at the widest point.
For example: print-diamond ‘C’ prints:
  A
 B B
C   C
 B B
  A
http://claysnow.co.uk/recycling-tests-in-tdd/
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
http://www.amazon.co.uk/Growing-Object-Oriented-Software-Addison-Wesley-Signature-ebook/dp/
B002TIOYVW
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
.... or make an
existing test
fail
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
What do you think of these two
approaches?
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
Transformation Priority Premise
http://blog.8thlight.com/uncle-bob/2013/05/27/TheTransformationPriorityPremise.html
• Transformations are simple operations that
change the behaviour of code.
• Transformations can be used as the sole
means for passing the currently failing test in
the red/green/refactor cycle.
• Transformations have a priority, or a preferred
ordering,
• prevent impasses, or long outages in the
red/green/refactor cycle.
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
• ({}–>nil) no code at all->code that employs nil
• (nil->constant)
• (constant->constant+) a simple constant to a more
complex constant
• (constant->scalar) replacing a constant with a variable or
an argument
• (statement->statements) adding more unconditional
statements.
• (unconditional->if) splitting the execution path
• (scalar->array)
• (array->container)
• (statement->recursion)
• (if->while)
• (expression->function) replacing an expression with a
function or algorithm
• (variable->assignment) replacing the value of a variable.
http://blog.8thlight.com/uncle-bob/2013/05/27/TheTransformationPriorityPremise.html
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
Deliver early to get
FAST FEEDBACK
Deliver increments to
MANAGE RISK
Deliver less to
LEARN MORE
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
Seb Rose
Twitter: 	

 @sebrose
Blog: 	

 	

 www.claysnow.co.uk
E-mail:	

 	

 seb@claysnow.co.uk
Discount code at pragprog.com
DevWeek_25
Valid for 1 month
Tuesday, 24 March 15
@sebrose http://claysnow.co.uk
http://scrumprouk.tumblr.com/post/74824285728/kanban-work-items-to-slice-or-not-to-slice
"The size of a work item or it’s
complexity has no correlation
on [sic] the time it takes to deliver
the work."
Tuesday, 24 March 15

Contenu connexe

En vedette (6)

LESS IS MORE(MIES VAN DER ROHE)
LESS IS MORE(MIES VAN DER ROHE)LESS IS MORE(MIES VAN DER ROHE)
LESS IS MORE(MIES VAN DER ROHE)
 
Ludwig mies van der rohe
Ludwig mies van der roheLudwig mies van der rohe
Ludwig mies van der rohe
 
Art nouveau
Art nouveauArt nouveau
Art nouveau
 
le corbusier principles
le corbusier principlesle corbusier principles
le corbusier principles
 
Louis Sullivan
Louis SullivanLouis Sullivan
Louis Sullivan
 
Art Nouveau ppt
Art Nouveau pptArt Nouveau ppt
Art Nouveau ppt
 

Plus de Seb Rose

Software testing - learning to walk again (expoQA22)
Software testing - learning to walk again (expoQA22)Software testing - learning to walk again (expoQA22)
Software testing - learning to walk again (expoQA22)
Seb Rose
 
Software contracts or: how I learned to stop worrying and love releasing. Agi...
Software contracts or: how I learned to stop worrying and love releasing. Agi...Software contracts or: how I learned to stop worrying and love releasing. Agi...
Software contracts or: how I learned to stop worrying and love releasing. Agi...
Seb Rose
 

Plus de Seb Rose (20)

Software contracts - Global Enterprise Agile 2023.pdf
Software contracts - Global Enterprise Agile 2023.pdfSoftware contracts - Global Enterprise Agile 2023.pdf
Software contracts - Global Enterprise Agile 2023.pdf
 
Micro-service delivery - without the pitfalls
Micro-service delivery - without the pitfallsMicro-service delivery - without the pitfalls
Micro-service delivery - without the pitfalls
 
DevSecOps - Agile Get-Together 2022.pdf
DevSecOps - Agile Get-Together 2022.pdfDevSecOps - Agile Get-Together 2022.pdf
DevSecOps - Agile Get-Together 2022.pdf
 
Contract testing - Sealights 2022.pdf
Contract testing - Sealights 2022.pdfContract testing - Sealights 2022.pdf
Contract testing - Sealights 2022.pdf
 
Example mapping - slice any story into testable examples - SoCraTes 2022.pdf
Example mapping - slice any story into testable examples - SoCraTes 2022.pdfExample mapping - slice any story into testable examples - SoCraTes 2022.pdf
Example mapping - slice any story into testable examples - SoCraTes 2022.pdf
 
Software testing - learning to walk again (expoQA22)
Software testing - learning to walk again (expoQA22)Software testing - learning to walk again (expoQA22)
Software testing - learning to walk again (expoQA22)
 
DevSecOps - Unicom Agile and DevOps Expo (Adaptive Challenges) 2021
DevSecOps - Unicom Agile and DevOps Expo (Adaptive Challenges) 2021DevSecOps - Unicom Agile and DevOps Expo (Adaptive Challenges) 2021
DevSecOps - Unicom Agile and DevOps Expo (Adaptive Challenges) 2021
 
A brief history of requirements - Unicom 2022
A brief history of requirements  - Unicom 2022A brief history of requirements  - Unicom 2022
A brief history of requirements - Unicom 2022
 
Example mapping (with builds) - ProductWorld 2022
Example mapping (with builds)  - ProductWorld 2022Example mapping (with builds)  - ProductWorld 2022
Example mapping (with builds) - ProductWorld 2022
 
Example mapping - ProductWorld 2022
Example mapping - ProductWorld 2022Example mapping - ProductWorld 2022
Example mapping - ProductWorld 2022
 
No code, low code, machine code QA ATL 2021
No code, low code, machine code   QA ATL 2021No code, low code, machine code   QA ATL 2021
No code, low code, machine code QA ATL 2021
 
No code, low code, machine code QA ATL 2021
No code, low code, machine code   QA ATL 2021No code, low code, machine code   QA ATL 2021
No code, low code, machine code QA ATL 2021
 
No code, low code, machine code - Unicom 2021
No code, low code, machine code -  Unicom 2021No code, low code, machine code -  Unicom 2021
No code, low code, machine code - Unicom 2021
 
BDD: from soup to nuts - The Future of Work Scotland 2021
BDD: from soup to nuts  - The Future of Work Scotland 2021BDD: from soup to nuts  - The Future of Work Scotland 2021
BDD: from soup to nuts - The Future of Work Scotland 2021
 
Contrasting test automation and BDD - 2020
Contrasting test automation and BDD - 2020Contrasting test automation and BDD - 2020
Contrasting test automation and BDD - 2020
 
Are BDD and test automation the same thing? Automation Guild 2021
Are BDD and test automation the same thing?   Automation Guild 2021Are BDD and test automation the same thing?   Automation Guild 2021
Are BDD and test automation the same thing? Automation Guild 2021
 
"Our BDDs are broken!" Lean Agile Exchange 2020
"Our BDDs are broken!"   Lean Agile Exchange 2020"Our BDDs are broken!"   Lean Agile Exchange 2020
"Our BDDs are broken!" Lean Agile Exchange 2020
 
User stories: from good intentions to bad advice - Agile Scotland 2019
User stories: from good intentions to bad advice - Agile Scotland 2019User stories: from good intentions to bad advice - Agile Scotland 2019
User stories: from good intentions to bad advice - Agile Scotland 2019
 
User stories: from good intentions to bad advice - Lean Agile Scotland 2019
User stories: from good intentions to bad advice - Lean Agile Scotland 2019User stories: from good intentions to bad advice - Lean Agile Scotland 2019
User stories: from good intentions to bad advice - Lean Agile Scotland 2019
 
Software contracts or: how I learned to stop worrying and love releasing. Agi...
Software contracts or: how I learned to stop worrying and love releasing. Agi...Software contracts or: how I learned to stop worrying and love releasing. Agi...
Software contracts or: how I learned to stop worrying and love releasing. Agi...
 

Dernier

Dernier (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Less is more