SlideShare une entreprise Scribd logo
1  sur  28
Putting the
D&D in
TDD
Introductions
George Walters

@walterg2
walterg2@gmail.com

Guy Royse

@guyroyse
guy@guyroyse.com
Adjusting the Levels
• Interrupt Us
• All Levels Session
– covering some basics

• Not Selling TDD
– showing how not why
– the experience will show the why

• We Expect You to Pair
• Language Agnostic
– Ruby, Java, .NET, JavaScript, CoffeeScript, Clojure, Scala, Groovy,
Dart… maybe not

• You Know Your Tools
– we’re not here to teach you JUnit or RSpec
Katas
The
Evercraft
Kata
Adjusting the Levels
• Introduction
• TDD & Ping Pong Pairing
• Four Iterations
– retrospective after each iteration
– brainstorming before iterations 2-4

•
•
•
•
•
•

Iteration 1: Core Rules
Iteration 2: Classes
Lunch
Iteration 3: Races
Iteration 4: Items
Bonus Iteration: Battle Grid
Our Character Sheets
5th Level Facilitator
• + 5 to Teaching: can help
and teach almost any
student
• Bonus Feats: TDD and Pair
Programming
• Kata Mastery: have
mastered the Evercraft
Kata and can help if pairs
get log-jammed

1st Level Product Owner
• Ideation: can form general
ideas for a product at will
but won't know exactly
what they want
• Clarity: given a question
on requirements can
unerringly answer it
• Agile Advocate: can
promote Pairing, TDD, and
other Agile ideas to
business 3 times per day
Questions?
TDD & Ping
Pong
Pairing
A Brief History
of Testing
TDD Cycle
Write a
Failing
Test

Refactor
Your
Crappy
Code

Code Just
Enough to
Make It
Pass
Ping Pong Pairing
Write a
Failing
Test

Refactor
Your
Crappy
Code

Code Just
Enough to
Make It
Pass
Dos & Don’ts
Do…
• …start with a failing test.
• …write tests that become
more and more specific.
• …write code that becomes
more and more generic.
• …take turns writing
tests, coding, and
refactoring.
• …kibitz while pairing.
• …consider keeping a list of
tests you need to write.

Don’t…
• …write more than one test
at a time.
• …have more than one
assert in a test.
• …write any more code
than is needed to make the
current test pass.
• …code alone.
Questions?
Evercraft
During the Kata
• Ask Questions
– as product owners we might not know what we want
– as facilitators we might have gaps in our material

• Present Ideas
– as product owners we might like them more

• Code the Model Only
• No Dice (it's just not worth the hassle)
Rolling Up a Character
• Roll Your Own
• Clone from GitHub
– https://github.com/walterg2/EverCraft-Kata
– Available Projects
•
•
•
•
•
•
•

Java & JUnit
C# & NUnit
Ruby & RSpec
CoffeeScript or JavaScript & Jasmine
Python
Clojure
Scala
Core Rules
Iteration 1
Classes
Iteration 2
Reorientation
Welcome Back
Races
Iteration 3
Items
Iteration 4
Retrospective
And
The
Winner
Is…
Contact Information
George Walters

@walterg2
walterg2@gmail.com

Guy Royse

@guyroyse
guy@guyroyse.com
Image Credits
http://www.flickr.com/photos/kimonomania/602858091
http://www.flickr.com/photos/warquel/3300858929
http://www.flickr.com/photos/pandiyan/82387772
http://www.flickr.com/photos/camerajohn/5151120039
http://www.flickr.com/photos/kaptainkobold/174388593
http://www.flickr.com/photos/cuppini/2378443920
http://www.flickr.com/photos/melloveschallah/3304593555
http://www.flickr.com/photos/denemiles/3971887734
http://www.flickr.com/photos/howardlake/4318605890

Contenu connexe

Tendances

WTF TDD?
WTF TDD?WTF TDD?
WTF TDD?
jeremyw
 
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Peter Kofler
 
Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)
Peter Kofler
 
The Brutal Refactoring Game (2013)
The Brutal Refactoring Game (2013)The Brutal Refactoring Game (2013)
The Brutal Refactoring Game (2013)
Peter Kofler
 
Concepts of Functional Programming for Java Brains (2010)
Concepts of Functional Programming for Java Brains (2010)Concepts of Functional Programming for Java Brains (2010)
Concepts of Functional Programming for Java Brains (2010)
Peter Kofler
 

Tendances (20)

Deliberate Practice (Agile Slovenia 2015)
Deliberate Practice (Agile Slovenia 2015)Deliberate Practice (Agile Slovenia 2015)
Deliberate Practice (Agile Slovenia 2015)
 
Scala in your organisation
Scala in your organisationScala in your organisation
Scala in your organisation
 
Coding Dojo: Asynchronous Clock-In (2016)
Coding Dojo: Asynchronous Clock-In (2016)Coding Dojo: Asynchronous Clock-In (2016)
Coding Dojo: Asynchronous Clock-In (2016)
 
WTF TDD?
WTF TDD?WTF TDD?
WTF TDD?
 
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
 
Mob Programming (2016)
Mob Programming (2016)Mob Programming (2016)
Mob Programming (2016)
 
Refactoring the Tennis Kata v2 (2016)
Refactoring the Tennis Kata v2 (2016)Refactoring the Tennis Kata v2 (2016)
Refactoring the Tennis Kata v2 (2016)
 
Javascript Tests with Jasmine for Front-end Devs
Javascript Tests with Jasmine for Front-end DevsJavascript Tests with Jasmine for Front-end Devs
Javascript Tests with Jasmine for Front-end Devs
 
How to become a Zend Certified PHP Engineer
How to become a Zend Certified PHP EngineerHow to become a Zend Certified PHP Engineer
How to become a Zend Certified PHP Engineer
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
 
Deliberate Practice, New Learning Styles (2015)
Deliberate Practice, New Learning Styles (2015)Deliberate Practice, New Learning Styles (2015)
Deliberate Practice, New Learning Styles (2015)
 
Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)Designing Test Cases for the Gilded Rose Kata (2013)
Designing Test Cases for the Gilded Rose Kata (2013)
 
Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)
 
The Brutal Refactoring Game (2013)
The Brutal Refactoring Game (2013)The Brutal Refactoring Game (2013)
The Brutal Refactoring Game (2013)
 
Concepts of Functional Programming for Java Brains (2010)
Concepts of Functional Programming for Java Brains (2010)Concepts of Functional Programming for Java Brains (2010)
Concepts of Functional Programming for Java Brains (2010)
 
JUnit Boot Camp (GeeCON 2016)
JUnit Boot Camp (GeeCON 2016)JUnit Boot Camp (GeeCON 2016)
JUnit Boot Camp (GeeCON 2016)
 
Becoming fully buzzword compliant
Becoming fully buzzword compliantBecoming fully buzzword compliant
Becoming fully buzzword compliant
 
TDD with Ruby
TDD with RubyTDD with Ruby
TDD with Ruby
 
Designing Test Cases for the Gilded Rose Kata v2 (2015)
Designing Test Cases for the Gilded Rose Kata v2 (2015)Designing Test Cases for the Gilded Rose Kata v2 (2015)
Designing Test Cases for the Gilded Rose Kata v2 (2015)
 
How to create a podcast
How to create a podcastHow to create a podcast
How to create a podcast
 

Similaire à Putting the D&D in TDD

2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live
Johannes Brodwall
 
How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....
Mike Harris
 

Similaire à Putting the D&D in TDD (20)

TDD - Christchurch APN May 2012
TDD - Christchurch APN May 2012TDD - Christchurch APN May 2012
TDD - Christchurch APN May 2012
 
Kata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipKata Your Way to SW Craftsmanship
Kata Your Way to SW Craftsmanship
 
2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live2013 09-11 java zone - extreme programming live
2013 09-11 java zone - extreme programming live
 
WeActuallyBuildStuff - Extreme Programming Live
WeActuallyBuildStuff - Extreme Programming LiveWeActuallyBuildStuff - Extreme Programming Live
WeActuallyBuildStuff - Extreme Programming Live
 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)
 
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
 
Sanely working with Legacy Code - PyTexas 2024
Sanely working with Legacy Code - PyTexas 2024Sanely working with Legacy Code - PyTexas 2024
Sanely working with Legacy Code - PyTexas 2024
 
Understanding Why Testing is Importaint
Understanding Why Testing is ImportaintUnderstanding Why Testing is Importaint
Understanding Why Testing is Importaint
 
Make a better with clean code
Make a better with clean codeMake a better with clean code
Make a better with clean code
 
Do testers have to code... to be useful?
Do testers have to code... to be useful?Do testers have to code... to be useful?
Do testers have to code... to be useful?
 
How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....
 
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
 
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
 
Bahaviour Driven Development
Bahaviour Driven DevelopmentBahaviour Driven Development
Bahaviour Driven Development
 
Agile Programming Live - AgilePrague2012
Agile Programming Live - AgilePrague2012Agile Programming Live - AgilePrague2012
Agile Programming Live - AgilePrague2012
 
Completely Test-Driven
Completely Test-DrivenCompletely Test-Driven
Completely Test-Driven
 
Tdd!
Tdd!Tdd!
Tdd!
 
Adopting tdd in the workplace
Adopting tdd in the workplaceAdopting tdd in the workplace
Adopting tdd in the workplace
 
Adopting tdd in the workplace
Adopting tdd in the workplaceAdopting tdd in the workplace
Adopting tdd in the workplace
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)
 

Plus de Guy Royse

Plus de Guy Royse (8)

Machine Learning for Fun - Finding Bigfoot with the Nexosis API
Machine Learning for Fun - Finding Bigfoot with the Nexosis APIMachine Learning for Fun - Finding Bigfoot with the Nexosis API
Machine Learning for Fun - Finding Bigfoot with the Nexosis API
 
Machine Learning for Gamers - Dungeon Forecasts & Dragon Regressions
Machine Learning for Gamers - Dungeon Forecasts & Dragon RegressionsMachine Learning for Gamers - Dungeon Forecasts & Dragon Regressions
Machine Learning for Gamers - Dungeon Forecasts & Dragon Regressions
 
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScriptjQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
 
The Code Christmas Tree: Selling the Investment for Technical Debt
The Code Christmas Tree: Selling the Investment for Technical DebtThe Code Christmas Tree: Selling the Investment for Technical Debt
The Code Christmas Tree: Selling the Investment for Technical Debt
 
Mad Computer Science: Testing COBOL with RSpec
Mad Computer Science: Testing COBOL with RSpecMad Computer Science: Testing COBOL with RSpec
Mad Computer Science: Testing COBOL with RSpec
 
Programming on Bare Metal: Controlling Circuits with Code
Programming on Bare Metal: Controlling Circuits with CodeProgramming on Bare Metal: Controlling Circuits with Code
Programming on Bare Metal: Controlling Circuits with Code
 
Those Who Know History are Doomed to Watch Others Repeat It
Those Who Know History are Doomed to Watch Others Repeat ItThose Who Know History are Doomed to Watch Others Repeat It
Those Who Know History are Doomed to Watch Others Repeat It
 
Understanding Prototypal Inheritance
Understanding Prototypal InheritanceUnderstanding Prototypal Inheritance
Understanding Prototypal Inheritance
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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
 
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
 
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
 
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 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...
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
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...
 

Putting the D&D in TDD

Notes de l'éditeur

  1. George then Guy
  2. George, Guy, Guy, George, Guy, George, Guy, Guy, George, George
  3. Recap what we covered and what we're doing. handout cards on board we've done core rules and classes (mention the classes) we're doing races next and need to brainstorm