Code Retreatjune 24th 2011 - XEBIA
Welcome
Deliberate Practice Improve ability to perform a task Repetition, repetition, repetition... Not complete the task, but mas...
Simple DesignRun all tests and check they pass.Dont Repeat YourselfReveal intentSmall methods & classes
Open your mind !Try things you cant try @ work.Do silly things that just *cant* work...Explore, experiment.Pair with as mu...
Introduction a session lasts 40 minutes followed by a 10-15 minutes retrospective pair programming swap on each session de...
Planning10h00                                         14h00        Code Session 1     Code Session 4        Retrospective ...
TicTacToe
TicTacToe rules1. a game is over when all fields are taken2. a game is over when all fields in a column are taken by a   pla...
Session #1                     10h00 10h401. a game is over when all fields are taken2. a game is over when all fields in a ...
Rétro #1             10h40 11h00Does your code work at the end of the session ?What is your implementation path ?How was y...
Session #2                     11h00 11h401. a game is over when all fields are taken2. a game is over when all fields in a ...
Rétro #2             11h40 12h00Does your code work at the end of the session ?What is your implementation path ?How was y...
Session #3                     12h00 12h401. a game is over when all fields are taken2. a game is over when all fields in a ...
Rétro #3             12h40 13h00Does your code work at the end of the session ?What is your implementation path ?How was y...
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 ...
TDD AS YOU MEANT IT1. write exactly ONE failing test2. make this test pass by first writing implementation code IN THE TEST...
Rétro #4             14h40 15h00Does your code work at the end of the session ?What is your implementation path ?How was y...
Session #5                     15h00 15h401. a game is over when all fields are taken2. a game is over when all fields in a ...
Rétro #5             15h40 16h00Does your code work at the end of the session ?What is your implementation path ?How was y...
Session #6                     16h00 16h401. a game is over when all fields are taken2. a game is over when all fields in a ...
Day RetrospectiveWhat did you learn today ?What were you surprised about today ?What will you apply starting Monday ?
Upcoming SlideShare
Loading in …5
×

Code retreat june24th

997 views

Published on

Slides supporting our June 24th 2011 CodeRetreat at Xebia TechEvent.

  • Be the first to comment

Code retreat june24th

  1. 1. Code Retreatjune 24th 2011 - XEBIA
  2. 2. Welcome
  3. 3. Deliberate Practice Improve ability to perform a task Repetition, repetition, repetition... Not complete the task, but master it.
  4. 4. Simple DesignRun all tests and check they pass.Dont Repeat YourselfReveal intentSmall methods & classes
  5. 5. Open your mind !Try things you cant try @ work.Do silly things that just *cant* work...Explore, experiment.Pair with as much people as you canDont be shy, try new languages.
  6. 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. 7. Planning10h00 14h00 Code Session 1 Code Session 4 Retrospective 1 Retrospective 411h00 15h00 Code Session 2 Code Session 5 Retrospective 2 Retrospective 512h00 16h00 Code Session 3 Code Session 6 Retrospective 3 16h4013h00 Day Retrospective ... Lunch14h00
  8. 8. TicTacToe
  9. 9. TicTacToe rules1. a game is over when all fields are taken2. a game is over when all fields in a column are taken by a player3. a game is over when all fields in a row are taken by a player4. a game is over when all fields in a diagonal are taken by a player5. a player can take a field if not already taken6. players take turns taking fields until the game is over
  10. 10. Session #1 10h00 10h401. a game is over when all fields are taken2. a game is over when all fields in a column are taken by a player3. a game is over when all fields in a row are taken by a player4. a game is over when all fields in a diagonal are taken by a player5. a player can take a field if not already taken6. players take turns taking fields until the game is over
  11. 11. Rétro #1 10h40 11h00Does 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. 12. Session #2 11h00 11h401. a game is over when all fields are taken2. a game is over when all fields in a column are taken by a player3. a game is over when all fields in a row are taken by a player4. a game is over when all fields in a diagonal are taken by a player5. a player can take a field if not already taken6. players take turns taking fields until the game is over
  13. 13. Rétro #2 11h40 12h00Does 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. 14. Session #3 12h00 12h401. a game is over when all fields are taken2. a game is over when all fields in a column are taken by a player3. a game is over when all fields in a row are taken by a player4. a game is over when all fields in a diagonal are taken by a player5. a player can take a field if not already taken6. players take turns taking fields until the game is over
  15. 15. Rétro #3 12h40 13h00Does 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 ?
  16. 16. Lunch Time !
  17. 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 overTDD as you meant it || No mouse || Switch keyb.
  18. 18. TDD AS YOU MEANT IT1. write exactly ONE failing test2. make this test pass by first writing implementation code IN THE TEST METHOD3. 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 method4. only ever create new methods IN THE TEST CLASS5. 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 them7. refactor as required8. go to (1)
  19. 19. Rétro #4 14h40 15h00Does 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. 20. Session #5 15h00 15h401. a game is over when all fields are taken2. a game is over when all fields in a column are taken by a player3. a game is over when all fields in a row are taken by a player4. a game is over when all fields in a diagonal are taken by a player5. a player can take a field if not already taken6. players take turns taking fields until the game is over No Loops || No if(s) || Small methods (<5)
  21. 21. Rétro #5 15h40 16h00Does 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. 22. Session #6 16h00 16h401. a game is over when all fields are taken2. a game is over when all fields in a column are taken by a player3. a game is over when all fields in a row are taken by a player4. a game is over when all fields in a diagonal are taken by a player5. a player can take a field if not already taken6. players take turns taking fields until the game is over No Loops || No if(s) || Small methods (<5)
  23. 23. Day RetrospectiveWhat did you learn today ?What were you surprised about today ?What will you apply starting Monday ?

×