Your SlideShare is downloading. ×
0
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Agile Prague Coding Dojo
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Agile Prague Coding Dojo

889

Published on

Coding Dojo workshop at Agile Prague 2012, september 5th

Coding Dojo workshop at Agile Prague 2012, september 5th

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
889
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Note to translator: Here, I willexplainhow pair programmingcanwork in practice:One person writes a failing test and theother person writesthecode to make it pass. Thenthe person whomadethe test pass writesthenext test.In theexamplewithme and Boris, weswitched «drivers» (the person at thekeyboard) aboutonce a minute. On real lifeproject, I usuallyexperiencethatweswitch drivers everytenminutes or so.It’s alsoimportant to refactorbetween tests. I like to onlyrefactorwhenthecode is green. This way I knowthatthecodedoesn’t stop working. Therearetwoways to thinkaboutthis:Either, ifyoucan, refactorthecode and the tests a little to «getready» for thenext testOr, ifyouseethatyoucan’t make the test pass, commentout (or @Ignore) the test and refactoron green.
  • Transcript

    • 1. Coding Dojo AgilePrague 2012 Johannes Brodwall, Principal Architect Steria Norway @jhannes
    • 2. Prague Coding Dojo?http://johannesbrodwall.com/2011/12/18/ how-to-start-a-coding-dojo/
    • 3. Motivation
    • 4. Master programming
    • 5. through practice
    • 6. What does good programming mean for you?What do you want to getout of the day? How do you want to apply this tomorrow?
    • 7. Agenda
    • 8. • 9:10: Demo of TDD and pair programming• 9:20: Randori style Leap Years kata with everyone• 9:40: Paired style Prime Factors• 10:10: Retrospective• 10:30: Paired style Prime Factors, take 2• 11:00: Coding dojo 2: Romans if you’re slow, Yahtzee if you’re quick, minesweeper if you’re smart• 12:00: Retrospective• 12:15: Lunch (?)• 13:00: Extreme startup – first round• 13:30: Break• 13:45: Extreme startup – second round• 15:45: Wrap-up
    • 9. TDD
    • 10. TDD No code without test Just enough test to redJust enough code to green (+ refactor!)
    • 11. Pair programming
    • 12. Ping/pongDriver/Navigator
    • 13. Failing test Write code Failing testWrite codeFailing test
    • 14. Failing test Write code Refactor code and tests Failing testWrite code Refactor code and testsFailing test
    • 15. What benefits can you get from pair programming?
    • 16. Kata 0: Leap Year
    • 17. Kata 1: Prime factors
    • 18. Kata: Prime factors 1 => [] 2 => [2] 3 => [3] 4 => [2,2] …2*2*13*17*23*23 => [2,2,13,17,23,23]
    • 19. How did your choice of language help/hurt? Did you change What tests did you drivers at good start with? frequency?Which tests didn’thelp you? How did you determine next test? How did the solution end up looking?
    • 20. What surprised you?What did you learn? What do you want to achieve next round?
    • 21. Kata 2a:Minesweeper
    • 22. Given:var minefield = new Minefield([ "....", ".*..", ".*.*", "...*“ ])
    • 23. What surprised you?What did you learn? What do you want to achieve next round?
    • 24. How did your choice of language help/hurt? Did you change What tests did you drivers at good start with? frequency?Which tests didn’thelp you? How did you determine next test? How did the boundary conditions affect your test and code?
    • 25. Kata 2b: Yahtzee
    • 26. Kata: Yahtzee ({1,1,1,1,1}, «ones»} => 5 ({1,1,1,1,1}, «sixes»} => 0 ({1,1,1,1,1}, «yahtzee»} => 50 Ones, twos, threes, fours, fives, sixesPair, two pairs, three of a kind, four of a kind, full house Yahtzee Little straight, big straight Chance
    • 27. What surprised you?What did you learn? What do you want to achieve next round?
    • 28. How did your choice of language help/hurt? Did you change What tests did you drivers at good start with? frequency?Which tests didn’thelp you? How did you determine next test? What is ({2,2,3,6,6}, «pair»)?
    • 29. Kata 2c: Romans
    • 30. Kata: Romans 1 => I 5 => V 1999 => MCMXCIX
    • 31. What surprised you?What did you learn? What do you want to achieve next round?
    • 32. How did your choice of language help/hurt? Did you change What tests did you drivers at good start with? frequency?Which tests didn’thelp you? How did you determine next test? How did you implement rules for «IV» etc?
    • 33. Extreme startup
    • 34. The Extreme startup code competition By Matt Wynne and Robert Chatly
    • 35. Orientation Download starting point(http://github.com/steria/extreme_startup_servers) Start server Register (http://192.168.155.249:3000/) Solve questions
    • 36. Rules Cheat like mad! Only results matter No destruction of property Obey local lawsDon’t f$%! with workshop computer
    • 37. Guidelines Work as you like(Tip: Use a language you know) Help those behind Upload your code (if possible)
    • 38. Orientation Download starting point(http://github.com/steria/extreme_startup_servers) Start server Register (http://192.168.155.249:3000/) Solve questions
    • 39. Form teams!
    • 40. Round 1
    • 41. Round 1 (fight!)
    • 42. Round 1:Retrospective
    • 43. What surprised you?What did you learn? What do you want to achieve next round?
    • 44. Round 2
    • 45. Round 2 (fight!)
    • 46. Round 2:Retrospective
    • 47. CourseRetrospective
    • 48. What surprised you?What did you learn? How will you change how you work?
    • 49. Testing? How did you mess up?How did you cheat? Which questions did you solve? Annoying questions? Teamwork?
    • 50. Thank you johannes@brodwall.com http://johannesbrodwall.com http://twitter.com/jhannes

    ×