Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Code retreat 
www.mozaicworks.com
www.mozaicworks.com 
Me 
Adi Bolboaca 
Organizational & Technical 
Trainer & Coach
2009, First time outside US
Why? 
Learn through pairing 
Extend your comfort zone 
Practice 
Experiment 
Learn new practices 
www.mozaicworks.com
How? 
1 day of coding 
Choose a simple problem 
6 pairing partners 
On average 135 minutes of coding 
6 different constrai...
How it started 
CodeMash conference 2009 
Gary Bernhardt 
Patrick Welsh 
Nayan Hajratwala 
Corey Haines 
www.mozaicworks.c...
How it started 
Repeatable 
Day-long 
Practice the fundamentals of programming 
Intense day of coding 
www.mozaicworks.com
Day structure 
15' introduction 
3 sessions of 45' coding + 15' retro&break 
1h lunch 
3 sessions of 45' coding + 15' retr...
Principles 
Language agnostic 
Do not try to finish the problem 
Delete the code after each session 
Focus on practicing 
...
How to take advantage 
1. Embrace the freedom of deleting the code 
2. Do what you always wanted but couldn't 
3. Get out ...
Prerequisites 
Computer 
Coding environment 
Testing framework 
Source control (git, svn, etc) 
www.mozaicworks.com
The four elements of simple design 
1) Passes its tests 
2) Minimizes duplication 
3) Maximizes clarity 
4) Has fewer elem...
Conway's game of life 
Having an infinite 2D orthogonal universe 
Being given an initial generation called a seed 
The fol...
Session 1: Understand the problem 
Find a pair 
Choose a programming language 
Setup the environment 
Choose an entry poin...
Conway's game of life 
Having an infinite 2D orthogonal universe 
Being given an initial generation called a seed 
The fol...
Session 2: Full test coverage 
100% test coverage during the session 
When test is below 100% the facilitator stops you 
f...
Session 3: Object calisthenics 
Concepts 
Use only one level of indentation per method 
Don’t use the else keyword 
Wrap a...
Code retreat 
1 hour Lunch 
www.mozaicworks.com
Session 4: Taking Baby Steps 
1) Initialize source control repository 
2) Start a timer for 2 minutes 
3) Write exactly on...
Session 5: Brutal Refactoring Game 
www.mozaicworks.com 
1) Lack of tests 
2) Name not from domain 
3) Name not expressing...
Session 6: Choose a 
constraint 
Each pair to choose their own constraint 
www.mozaicworks.com
Closing circle 
1) How did you feel? 
2) What did you learn today? 
3) What will you do differently tomorrow? 
www.mozaicw...
Code retreat 
Why? 
Learn through pairing 
Extend your comfort zone 
Practice 
Experiment 
Learn new practices 
www.mozaic...
Contact me 
● Remote pair-programming 
● Unit testing workshop 
● Test driven development workshop 
● Clean code workshop ...
Code retreat 
Extend your mentoring & training capacity 
Accelerate learning through communities 
of practice 
Grow your f...
Ha terminado este documento.
Descárguela y léala sin conexión.
Próximo SlideShare
Taking Baby Steps @AgileWorks Cluj 04 12 2014
Siguiente
  • Sé el primero en recomendar esto

Coderetreat @AgileFinland Helsinki 2014 11 13

  1. 1. Code retreat www.mozaicworks.com
  2. 2. www.mozaicworks.com Me Adi Bolboaca Organizational & Technical Trainer & Coach
  3. 3. 2009, First time outside US
  4. 4. Why? Learn through pairing Extend your comfort zone Practice Experiment Learn new practices www.mozaicworks.com
  5. 5. How? 1 day of coding Choose a simple problem 6 pairing partners On average 135 minutes of coding 6 different constraints A lot of fun! www.mozaicworks.com
  6. 6. How it started CodeMash conference 2009 Gary Bernhardt Patrick Welsh Nayan Hajratwala Corey Haines www.mozaicworks.com
  7. 7. How it started Repeatable Day-long Practice the fundamentals of programming Intense day of coding www.mozaicworks.com
  8. 8. Day structure 15' introduction 3 sessions of 45' coding + 15' retro&break 1h lunch 3 sessions of 45' coding + 15' retro&break 15' closing circle www.mozaicworks.com
  9. 9. Principles Language agnostic Do not try to finish the problem Delete the code after each session Focus on practicing Experiment each session Have fun! www.mozaicworks.com
  10. 10. How to take advantage 1. Embrace the freedom of deleting the code 2. Do what you always wanted but couldn't 3. Get out of your comfort zone 4. Pair with strangers in languages you don't know 5. What you learn is your responsibility
  11. 11. Prerequisites Computer Coding environment Testing framework Source control (git, svn, etc) www.mozaicworks.com
  12. 12. The four elements of simple design 1) Passes its tests 2) Minimizes duplication 3) Maximizes clarity 4) Has fewer elements www.mozaicworks.com
  13. 13. Conway's game of life Having an infinite 2D orthogonal universe Being given an initial generation called a seed The following rules are applied simultaneously A live cell having less than 2 live neighbors dies A live cell having 2 or 3 live neighbors lives A live cell having more than 3 neighbors dies A dead cell having 3 neighbors becomes alive www.mozaicworks.com
  14. 14. Session 1: Understand the problem Find a pair Choose a programming language Setup the environment Choose an entry point for the problem Start in 5 min www.mozaicworks.com
  15. 15. Conway's game of life Having an infinite 2D orthogonal universe Being given an initial generation called a seed The following rules are applied simultaneously A live cell having less than 2 live neighbors dies A live cell having 2 or 3 live neighbors lives A live cell having more than 3 neighbors dies A dead cell having 3 neighbors becomes alive www.mozaicworks.com
  16. 16. Session 2: Full test coverage 100% test coverage during the session When test is below 100% the facilitator stops you from adding functionalities until the coverage is back at 100% All your tests must contain the assert Install a code coverage tool for your language www.mozaicworks.com
  17. 17. Session 3: Object calisthenics Concepts Use only one level of indentation per method Don’t use the else keyword Wrap all primitives and strings Use only one dot per line Don’t abbreviate Keep all entities small Don’t use any classes with more than two instance variables Use first-class collections www.mozaicworks.com Don’t use any getters / setters / properties
  18. 18. Code retreat 1 hour Lunch www.mozaicworks.com
  19. 19. Session 4: Taking Baby Steps 1) Initialize source control repository 2) Start a timer for 2 minutes 3) Write exactly one test a) Timer rings, the test is red, then revert and go to 2) b) The test is green before the timer rings, then commit 4) Restart timer 5) Refactor a) Timer rings, the refactoring is not complete then revert and restart b) The refactoring is complete before the timer rings, commit and go to 2) Obs. The timers must run continuously, don't stop to talk! www.mozaicworks.com
  20. 20. Session 5: Brutal Refactoring Game www.mozaicworks.com 1) Lack of tests 2) Name not from domain 3) Name not expressing intent 4) Unnecessary if 5) Unnecessary else 6) Duplication of constant 7) Method does more than one thing 8) Primitive obsession 9) Feature envy 10) Method too long (> 6 lines) 11) Too many parameters (> 3) 12) Test – not unitary 13) Test – setup too complex 14) Test – unclear Act 15) Test - more than one assert 16) Test – no assert 17) Test – too many paths
  21. 21. Session 6: Choose a constraint Each pair to choose their own constraint www.mozaicworks.com
  22. 22. Closing circle 1) How did you feel? 2) What did you learn today? 3) What will you do differently tomorrow? www.mozaicworks.com
  23. 23. Code retreat Why? Learn through pairing Extend your comfort zone Practice Experiment Learn new practices www.mozaicworks.com
  24. 24. Contact me ● Remote pair-programming ● Unit testing workshop ● Test driven development workshop ● Clean code workshop ● Refactoring workshop ● Legacy code retreat ● Working FAST and Safe with existing code ● Code retreat www.mozaicworks.com
  25. 25. Code retreat Extend your mentoring & training capacity Accelerate learning through communities of practice Grow your functional leaders and top talents http://www.mozaicworks.com adrian.bolboaca@mozaicworks.com @adibolb

Vistas

Total de vistas

361

En Slideshare

0

De embebidos

0

Número de embebidos

4

Acciones

Descargas

4

Compartidos

0

Comentarios

0

Me gusta

0

×