agile prague coding dojo
DESCRIPTION
Coding Dojo workshop at Agile Prague 2012, september 5thTRANSCRIPT
![Page 1: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/1.jpg)
Coding Dojo
AgilePrague 2012Johannes Brodwall, Principal Architect
Steria Norway
@jhannes
![Page 2: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/2.jpg)
![Page 3: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/3.jpg)
![Page 4: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/4.jpg)
![Page 5: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/5.jpg)
![Page 6: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/6.jpg)
Prague Coding Dojo?http://johannesbrodwall.com/2011/12/18/how-to-start-a-coding-dojo/
![Page 7: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/7.jpg)
Motivation
![Page 8: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/8.jpg)
Master programming
![Page 9: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/9.jpg)
through practice
![Page 10: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/10.jpg)
What does good programming mean for you?
How do you want to apply this tomorrow?
What do you want to get out of the day?
![Page 11: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/11.jpg)
Agenda
![Page 12: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/12.jpg)
• 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
![Page 13: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/13.jpg)
TDD
![Page 14: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/14.jpg)
TDDNo code without test
Just enough test to red
Just enough code to green
(+ refactor!)
![Page 15: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/15.jpg)
Pair programming
![Page 16: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/16.jpg)
Ping/pong
Driver/Navigator
![Page 17: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/17.jpg)
Failing test
Write code
Failing test
Write code
Failing test
![Page 18: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/18.jpg)
Failing test
Write code
Failing test
Write code
Failing test
Refactor code and tests
Refactor code and tests
![Page 19: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/19.jpg)
What benefits can you get from pair programming?
![Page 20: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/20.jpg)
Kata 0: Leap Year
![Page 21: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/21.jpg)
Kata 1: Prime factors
![Page 22: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/22.jpg)
Kata: Prime factors1 => []
2 => [2]
3 => [3]
4 => [2,2]
…
2*2*13*17*23*23 => [2,2,13,17,23,23]
![Page 23: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/23.jpg)
Did you change drivers at good frequency?
How did the solution end up looking?
How did you determine next test?
What tests did you start with?
Which tests didn’t help you?
How did your choice of language help/hurt?
![Page 24: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/24.jpg)
What surprised you?
What do you want to achieve next round?
What did you learn?
![Page 25: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/25.jpg)
Kata 2a: Minesweeper
![Page 26: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/26.jpg)
Given:var minefield = new Minefield([ "....", ".*..", ".*.*", "...*“ ])
![Page 27: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/27.jpg)
![Page 28: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/28.jpg)
What surprised you?
What do you want to achieve next round?
What did you learn?
![Page 29: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/29.jpg)
Did you change drivers at good frequency?
How did the boundary conditions affect your test and code?
How did you determine next test?
What tests did you start with?
Which tests didn’t help you?
How did your choice of language help/hurt?
![Page 30: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/30.jpg)
Kata 2b: Yahtzee
![Page 31: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/31.jpg)
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, three of a kind, four of a kind, full house
Yahtzee
Little straight, big straight
Chance
![Page 32: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/32.jpg)
What surprised you?
What do you want to achieve next round?
What did you learn?
![Page 33: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/33.jpg)
Did you change drivers at good frequency?
What is ({2,2,3,6,6}, «pair»)?
How did you determine next test?
What tests did you start with?
Which tests didn’t help you?
How did your choice of language help/hurt?
![Page 34: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/34.jpg)
Kata 2c: Romans
![Page 35: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/35.jpg)
Kata: Romans1 => I
5 => V
1999 => MCMXCIX
![Page 36: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/36.jpg)
What surprised you?
What do you want to achieve next round?
What did you learn?
![Page 37: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/37.jpg)
Did you change drivers at good frequency?
How did you implement rules for «IV» etc?
How did you determine next test?
What tests did you start with?
Which tests didn’t help you?
How did your choice of language help/hurt?
![Page 38: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/38.jpg)
Extreme startup
![Page 39: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/39.jpg)
The Extreme startup code competition
By Matt Wynne and Robert Chatly
![Page 40: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/40.jpg)
OrientationDownload starting point
(http://github.com/steria/extreme_startup_servers)
Start server
Register(http://192.168.155.249:3000/)
Solve questions
![Page 41: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/41.jpg)
RulesCheat like mad!
Only results matter
No destruction of property
Obey local laws
Don’t f$%! with workshop computer
![Page 42: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/42.jpg)
GuidelinesWork as you like
(Tip: Use a language you know)
Help those behind
Upload your code (if possible)
![Page 43: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/43.jpg)
OrientationDownload starting point
(http://github.com/steria/extreme_startup_servers)
Start server
Register(http://192.168.155.249:3000/)
Solve questions
![Page 44: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/44.jpg)
Form teams!
![Page 45: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/45.jpg)
Round 1
![Page 46: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/46.jpg)
Round 1
(fight!)
![Page 47: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/47.jpg)
Round 1: Retrospective
![Page 48: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/48.jpg)
What surprised you?
What do you want to achieve next round?
What did you learn?
![Page 49: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/49.jpg)
Round 2
![Page 50: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/50.jpg)
Round 2
(fight!)
![Page 51: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/51.jpg)
Round 2: Retrospective
![Page 52: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/52.jpg)
Course
Retrospective
![Page 53: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/53.jpg)
What surprised you?
How will you change how you work?
What did you learn?
![Page 54: Agile Prague Coding Dojo](https://reader035.vdocuments.mx/reader035/viewer/2022081414/54c0e9bf4a79592b7a8b456f/html5/thumbnails/54.jpg)
Testing?
Teamwork?
Which questions did you solve?
Annoying questions?
How did you mess up?
How did you cheat?