SlideShare a Scribd company logo
1 of 23
Download to read offline
Code Retreat
june 24th 2011 - XEBIA
Welcome
Deliberate Practice

 Improve ability to perform a task


 Repetition, repetition, repetition...


 Not complete the task, but master it.
Simple Design
Run all tests and check they pass.


Don't Repeat Yourself


Reveal intent


Small methods & classes
Open your mind !

Try things you can't try @ work.
Do silly things that just *can't* work...
Explore, experiment.
Pair with as much people as you can
Don't be shy, try new languages.
Introduction

 a session lasts 40 minutes
 followed by a 10-15 minutes retrospective
 pair programming
 swap on each session
 delete all code after each session
Planning
10h00                                         14h00
        Code Session 1     Code Session 4

        Retrospective 1    Retrospective 4
11h00                                         15h00
        Code Session 2     Code Session 5

        Retrospective 2    Retrospective 5
12h00                                         16h00
        Code Session 3     Code Session 6

        Retrospective 3
                                              16h40
13h00                     Day Retrospective
                                              ...
            Lunch

14h00
TicTacToe
TicTacToe rules
1. a game is over when all fields are taken
2. a game is over when all fields in a column are taken by a
   player
3. a game is over when all fields in a row are taken by a player
4. a game is over when all fields in a diagonal are taken by a
   player
5. a player can take a field if not already taken
6. players take turns taking fields until the game is over
Session #1                     10h00 10h40
1. a game is over when all fields are taken
2. a game is over when all fields in a column are taken by a
   player
3. a game is over when all fields in a row are taken by a player
4. a game is over when all fields in a diagonal are taken by a
   player
5. a player can take a field if not already taken
6. players take turns taking fields until the game is over
Rétro #1             10h40 11h00
Does your code work at the end of the session ?
What is your implementation path ?
How was your pair programming experience ?
How was your TDD experience ? How did it help ?
Did you notice any code smells ?
Did you notice any communication smells ?
Any tips for the others ?
Session #2                     11h00 11h40
1. a game is over when all fields are taken
2. a game is over when all fields in a column are taken by a
   player
3. a game is over when all fields in a row are taken by a player
4. a game is over when all fields in a diagonal are taken by a
   player
5. a player can take a field if not already taken
6. players take turns taking fields until the game is over
Rétro #2             11h40 12h00
Does your code work at the end of the session ?
What is your implementation path ?
How was your pair programming experience ?
How was your TDD experience ? How did it help ?
Did you notice any code smells ?
Did you notice any communication smells ?
Any tips for the others ?
Session #3                     12h00 12h40
1. a game is over when all fields are taken
2. a game is over when all fields in a column are taken by a
   player
3. a game is over when all fields in a row are taken by a player
4. a game is over when all fields in a diagonal are taken by a
   player
5. a player can take a field if not already taken
6. players take turns taking fields until the game is over
Rétro #3             12h40 13h00
Does your code work at the end of the session ?
What is your implementation path ?
How was your pair programming experience ?
How was your TDD experience ? How did it help ?
Did you notice any code smells ?
Did you notice any communication smells ?
Any tips for the others ?
Lunch Time !
Session #4                     14h00 14h40
 1. a game is over when all fields are taken
 2. a game is over when all fields in a column are taken by a
    player
 3. a game is over when all fields in a row are taken by a player
 4. a game is over when all fields in a diagonal are taken by a
    player
 5. a player can take a field if not already taken
 6. players take turns taking fields until the game is over


TDD as you meant it || No mouse || Switch keyb.
TDD AS YOU MEANT IT

1. write exactly ONE failing test

2. make this test pass by first writing implementation code IN THE TEST METHOD

3. create a new implementation method by:
   1. doing extract method on implementation code created as per (2), or

   2. moving implementation code as per (2) into an existing implementation
      method

4. only ever create new methods IN THE TEST CLASS

5. only ever create implementation classes to provide a destination for extracting a
   method created as per (4).

6. populate implementation classes by doing move method from a test class into
   them

7. refactor as required

8. go to (1)
Rétro #4             14h40 15h00
Does your code work at the end of the session ?
What is your implementation path ?
How was your pair programming experience ?
How was your TDD experience ? How did it help ?
Did you notice any code smells ?
Did you notice any communication smells ?
Any tips for the others ?
Session #5                     15h00 15h40
1. a game is over when all fields are taken
2. a game is over when all fields in a column are taken by a
   player
3. a game is over when all fields in a row are taken by a player
4. a game is over when all fields in a diagonal are taken by a
   player
5. a player can take a field if not already taken
6. players take turns taking fields until the game is over



     No Loops || No if(s) || Small methods (<5)
Rétro #5             15h40 16h00
Does your code work at the end of the session ?
What is your implementation path ?
How was your pair programming experience ?
How was your TDD experience ? How did it help ?
Did you notice any code smells ?
Did you notice any communication smells ?
Any tips for the others ?
Session #6                     16h00 16h40
1. a game is over when all fields are taken
2. a game is over when all fields in a column are taken by a
   player
3. a game is over when all fields in a row are taken by a player
4. a game is over when all fields in a diagonal are taken by a
   player
5. a player can take a field if not already taken
6. players take turns taking fields until the game is over


     No Loops || No if(s) || Small methods (<5)
Day Retrospective

What did you learn today ?


What were you surprised about today ?


What will you apply starting Monday ?

More Related Content

Similar to Code retreat june24th

Liberating Structures 2 with blended f2f/online participation at #sfaddis
Liberating Structures 2 with blended f2f/online participation at #sfaddisLiberating Structures 2 with blended f2f/online participation at #sfaddis
Liberating Structures 2 with blended f2f/online participation at #sfaddisEuforic Services
 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)wolframkriesing
 
Book print & go soccer practice plans
Book   print & go soccer practice plansBook   print & go soccer practice plans
Book print & go soccer practice plansJock Dias
 
Alternate Dimension Portal/ Test Plans
Alternate Dimension Portal/ Test PlansAlternate Dimension Portal/ Test Plans
Alternate Dimension Portal/ Test PlansTracyWalker123
 
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
 
Coding Dojo: Baby Steps (2014)
Coding Dojo: Baby Steps (2014)Coding Dojo: Baby Steps (2014)
Coding Dojo: Baby Steps (2014)Peter Kofler
 
Mastering the Art of Facilitation
Mastering the Art of FacilitationMastering the Art of Facilitation
Mastering the Art of FacilitationIlan Kirschenbaum
 
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
 
Code Retreat Vsetin 12/08/2012
Code Retreat Vsetin 12/08/2012Code Retreat Vsetin 12/08/2012
Code Retreat Vsetin 12/08/2012rdresler
 

Similar to Code retreat june24th (13)

Agile Prague Coding Dojo
Agile Prague Coding DojoAgile Prague Coding Dojo
Agile Prague Coding Dojo
 
Liberating Structures 2 with blended f2f/online participation at #sfaddis
Liberating Structures 2 with blended f2f/online participation at #sfaddisLiberating Structures 2 with blended f2f/online participation at #sfaddis
Liberating Structures 2 with blended f2f/online participation at #sfaddis
 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)
 
Book print & go soccer practice plans
Book   print & go soccer practice plansBook   print & go soccer practice plans
Book print & go soccer practice plans
 
Alternate Dimension Portal/ Test Plans
Alternate Dimension Portal/ Test PlansAlternate Dimension Portal/ Test Plans
Alternate Dimension Portal/ Test Plans
 
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
 
Organise a Code Dojo!
Organise a Code Dojo!Organise a Code Dojo!
Organise a Code Dojo!
 
Coding Dojo: Baby Steps (2014)
Coding Dojo: Baby Steps (2014)Coding Dojo: Baby Steps (2014)
Coding Dojo: Baby Steps (2014)
 
Coding Dojo Applied
Coding Dojo AppliedCoding Dojo Applied
Coding Dojo Applied
 
Mastering the Art of Facilitation
Mastering the Art of FacilitationMastering the Art of Facilitation
Mastering the Art of Facilitation
 
Coderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsCoderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your Crafts
 
Playdoh... play on
Playdoh... play onPlaydoh... play on
Playdoh... play on
 
Code Retreat Vsetin 12/08/2012
Code Retreat Vsetin 12/08/2012Code Retreat Vsetin 12/08/2012
Code Retreat Vsetin 12/08/2012
 

More from Jean-Laurent de Morlhon

Software Craftsmanship : en Pratique - AgileTour
Software Craftsmanship : en Pratique - AgileTourSoftware Craftsmanship : en Pratique - AgileTour
Software Craftsmanship : en Pratique - AgileTourJean-Laurent de Morlhon
 
Comment j'ai remplacé 30% de mes développeurs en adoptant l'agilité... et aut...
Comment j'ai remplacé 30% de mes développeurs en adoptant l'agilité... et aut...Comment j'ai remplacé 30% de mes développeurs en adoptant l'agilité... et aut...
Comment j'ai remplacé 30% de mes développeurs en adoptant l'agilité... et aut...Jean-Laurent de Morlhon
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Jean-Laurent de Morlhon
 
Construire une ligne de produit logiciel "toyotisme ou fordisme" ?
Construire une ligne de produit logiciel "toyotisme ou fordisme" ?Construire une ligne de produit logiciel "toyotisme ou fordisme" ?
Construire une ligne de produit logiciel "toyotisme ou fordisme" ?Jean-Laurent de Morlhon
 

More from Jean-Laurent de Morlhon (10)

Culture du Programmeur
Culture du ProgrammeurCulture du Programmeur
Culture du Programmeur
 
Git fu
Git fuGit fu
Git fu
 
Software Craftsmanship : en Pratique - AgileTour
Software Craftsmanship : en Pratique - AgileTourSoftware Craftsmanship : en Pratique - AgileTour
Software Craftsmanship : en Pratique - AgileTour
 
Software Craftsmanship: En pratique
Software Craftsmanship: En pratiqueSoftware Craftsmanship: En pratique
Software Craftsmanship: En pratique
 
SVN to GitHUb
SVN to GitHUbSVN to GitHUb
SVN to GitHUb
 
Comment j'ai remplacé 30% de mes développeurs en adoptant l'agilité... et aut...
Comment j'ai remplacé 30% de mes développeurs en adoptant l'agilité... et aut...Comment j'ai remplacé 30% de mes développeurs en adoptant l'agilité... et aut...
Comment j'ai remplacé 30% de mes développeurs en adoptant l'agilité... et aut...
 
Scrum, 3 Ans après...
Scrum, 3 Ans après...Scrum, 3 Ans après...
Scrum, 3 Ans après...
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
 
Scrum & VIdal Retour d'experience
Scrum & VIdal Retour d'experienceScrum & VIdal Retour d'experience
Scrum & VIdal Retour d'experience
 
Construire une ligne de produit logiciel "toyotisme ou fordisme" ?
Construire une ligne de produit logiciel "toyotisme ou fordisme" ?Construire une ligne de produit logiciel "toyotisme ou fordisme" ?
Construire une ligne de produit logiciel "toyotisme ou fordisme" ?
 

Recently uploaded

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
[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.pdfhans926745
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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.pptxHampshireHUG
 
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
 
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
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
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
 
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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
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
 
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
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Recently uploaded (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
[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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
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
 
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
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
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
 
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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
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 ...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
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
 
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
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

Code retreat june24th

  • 1. Code Retreat june 24th 2011 - XEBIA
  • 3. Deliberate Practice Improve ability to perform a task Repetition, repetition, repetition... Not complete the task, but master it.
  • 4. Simple Design Run all tests and check they pass. Don't Repeat Yourself Reveal intent Small methods & classes
  • 5. Open your mind ! Try things you can't try @ work. Do silly things that just *can't* work... Explore, experiment. Pair with as much people as you can Don't be shy, try new languages.
  • 6. Introduction a session lasts 40 minutes followed by a 10-15 minutes retrospective pair programming swap on each session delete all code after each session
  • 7. Planning 10h00 14h00 Code Session 1 Code Session 4 Retrospective 1 Retrospective 4 11h00 15h00 Code Session 2 Code Session 5 Retrospective 2 Retrospective 5 12h00 16h00 Code Session 3 Code Session 6 Retrospective 3 16h40 13h00 Day Retrospective ... Lunch 14h00
  • 9. TicTacToe rules 1. a game is over when all fields are taken 2. a game is over when all fields in a column are taken by a player 3. a game is over when all fields in a row are taken by a player 4. a game is over when all fields in a diagonal are taken by a player 5. a player can take a field if not already taken 6. players take turns taking fields until the game is over
  • 10. Session #1 10h00 10h40 1. a game is over when all fields are taken 2. a game is over when all fields in a column are taken by a player 3. a game is over when all fields in a row are taken by a player 4. a game is over when all fields in a diagonal are taken by a player 5. a player can take a field if not already taken 6. players take turns taking fields until the game is over
  • 11. Rétro #1 10h40 11h00 Does your code work at the end of the session ? What is your implementation path ? How was your pair programming experience ? How was your TDD experience ? How did it help ? Did you notice any code smells ? Did you notice any communication smells ? Any tips for the others ?
  • 12. Session #2 11h00 11h40 1. a game is over when all fields are taken 2. a game is over when all fields in a column are taken by a player 3. a game is over when all fields in a row are taken by a player 4. a game is over when all fields in a diagonal are taken by a player 5. a player can take a field if not already taken 6. players take turns taking fields until the game is over
  • 13. Rétro #2 11h40 12h00 Does your code work at the end of the session ? What is your implementation path ? How was your pair programming experience ? How was your TDD experience ? How did it help ? Did you notice any code smells ? Did you notice any communication smells ? Any tips for the others ?
  • 14. Session #3 12h00 12h40 1. a game is over when all fields are taken 2. a game is over when all fields in a column are taken by a player 3. a game is over when all fields in a row are taken by a player 4. a game is over when all fields in a diagonal are taken by a player 5. a player can take a field if not already taken 6. players take turns taking fields until the game is over
  • 15. Rétro #3 12h40 13h00 Does your code work at the end of the session ? What is your implementation path ? How was your pair programming experience ? How was your TDD experience ? How did it help ? Did you notice any code smells ? Did you notice any communication smells ? Any tips for the others ?
  • 17. Session #4 14h00 14h40 1. a game is over when all fields are taken 2. a game is over when all fields in a column are taken by a player 3. a game is over when all fields in a row are taken by a player 4. a game is over when all fields in a diagonal are taken by a player 5. a player can take a field if not already taken 6. players take turns taking fields until the game is over TDD as you meant it || No mouse || Switch keyb.
  • 18. TDD AS YOU MEANT IT 1. write exactly ONE failing test 2. make this test pass by first writing implementation code IN THE TEST METHOD 3. create a new implementation method by: 1. doing extract method on implementation code created as per (2), or 2. moving implementation code as per (2) into an existing implementation method 4. only ever create new methods IN THE TEST CLASS 5. only ever create implementation classes to provide a destination for extracting a method created as per (4). 6. populate implementation classes by doing move method from a test class into them 7. refactor as required 8. go to (1)
  • 19. Rétro #4 14h40 15h00 Does your code work at the end of the session ? What is your implementation path ? How was your pair programming experience ? How was your TDD experience ? How did it help ? Did you notice any code smells ? Did you notice any communication smells ? Any tips for the others ?
  • 20. Session #5 15h00 15h40 1. a game is over when all fields are taken 2. a game is over when all fields in a column are taken by a player 3. a game is over when all fields in a row are taken by a player 4. a game is over when all fields in a diagonal are taken by a player 5. a player can take a field if not already taken 6. players take turns taking fields until the game is over No Loops || No if(s) || Small methods (<5)
  • 21. Rétro #5 15h40 16h00 Does your code work at the end of the session ? What is your implementation path ? How was your pair programming experience ? How was your TDD experience ? How did it help ? Did you notice any code smells ? Did you notice any communication smells ? Any tips for the others ?
  • 22. Session #6 16h00 16h40 1. a game is over when all fields are taken 2. a game is over when all fields in a column are taken by a player 3. a game is over when all fields in a row are taken by a player 4. a game is over when all fields in a diagonal are taken by a player 5. a player can take a field if not already taken 6. players take turns taking fields until the game is over No Loops || No if(s) || Small methods (<5)
  • 23. Day Retrospective What did you learn today ? What were you surprised about today ? What will you apply starting Monday ?