SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
@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

Mais conteúdo relacionado

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

Mais 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
 

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

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

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
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

Less is more