Code Retreat
Lemi Orhan Ergin
Agile Software Craftsman
practice to master your crafts
Agile Software Craftsman
Passionate Developer and Coach
Sony & GittiGidiyor/eBay
LEMİ ORHAN ERGİN
@lemiorhan
lemiorhanergi...
like to work alone
feel safe to work on confort zone
have to focus on daily work
skip writing tests
cannot find time to exp...
have to improve their craft
Developers
is the best way how we improve our craft
Practicing
How to Practice
Challenge
Repeat
Feedback
again and again and again and again
How to Practice
No Pressure
do not complete the task

but master it
practicing
!
mastering
Code Retreat is about
and
writing
the perfect code
Code Retreat is about
learning through pairing
extending your confort zone
no pressure of daily work
experimenting
learning new practices
thinki...
1 day coding
45 minutes sessions
Pair programming
Test first development
Different partners on each session
Different constra...
Schedule
Retrospective
Break
Closing
Ceramony
Coding 45
10
5 5 5 5 5
10 10 10 10
15
45 45 45 45 45
Lunch
History
The idea was spawned at
CodeMash Conference’09
!
The owners of the idea
Gary Bernhardt
Patrick Welsh
Nayan Hajratw...
Global Day of
Code Retreat
2000+ developers
150+ locations
20 timezones
16 hours of coding
6 continents
coderetreat.org
Co...
Code generation is not important
Generate code by thinking the design
Focus on naming test cases
Focus on Red/Green/Refact...
You are not your code
Learn to go slower
Focus on being better
Do not think about finishing
It’s all about practicing
Why D...
Language agnostic
Do not try to complete
Focus on practicing
Write code than open to accept change
Follow 4 rules of simpl...
SOLID Principles
Law of Demeter
Design Patterns
4 Rules of Simple Design
Design
Guidelines
Simple Design
Simple design in one that is
easy to change.
We don’t know exactly what is going to need to change
We’ll nev...
Simple Design
Tests pass
4 Rules of
“Tests pass” can be a significant factor in
making changes. If you have to ask how fast...
Simple Design
Express Intent
4 Rules of
Paying attention to the names and how your
code expresses itself is the key.
2
Simple Design
No Duplication (DRY)
4 Rules of
It’s not about code duplication, it’s about
knowledge duplication. Don’t rep...
Simple Design
Small
4 Rules of
Has fewer classes, modules, packages. Any not-
used code should be deleted. You should also...
http://blog.thecodewhisperer.com/2013/12/07/putting-an-age-old-battle-to-rest
“Putting an Age-Old Battle to Rest” by Joe R...
TDDWrite exactly one new test1
2 Run the test to make sure it fails
3 Write least amount of code to make the test pass
4 R...
Zero-player game
Cellular automation system
Devised by John Horton Conway
Evolution is determined by initial state
Each ce...
Each cell has 8 neighbours
and follows 3 rules
1 2 3
4
567
8
Any live cell with fewer than 2 live neighbours
dies of loneliness
Rule 1
Any live cell with more than 3 live neighbours
dies of overcrowding
Rule 2
Any dead cell with exactly 3 live neighbours
comes to life of warmth
Rule 3
Avoid to use primitives
Avoid to use conditional conditions (if, ?:, switch)
Avoid to use loops (while, for)
All methods r...
ENJOYremember
whatever you do
do not forget to
https://www.flickr.com/photos/fraserspeirs/3394902061
Joe O'Brien and Jim We...
sessions
let the
begin
We select 6 activities amoung the activities list after checking
TDD and pair programming experienc...
No constraints
Do your best
Ping-pong pair programming
No primitives
Use only immutable objects
No primitives
No conditionals
Max 5 lines of code
No way to return any value
Verbs instead of Nouns
Mute ping-pong
What, if anything, did you learn today?
What, if anything, surprised you today?
What, if anything, will you do differently?...
https://leanpub.com/4rulesofsimpledesign
The only thing we truly know about
software development is that we can
expect cha...
http://www.coderetreat.org
Coderetreat Community Network
http://blog.zilverline.com/2013/12/20/facilitating-the-global-day...
Lemİ orhan ergİn
Founder & Author @ agilistanbul.com
lemiorhan@agilistanbul.com
@lemiorhan
https://www.linkedin.com/in/lem...
Upcoming SlideShare
Loading in...5
×

Coderetreat - Practice to Master Your Crafts

5,405

Published on

Coderetreat is a one day intense workshop for software developers for imporving their development skills by practicing. This is the material I presented at the beginning of coderetreat I facilitated on May 2014.

Published in: Software, Technology

Coderetreat - Practice to Master Your Crafts

  1. 1. Code Retreat Lemi Orhan Ergin Agile Software Craftsman practice to master your crafts
  2. 2. Agile Software Craftsman Passionate Developer and Coach Sony & GittiGidiyor/eBay LEMİ ORHAN ERGİN @lemiorhan lemiorhanergin.com @lemiorhan
  3. 3. like to work alone feel safe to work on confort zone have to focus on daily work skip writing tests cannot find time to experiment not willing to learn new practices do not think about design focus on gettings things done over-engineer do not refactor Developers
  4. 4. have to improve their craft Developers
  5. 5. is the best way how we improve our craft Practicing
  6. 6. How to Practice Challenge Repeat Feedback again and again and again and again
  7. 7. How to Practice No Pressure do not complete the task
 but master it
  8. 8. practicing ! mastering Code Retreat is about and
  9. 9. writing the perfect code Code Retreat is about
  10. 10. learning through pairing extending your confort zone no pressure of daily work experimenting learning new practices thinking deeply about design building structures simple developing whenever required refactoring Code Retreat is about
  11. 11. 1 day coding 45 minutes sessions Pair programming Test first development Different partners on each session Different constraints Format
  12. 12. Schedule Retrospective Break Closing Ceramony Coding 45 10 5 5 5 5 5 10 10 10 10 15 45 45 45 45 45 Lunch
  13. 13. History The idea was spawned at CodeMash Conference’09 ! The owners of the idea Gary Bernhardt Patrick Welsh Nayan Hajratwala Corey Haines ! First was held on January 24, 2009 Corey Haines https://www.flickr.com/photos/charliekilo/7717370426
  14. 14. Global Day of Code Retreat 2000+ developers 150+ locations 20 timezones 16 hours of coding 6 continents coderetreat.org Coderetreat Community Network 14th of December https://www.flickr.com/photos/stef3d/4560661663
  15. 15. Code generation is not important Generate code by thinking the design Focus on naming test cases Focus on Red/Green/Refactor cycle Why Repeating?
  16. 16. You are not your code Learn to go slower Focus on being better Do not think about finishing It’s all about practicing Why Deleting?
  17. 17. Language agnostic Do not try to complete Focus on practicing Write code than open to accept change Follow 4 rules of simple design Delete code after each session Have fun Principles
  18. 18. SOLID Principles Law of Demeter Design Patterns 4 Rules of Simple Design Design Guidelines
  19. 19. Simple Design Simple design in one that is easy to change. We don’t know exactly what is going to need to change We’ll never be more ignorant than we are at this moment
  20. 20. Simple Design Tests pass 4 Rules of “Tests pass” can be a significant factor in making changes. If you have to ask how fast your test suite should be, it should be faster 1
  21. 21. Simple Design Express Intent 4 Rules of Paying attention to the names and how your code expresses itself is the key. 2
  22. 22. Simple Design No Duplication (DRY) 4 Rules of It’s not about code duplication, it’s about knowledge duplication. Don’t repeat yourself. Every piece of knowledge should have one and only one representation. 3
  23. 23. Simple Design Small 4 Rules of Has fewer classes, modules, packages. Any not- used code should be deleted. You should also check missing or duplicate abstractions. Over- extraction should also be not allowed. 4
  24. 24. http://blog.thecodewhisperer.com/2013/12/07/putting-an-age-old-battle-to-rest “Putting an Age-Old Battle to Rest” by Joe Rainsberger The Simple Design Dynamo
  25. 25. TDDWrite exactly one new test1 2 Run the test to make sure it fails 3 Write least amount of code to make the test pass 4 Refactor to remove duplication 5 Repeat the process Test Driven Development Test Driven Design Test First Development
  26. 26. Zero-player game Cellular automation system Devised by John Horton Conway Evolution is determined by initial state Each cell can be alive or dead Conway’s Game of Life Problem to solve:
  27. 27. Each cell has 8 neighbours and follows 3 rules 1 2 3 4 567 8
  28. 28. Any live cell with fewer than 2 live neighbours dies of loneliness Rule 1
  29. 29. Any live cell with more than 3 live neighbours dies of overcrowding Rule 2
  30. 30. Any dead cell with exactly 3 live neighbours comes to life of warmth Rule 3
  31. 31. Avoid to use primitives Avoid to use conditional conditions (if, ?:, switch) Avoid to use loops (while, for) All methods return void Max 5 lines of code per method Verbs instead of nouns Ping pong programming Mute ping pong programming Swap computers Do not use mouse Variations
  32. 32. ENJOYremember whatever you do do not forget to https://www.flickr.com/photos/fraserspeirs/3394902061 Joe O'Brien and Jim Weirich while doing ruby code review
  33. 33. sessions let the begin We select 6 activities amoung the activities list after checking TDD and pair programming experiences of the attendees. Every coderetreat has its own set of activities.
  34. 34. No constraints Do your best
  35. 35. Ping-pong pair programming
  36. 36. No primitives Use only immutable objects
  37. 37. No primitives No conditionals Max 5 lines of code
  38. 38. No way to return any value Verbs instead of Nouns
  39. 39. Mute ping-pong
  40. 40. What, if anything, did you learn today? What, if anything, surprised you today? What, if anything, will you do differently? closing
  41. 41. https://leanpub.com/4rulesofsimpledesign The only thing we truly know about software development is that we can expect changes to our system. Through concrete examples, let's explore ways to build flexible, adaptable software systems by better understanding Kent Beck's 4 Rules of Simple Design. Book from Corey Haines Published at LeanPub on 2014
  42. 42. http://www.coderetreat.org Coderetreat Community Network http://blog.zilverline.com/2013/12/20/facilitating-the-global-day-of-coderetreat-2013-in-amsterdam Facilitating the Global Day of Coderetreat 2013 in Amsterdam http://www.alexbolboaca.ro/wordpress/articles/how-to-organize-a-code-retreat How to organize a code retreat Coderetreat Facilitator Training https://vimeo.com/54519386 https://leanpub.com/4rulesofsimpledesign Understanding the 4 Rules of Simple Design
  43. 43. Lemİ orhan ergİn Founder & Author @ agilistanbul.com lemiorhan@agilistanbul.com @lemiorhan https://www.linkedin.com/in/lemiorhan @lemiorhan https://twitter.com/lemiorhan @lemiorhan https://github.com/lemiorhan @lemiorhan http://www.slideshare.net/lemiorhan agile software craftsman agilistanbul.com Turkish blog about agile development lemiorhanergin.com Official site having personal information
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×