1 / 53

Coding Dojo

Coding Dojo. Agile Riga Day 2012 Johannes Brodwall , Principal Architect Steria Norway @ jhannes. Motivation. Master programming. through practice. What is TDD for you ?. What do you want to get out of the day ?. How do you want to apply this on Monday ?. Agenda.

haruki
Download Presentation

Coding Dojo

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CodingDojo Agile Riga Day 2012 Johannes Brodwall, Principal Architect Steria Norway @jhannes

  2. Motivation

  3. Master programming

  4. throughpractice

  5. What is TDD for you? What do youwant to getoutoftheday? How do youwant to applythisonMonday?

  6. Agenda

  7. 10:05: Demo of TDD and pair programming 10:20: Codingdojo 1: Prime numbers 11:20: Retrospective 11:30: Codingdojo 2: (Romans ifyou’reslow, Yahtzee ifyou’requick, minesweeper ifyou’re smart) 12:30: Lunch 13:15: Retrospective 13:45: Break (???!)! 14:00: Extreme startup 15:30: Retrospective

  8. TDD

  9. TDD No codewithout test Just enough test to red Just enoughcode to green (+ refactor!)

  10. Pair programming

  11. Ping/pong Driver/Navigator

  12. Whatbenefitscanyouget from pair programming?

  13. Kata 0: LeapYear

  14. Kata 1: Prime factors

  15. Kata: Prime factors 1 => [] 2 => [2] 3 => [3] 4 => [2,2] … 2*2*13*17*23*23 => [2,2,13,17,23,23]

  16. How didyourchoiceoflanguagehelp/hurt? Didyouchange drivers at goodfrequency? What tests didyou start with? Which tests didn’thelpyou? How didyoudeterminenext test? How didthesolution end up looking?

  17. Whatsurprisedyou? Whatdidyoulearn? What do youwant to achievenextround?

  18. Kata 2a: Minesweeper

  19. Given: var minefield = new Minefield([ "....", ".*..", ".*.*", "...*“ ])

  20. How didyourchoiceoflanguagehelp/hurt? Didyouchange drivers at goodfrequency? What tests didyou start with? Which tests didn’thelpyou? How didyoudeterminenext test? How didtheboundaryconditionsaffectyour test and code?

  21. Whatsurprisedyou? Whatdidyoulearn? What do youwant to achievenextround?

  22. Kata 2b: Yahtzee

  23. 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, sixes Pair, two pairs, threeof a kind, fourof a kind, full house Yahtzee Little straight, big straight Chance

  24. How didyourchoiceoflanguagehelp/hurt? Didyouchange drivers at goodfrequency? What tests didyou start with? Which tests didn’thelpyou? How didyoudeterminenext test? What is ({2,2,3,6,6}, «pair»)?

  25. Whatsurprisedyou? Whatdidyoulearn? What do youwant to achievenextround?

  26. Kata 2c: Romans

  27. Kata: Romans 1 => I 5 => V 1999 => MCMXCIX

  28. How didyourchoiceoflanguagehelp/hurt? Didyouchange drivers at goodfrequency? What tests didyou start with? Which tests didn’thelpyou? How didyoudeterminenext test? How didyouimplementrules for «IV» etc?

  29. Whatsurprisedyou? Whatdidyoulearn? What do youwant to achievenextround?

  30. Extreme startup

  31. The Extremestartupcodecompetition By Matt Wynne and Robert Chatly

  32. Orientation Download starting point (http://github.com/steria/extreme_startup_servers) Start server Register (http://192.168.11.182:3000/) Solvequestions

  33. Rules Cheat like mad! Onlyresults matter No destructionofproperty Obeylocallaws Don’t f$%! withworkshop computer

  34. Guidelines Work as you like (Tip: Use a languageyou know) Helpthosebehind Uploadyourcode (ifpossible)

  35. Orientation Download starting point (http://github.com/steria/extreme_startup_servers) Start server Register (http://192.168.11.182:3000/) Solvequestions

  36. Form teams!

  37. Round 1

  38. Round 1 (fight!)

  39. Round 1: Retrospective

  40. Testing? Teamwork?

  41. Round 2

  42. Round 2 (fight!)

  43. Round 2: Retrospective

  44. Testing? Howdidyou mess up? Howdidyoucheat? Whichquestionsdidyousolve? Annoyingquestions? Teamwork?

  45. Retrospective

  46. Whatsurprisedyou? Whatdidyoulearn? Whatwillyou do different in thefuture?

More Related