SlideShare a Scribd company logo
1 of 74
Download to read offline
GLOBAL DAY OF
CODERETREAT
Munich,
November 17, 2018
WHAT IS A CODERETREAT?
1 DAY
1 KATA
1 DAY
1 KATA
6 SESSIONS
6 PAIRING PARTNER
6 CONSTRAINTS
Hidden Slide Slower
2000 Developers
100 Cities
6 Continents
18 Time zones
GLOBAL DAY OF
CODERETREAT
ROLES
HOST
&Z?jBrA+>y(r
ROLES
HOST
FACILITATOR
&Z?jBrA+>y(r
ROLES
HOST
FACILITATOR
&Z?jBrA+>y(r
YOUR PAIR
ROLES
HOST
FACILITATOR
&Z?jBrA+>y(r
YOUR PAIR
YOU
WHY A CODERETREAT?
@ DAY JOB
@ DAY JOB
NO ROOM FOR
LEARNING &
IMPROVEMENT
A SAFE PLACE
NO TIME PRESSURE
A SAFE PLACE
NO TIME PRESSURE
BE RESPECTFUL
GOALS
LEARN
GOALS
FUN
LEARN
CHALLENGE YOURSELF
Experiment
Stretch your
comfort zone
Learn new practices
FOCUS ON
finish the problem
doing it right
practicing
improvement
DELETE YOUR CODE
After each session
WHY RESET?
Clear your mind
Focus on different goals
Start from different parts
ORGA
PREREQUISITES
Working Dev Env
DVCS (e.g. Git, Mercurial)
Testing Framework
Mock Framework (optional)
Local Sponsors
Hidden Slide Slower
PLEASE
Ask for help
Use the feedback wall
=>
AGENDA
Intro
Session 1-3
Lunch
Session 4-6
Closing Circle / Retro
HOW IS YOUR EXPERIENCE
LEVEL WITH TDD?
PLEASE LINE UP!
KATA
TIC TAC TOE
3x3 Board
Player "X" and "O"
Player with 3 in one line wins
• horizontal
• vertical
• diagonal
SESSION 1 PART 1
"THE TEST LIST"
Goal
Understand
• the problem
• its test cases
SESSION 1 PART 1
"THE TEST LIST"
Think about the use cases / user stories
What are reasonable boundaries?
Collect a list of tests in a text file (no code!)
SESSION 1 PART 1
"THE TEST LIST"
Sync
What features / boundaries did you find?
What tests did you find?
Test categories? Dimensions?
SESSION 1 PART 2
"TEST FIRST"
Write a test and let it fail
Write the simplest possible
implementation that the test runs green
SESSION 1 PART 2
"TEST FIRST"
Why?
Set a clear goal
no YAGNI
Separate API from Implementation
Causality: Red->Green
Testing discipline, high coverage
early ROI
Only chance for testing an error message
SESSION 1 PART 2
"TEST FIRST"
Write one test
Let them fail
Make the test failure expressive
Continue with next very different test
SESSION 1 PART 2
"TEST FIRST"
Sync
Which tests did you write?
Are your test failures expressive?
Object(s) under Test?
SESSION 2
"TDD + PING PONG"
GOALS
Learn TDD
Change pairing roles often
SESSION 2
"TDD + PING PONG"
TDD
= test-first + refactoring
= red, green, refactor
SESSION 2
"TDD + PING PONG"
Focus
write test: what should code do
implement: solve the problem
refactor: good design
SESSION 2
"TDD + PING PONG"
1. Passes all Tests
2. Reveals intention
3. No Duplication
4. Fewer Elements
4 Rules of Simple Design
SESSION 2
"TDD + PING PONG"
Uncle Bob’s 3 Rules of TDD
1. You can't write any production code until you
have first written a failing unit test.
2. You can't write more of a unit test than is
sufficient to fail, and not compiling is failing.
3. You can't write more production code than is
sufficient to pass the currently failing unit test.
SESSION 2
"TDD + PING PONG"
TDD GOALS
Incremental & Clean Design
Fast Feedback
SESSION 2
"TDD + PING PONG"
Ping Pong Pairing
1. Alice writes failing test
2. Bob makes test green
3. Bob writes failing test
4. Alice makes test green
5. Alice writes failing test
6. …
SESSION 2
"TDD + PING PONG"
Uncle Bob’s 3 Rules of TDD
1. You can't write any production code until you
have first written a failing unit test.
2. You can't write more of a unit test than is
sufficient to fail, and not compiling is failing.
3. You can't write more production code than is
sufficient to pass the currently failing unit test.
Do refactor duplication and improve names
SESSION 2
"TDD + PING PONG"
Sync
What did you observe?
What did (not) work?
What about design/refactoring?
How did pairing work?
SESSION 3
"BABY STEPS TDD"
LEARNING GOALS
Why are baby steps important
How to achieve baby steps
SESSION 3
"BABY STEPS TDD"
change 1
Initial code state
change 2
state 1
state 2
…
change n
target code state
● slow feedback
● high risk
● exponential complexity
● problems hard to find
LEAP
SESSION 3
"BABY STEPS TDD"
get green asap
● commit on green
● revert to green
change 1
Initial state
change 2
state 1
state 2
…
change n
target state
BABY STEPS
SESSION 3
"BABY STEPS TDD"
+ fast feedback
+ less risk
- a bit more effort
change 1
Initial state
change 2
state 1
state 2
…
change n
target state
BABY STEPS
SESSION 3
"BABY STEPS TDD"
Start a 2 min. timer when you get red
When back to green reset the timer and
When timer rings and you are still in red
git reset --hard
git commit
SESSION 3
"BABY STEPS TDD"
Sync
How did it work, was it hard?
Did you get better during the session?
How did you achieve baby steps?
Command & Query Separation
Commands:
void methods, change state
Queries:
return value, no side effects
SESSION 4
"TELL DON’T ASK"
Bertrand Meyer, "Object Oriented Software Construction“
"Procedural code gets information then makes decisions.
Object-oriented code tells objects to do things.“
Alex Sharp
"The big idea is messaging“
Alan Kay about OO
SESSION 4
"TELL DON’T ASK"
SESSION 4
"TELL DON’T ASK"
GOALS
Learn about messaging in OO
Whats wrong here?
point.setX(point.getX() + 1);
SESSION 4
"TELL DON’T ASK"
Bertrand Meyer, "Object Oriented Software Construction“
Whats wrong here?
point.setX(point.getX() + 1);
„Asking“ internal state and base calc on
Feature Envy
SESSION 4
"TELL DON’T ASK"
Bertrand Meyer, "Object Oriented Software Construction“
Push "Tell" into Point
point.moveRight();
SESSION 4
"TELL DON’T ASK"
Bertrand Meyer, "Object Oriented Software Construction“
Constraints
• Void only: no return values / exceptions
• Change only state in your own members
• or send messages to your neighbour object
SESSION 4
"TELL DON’T ASK"
Sync
What was hard?
How did you solve it?
What did you learn from it?
In which contexts does(n’t) it work?
SESSION 4
"TELL DON’T ASK"
GOAL
Try Functional Programming
SESSION 5
"FUNCTIONAL"
SESSION 5
"FUNCTIONAL"
What is Functional
Programming?
SESSION 5
"FUNCTIONAL"
Constraints
No functional language
Minimize Mutability
pure functions
no mutable state
Expressions not statements
(if necessary: side effects only at the top level)
no ifs / switch
Name everything
Don't abbreviate
No primitive types nor anonymous functions / lambdas
Intermediary variables instead of chaining function calls
SESSION 5
"FUNCTIONAL"
Sync
• What was hard?
• How did you handle it?
• Difference to session before?
• What make sense for "real life“?
SESSION 6
"YOUR CHOICE"
The goal is fun!
Choose one yourself
Your favorite of the day
Write your own Testrunner
No conditionals & no loops
Object Calisthenics
Only RegEx
SESSION 6
"YOUR CHOICE"
Sync
• What did you choose?
• What surprised you?
• What was hard?
• How did you handle it?
SESSION 6
"YOUR CHOICE"
• what did you learn today?
• what surprised you about today?
• what are you going to do differently
in your Project?
CLOSING
Please give us feedback about the
day on the feedback wall
so we can improve next time!
FEEDBACK
LICENSE
Creative Commons Attribution-ShareAlike
IMAGES
Some are Public Domain except theses licensed with
Creative Commons with attributions:
By Symbolon
By Ainsley Wagoner
IMAGES
By Luis Prado
Dave Gandy
Christopher.Michel
IMAGES
Kigsz
Another Believer
Maria Ly
IMAGES
Büşra ÖZCOŞKUN
Guru
Aneeque Ahmed
IMAGES
 Rudy Jaspers
 logan
Hopkins
IMAGES
 Kick
THOR
Seattle Municipal Archives
IMAGES
  Uriel Sosa
Adrien Coquet
Yogesh More

More Related Content

What's hot

Unwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingUnwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingLemi Orhan Ergin
 
Global Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventGlobal Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventLemi Orhan Ergin
 
TDD That Was Easy!
TDD   That Was Easy!TDD   That Was Easy!
TDD That Was Easy!Kaizenko
 
UXDX London 2018 Nik Crabtree - Enhancing the Processes of Test Driven Develo...
UXDX London 2018 Nik Crabtree - Enhancing the Processes of Test Driven Develo...UXDX London 2018 Nik Crabtree - Enhancing the Processes of Test Driven Develo...
UXDX London 2018 Nik Crabtree - Enhancing the Processes of Test Driven Develo...UXDXConf
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019Paulo Clavijo
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): RevistedMike Harris
 
Lessons learned with Bdd: a tutorial
Lessons learned with Bdd: a tutorialLessons learned with Bdd: a tutorial
Lessons learned with Bdd: a tutorialAlan Richardson
 
Pair Programming - a pratical guide
Pair Programming - a pratical guidePair Programming - a pratical guide
Pair Programming - a pratical guideGiuseppe Sorrentino
 
Agile Olympiad 2014 Finals
Agile Olympiad 2014 FinalsAgile Olympiad 2014 Finals
Agile Olympiad 2014 FinalsTathagat Varma
 
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 DevsChris Powers
 
Agile Test Driven Development
Agile Test Driven DevelopmentAgile Test Driven Development
Agile Test Driven DevelopmentViraf Karai
 
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 201810 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018Lemi Orhan Ergin
 
Pair programming
Pair programmingPair programming
Pair programmingJon Jagger
 
Beyond agile - Pitfalls & misconceptions when working with SCRUM & Co | Ralf ...
Beyond agile - Pitfalls & misconceptions when working with SCRUM & Co | Ralf ...Beyond agile - Pitfalls & misconceptions when working with SCRUM & Co | Ralf ...
Beyond agile - Pitfalls & misconceptions when working with SCRUM & Co | Ralf ...Ralf C. Adam
 
Detangling Your JavaScript
Detangling Your JavaScriptDetangling Your JavaScript
Detangling Your JavaScriptChris Powers
 
Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017Lemi Orhan Ergin
 
Getting Comfortable with BDD
Getting Comfortable with BDDGetting Comfortable with BDD
Getting Comfortable with BDDAlex Sharp
 
Agile Programming Systems # TDD intro
Agile Programming Systems # TDD introAgile Programming Systems # TDD intro
Agile Programming Systems # TDD introVitaliy Kulikov
 
Jdojo@Gbg Introduction
Jdojo@Gbg IntroductionJdojo@Gbg Introduction
Jdojo@Gbg IntroductionFredrik Wendt
 
The rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in TurinThe rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in TurinAlessandro Nadalin
 

What's hot (20)

Unwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingUnwritten Manual for Pair Programming
Unwritten Manual for Pair Programming
 
Global Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventGlobal Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul Event
 
TDD That Was Easy!
TDD   That Was Easy!TDD   That Was Easy!
TDD That Was Easy!
 
UXDX London 2018 Nik Crabtree - Enhancing the Processes of Test Driven Develo...
UXDX London 2018 Nik Crabtree - Enhancing the Processes of Test Driven Develo...UXDX London 2018 Nik Crabtree - Enhancing the Processes of Test Driven Develo...
UXDX London 2018 Nik Crabtree - Enhancing the Processes of Test Driven Develo...
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): Revisted
 
Lessons learned with Bdd: a tutorial
Lessons learned with Bdd: a tutorialLessons learned with Bdd: a tutorial
Lessons learned with Bdd: a tutorial
 
Pair Programming - a pratical guide
Pair Programming - a pratical guidePair Programming - a pratical guide
Pair Programming - a pratical guide
 
Agile Olympiad 2014 Finals
Agile Olympiad 2014 FinalsAgile Olympiad 2014 Finals
Agile Olympiad 2014 Finals
 
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
 
Agile Test Driven Development
Agile Test Driven DevelopmentAgile Test Driven Development
Agile Test Driven Development
 
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 201810 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
 
Pair programming
Pair programmingPair programming
Pair programming
 
Beyond agile - Pitfalls & misconceptions when working with SCRUM & Co | Ralf ...
Beyond agile - Pitfalls & misconceptions when working with SCRUM & Co | Ralf ...Beyond agile - Pitfalls & misconceptions when working with SCRUM & Co | Ralf ...
Beyond agile - Pitfalls & misconceptions when working with SCRUM & Co | Ralf ...
 
Detangling Your JavaScript
Detangling Your JavaScriptDetangling Your JavaScript
Detangling Your JavaScript
 
Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017
 
Getting Comfortable with BDD
Getting Comfortable with BDDGetting Comfortable with BDD
Getting Comfortable with BDD
 
Agile Programming Systems # TDD intro
Agile Programming Systems # TDD introAgile Programming Systems # TDD intro
Agile Programming Systems # TDD intro
 
Jdojo@Gbg Introduction
Jdojo@Gbg IntroductionJdojo@Gbg Introduction
Jdojo@Gbg Introduction
 
The rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in TurinThe rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in Turin
 

Similar to Global Day of Coderetreat Munich 2018

Test Driving Legacy Code Mini Workshop
Test Driving Legacy Code Mini WorkshopTest Driving Legacy Code Mini Workshop
Test Driving Legacy Code Mini WorkshopFernando Cuenca
 
TDD reloaded - JUGTAA 24 Ottobre 2012
TDD reloaded - JUGTAA 24 Ottobre 2012TDD reloaded - JUGTAA 24 Ottobre 2012
TDD reloaded - JUGTAA 24 Ottobre 2012Pietro Di Bello
 
UX STRAT USA 2017: Jim Kalbach, "Using Jobs To Be Done to Create High-Value P...
UX STRAT USA 2017: Jim Kalbach, "Using Jobs To Be Done to Create High-Value P...UX STRAT USA 2017: Jim Kalbach, "Using Jobs To Be Done to Create High-Value P...
UX STRAT USA 2017: Jim Kalbach, "Using Jobs To Be Done to Create High-Value P...UX STRAT
 
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)Danny Preussler
 
Coding Dojo Firenze - vol1
Coding Dojo Firenze - vol1 Coding Dojo Firenze - vol1
Coding Dojo Firenze - vol1 Massimo Iacolare
 
How Do We Teach TDD Keith Ray
How Do We Teach TDD Keith RayHow Do We Teach TDD Keith Ray
How Do We Teach TDD Keith RayC. Keith Ray
 
TDD - Unit testing done right and programmer happiness
TDD - Unit testing done right and programmer happinessTDD - Unit testing done right and programmer happiness
TDD - Unit testing done right and programmer happinessErez Cohen
 
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 liveJohannes Brodwall
 
Test Drive Development
Test Drive DevelopmentTest Drive Development
Test Drive Developmentsatya sudheer
 
Test-Driven Development
 Test-Driven Development  Test-Driven Development
Test-Driven Development Amir Assad
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Developmentjakubkoci
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentConsulthinkspa
 
Kata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipKata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipCamille Bell
 
Coderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsCoderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsLemi Orhan Ergin
 
Winning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test CycleWinning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test CycleRusty Klophaus
 
Test Driven Development Methodology and Philosophy
Test Driven Development Methodology and Philosophy Test Driven Development Methodology and Philosophy
Test Driven Development Methodology and Philosophy Vijay Kumbhar
 
Big code refactoring with agility
Big code refactoring with agilityBig code refactoring with agility
Big code refactoring with agilityLuca Merolla
 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)wolframkriesing
 

Similar to Global Day of Coderetreat Munich 2018 (20)

Test Driving Legacy Code Mini Workshop
Test Driving Legacy Code Mini WorkshopTest Driving Legacy Code Mini Workshop
Test Driving Legacy Code Mini Workshop
 
TDD reloaded - JUGTAA 24 Ottobre 2012
TDD reloaded - JUGTAA 24 Ottobre 2012TDD reloaded - JUGTAA 24 Ottobre 2012
TDD reloaded - JUGTAA 24 Ottobre 2012
 
UX STRAT USA 2017: Jim Kalbach, "Using Jobs To Be Done to Create High-Value P...
UX STRAT USA 2017: Jim Kalbach, "Using Jobs To Be Done to Create High-Value P...UX STRAT USA 2017: Jim Kalbach, "Using Jobs To Be Done to Create High-Value P...
UX STRAT USA 2017: Jim Kalbach, "Using Jobs To Be Done to Create High-Value P...
 
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)
 
Code Retreat
Code RetreatCode Retreat
Code Retreat
 
Coding Dojo Firenze - vol1
Coding Dojo Firenze - vol1 Coding Dojo Firenze - vol1
Coding Dojo Firenze - vol1
 
How Do We Teach TDD Keith Ray
How Do We Teach TDD Keith RayHow Do We Teach TDD Keith Ray
How Do We Teach TDD Keith Ray
 
TDD - Unit testing done right and programmer happiness
TDD - Unit testing done right and programmer happinessTDD - Unit testing done right and programmer happiness
TDD - Unit testing done right and programmer happiness
 
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
 
Test Drive Development
Test Drive DevelopmentTest Drive Development
Test Drive Development
 
Test-Driven Development
 Test-Driven Development  Test-Driven Development
Test-Driven Development
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Kata Your Way to SW Craftsmanship
Kata Your Way to SW CraftsmanshipKata Your Way to SW Craftsmanship
Kata Your Way to SW Craftsmanship
 
Coderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsCoderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your Crafts
 
Winning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test CycleWinning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test Cycle
 
Test Driven Development Methodology and Philosophy
Test Driven Development Methodology and Philosophy Test Driven Development Methodology and Philosophy
Test Driven Development Methodology and Philosophy
 
Agile Practices
Agile PracticesAgile Practices
Agile Practices
 
Big code refactoring with agility
Big code refactoring with agilityBig code refactoring with agility
Big code refactoring with agility
 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)
 

More from David Völkel

Die Kunst der kleinen Schritte - Softwerkskammer Lübeck
Die Kunst der kleinen Schritte - Softwerkskammer LübeckDie Kunst der kleinen Schritte - Softwerkskammer Lübeck
Die Kunst der kleinen Schritte - Softwerkskammer LübeckDavid Völkel
 
KPI Driven-Development in der Praxis - XP Days Germany
KPI Driven-Development in der Praxis - XP Days GermanyKPI Driven-Development in der Praxis - XP Days Germany
KPI Driven-Development in der Praxis - XP Days GermanyDavid Völkel
 
KPI-Driven-Development
KPI-Driven-DevelopmentKPI-Driven-Development
KPI-Driven-DevelopmentDavid Völkel
 
TDD Trade-Offs @Softwerkskammer Karlsruhe
TDD Trade-Offs @Softwerkskammer KarlsruheTDD Trade-Offs @Softwerkskammer Karlsruhe
TDD Trade-Offs @Softwerkskammer KarlsruheDavid Völkel
 
Die Kunst der kleinen Schritte - XP Days Germany 2018
Die Kunst der kleinen Schritte - XP Days Germany 2018Die Kunst der kleinen Schritte - XP Days Germany 2018
Die Kunst der kleinen Schritte - XP Days Germany 2018David Völkel
 
Fake It Outside-In TDD Workshop @ Clean Code Days
Fake It Outside-In TDD Workshop @ Clean Code Days Fake It Outside-In TDD Workshop @ Clean Code Days
Fake It Outside-In TDD Workshop @ Clean Code Days David Völkel
 
Fake It Outside-In TDD @XP2017
Fake It Outside-In TDD @XP2017Fake It Outside-In TDD @XP2017
Fake It Outside-In TDD @XP2017David Völkel
 
Fake It Outside-In TDD
Fake It Outside-In TDDFake It Outside-In TDD
Fake It Outside-In TDDDavid Völkel
 
Mockist vs Classicists TDD
Mockist vs Classicists TDDMockist vs Classicists TDD
Mockist vs Classicists TDDDavid Völkel
 
Wann soll ich mocken?
Wann soll ich mocken?Wann soll ich mocken?
Wann soll ich mocken?David Völkel
 
Transformation Priority Premise @Softwerkskammer MUC
Transformation Priority Premise @Softwerkskammer MUCTransformation Priority Premise @Softwerkskammer MUC
Transformation Priority Premise @Softwerkskammer MUCDavid Völkel
 
Mockist vs. Classicists TDD
Mockist vs. Classicists TDDMockist vs. Classicists TDD
Mockist vs. Classicists TDDDavid Völkel
 
Infrastructure as Code for Beginners
Infrastructure as Code for BeginnersInfrastructure as Code for Beginners
Infrastructure as Code for BeginnersDavid Völkel
 
Unit vs. Integration Tests
Unit vs. Integration TestsUnit vs. Integration Tests
Unit vs. Integration TestsDavid Völkel
 
Integration Test Hell
Integration Test HellIntegration Test Hell
Integration Test HellDavid Völkel
 
Baby Steps TDD Approaches
Baby Steps TDD ApproachesBaby Steps TDD Approaches
Baby Steps TDD ApproachesDavid Völkel
 
Clean Test Code (Clean Code Days)
Clean Test Code (Clean Code Days)Clean Test Code (Clean Code Days)
Clean Test Code (Clean Code Days)David Völkel
 
Mockist vs. Classicists TDD
Mockist vs. Classicists TDDMockist vs. Classicists TDD
Mockist vs. Classicists TDDDavid Völkel
 

More from David Völkel (20)

Die Kunst der kleinen Schritte - Softwerkskammer Lübeck
Die Kunst der kleinen Schritte - Softwerkskammer LübeckDie Kunst der kleinen Schritte - Softwerkskammer Lübeck
Die Kunst der kleinen Schritte - Softwerkskammer Lübeck
 
KPI Driven-Development in der Praxis - XP Days Germany
KPI Driven-Development in der Praxis - XP Days GermanyKPI Driven-Development in der Praxis - XP Days Germany
KPI Driven-Development in der Praxis - XP Days Germany
 
KPI-Driven-Development
KPI-Driven-DevelopmentKPI-Driven-Development
KPI-Driven-Development
 
TDD Trade-Offs @Softwerkskammer Karlsruhe
TDD Trade-Offs @Softwerkskammer KarlsruheTDD Trade-Offs @Softwerkskammer Karlsruhe
TDD Trade-Offs @Softwerkskammer Karlsruhe
 
Trade Off!
Trade Off!Trade Off!
Trade Off!
 
Die Kunst der kleinen Schritte - XP Days Germany 2018
Die Kunst der kleinen Schritte - XP Days Germany 2018Die Kunst der kleinen Schritte - XP Days Germany 2018
Die Kunst der kleinen Schritte - XP Days Germany 2018
 
Fake It Outside-In TDD Workshop @ Clean Code Days
Fake It Outside-In TDD Workshop @ Clean Code Days Fake It Outside-In TDD Workshop @ Clean Code Days
Fake It Outside-In TDD Workshop @ Clean Code Days
 
Fake It Outside-In TDD @XP2017
Fake It Outside-In TDD @XP2017Fake It Outside-In TDD @XP2017
Fake It Outside-In TDD @XP2017
 
Fake It Outside-In TDD
Fake It Outside-In TDDFake It Outside-In TDD
Fake It Outside-In TDD
 
Mockist vs Classicists TDD
Mockist vs Classicists TDDMockist vs Classicists TDD
Mockist vs Classicists TDD
 
Wann soll ich mocken?
Wann soll ich mocken?Wann soll ich mocken?
Wann soll ich mocken?
 
Transformation Priority Premise @Softwerkskammer MUC
Transformation Priority Premise @Softwerkskammer MUCTransformation Priority Premise @Softwerkskammer MUC
Transformation Priority Premise @Softwerkskammer MUC
 
Mockist vs. Classicists TDD
Mockist vs. Classicists TDDMockist vs. Classicists TDD
Mockist vs. Classicists TDD
 
Infrastructure as Code for Beginners
Infrastructure as Code for BeginnersInfrastructure as Code for Beginners
Infrastructure as Code for Beginners
 
Unit vs. Integration Tests
Unit vs. Integration TestsUnit vs. Integration Tests
Unit vs. Integration Tests
 
Integration Test Hell
Integration Test HellIntegration Test Hell
Integration Test Hell
 
Baby Steps TDD Approaches
Baby Steps TDD ApproachesBaby Steps TDD Approaches
Baby Steps TDD Approaches
 
Clean Test Code (Clean Code Days)
Clean Test Code (Clean Code Days)Clean Test Code (Clean Code Days)
Clean Test Code (Clean Code Days)
 
Clean Test Code
Clean Test CodeClean Test Code
Clean Test Code
 
Mockist vs. Classicists TDD
Mockist vs. Classicists TDDMockist vs. Classicists TDD
Mockist vs. Classicists TDD
 

Recently uploaded

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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 Scriptwesley chun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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 productivityPrincipled Technologies
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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...apidays
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Global Day of Coderetreat Munich 2018