agile prague coding dojo

55
Coding Dojo AgilePrague 2012 Johannes Brodwall, Principal Architect Steria Norway @jhannes

Upload: johannes-brodwall

Post on 22-Jan-2015

845 views

Category:

Entertainment & Humor


1 download

DESCRIPTION

Coding Dojo workshop at Agile Prague 2012, september 5th

TRANSCRIPT

Page 1: Agile Prague Coding Dojo

Coding Dojo

AgilePrague 2012Johannes Brodwall, Principal Architect

Steria Norway

@jhannes

Page 2: Agile Prague Coding Dojo
Page 3: Agile Prague Coding Dojo
Page 4: Agile Prague Coding Dojo
Page 5: Agile Prague Coding Dojo
Page 6: Agile Prague Coding Dojo

Prague Coding Dojo?http://johannesbrodwall.com/2011/12/18/how-to-start-a-coding-dojo/

Page 7: Agile Prague Coding Dojo

Motivation

Page 8: Agile Prague Coding Dojo

Master programming

Page 9: Agile Prague Coding Dojo

through practice

Page 10: Agile Prague Coding Dojo

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

Agenda

Page 12: Agile Prague Coding Dojo

• 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

TDD

Page 14: Agile Prague Coding Dojo

TDDNo code without test

Just enough test to red

Just enough code to green

(+ refactor!)

Page 15: Agile Prague Coding Dojo

Pair programming

Page 16: Agile Prague Coding Dojo

Ping/pong

Driver/Navigator

Page 17: Agile Prague Coding Dojo

Failing test

Write code

Failing test

Write code

Failing test

Page 18: Agile Prague Coding Dojo

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 19: Agile Prague Coding Dojo

What benefits can you get from pair programming?

Page 20: Agile Prague Coding Dojo

Kata 0: Leap Year

Page 21: Agile Prague Coding Dojo

Kata 1: Prime factors

Page 22: Agile Prague Coding Dojo

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

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

What surprised you?

What do you want to achieve next round?

What did you learn?

Page 25: Agile Prague Coding Dojo

Kata 2a: Minesweeper

Page 26: Agile Prague Coding Dojo

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

Page 27: Agile Prague Coding Dojo
Page 28: Agile Prague Coding Dojo

What surprised you?

What do you want to achieve next round?

What did you learn?

Page 29: Agile Prague Coding Dojo

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

Kata 2b: Yahtzee

Page 31: Agile Prague Coding Dojo

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

What surprised you?

What do you want to achieve next round?

What did you learn?

Page 33: Agile Prague Coding Dojo

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

Kata 2c: Romans

Page 35: Agile Prague Coding Dojo

Kata: Romans1 => I

5 => V

1999 => MCMXCIX

Page 36: Agile Prague Coding Dojo

What surprised you?

What do you want to achieve next round?

What did you learn?

Page 37: Agile Prague Coding Dojo

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

Extreme startup

Page 39: Agile Prague Coding Dojo

The Extreme startup code competition

By Matt Wynne and Robert Chatly

Page 41: Agile Prague Coding Dojo

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

GuidelinesWork as you like

(Tip: Use a language you know)

Help those behind

Upload your code (if possible)

Page 43: Agile Prague Coding Dojo

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

Form teams!

Page 45: Agile Prague Coding Dojo

Round 1

Page 46: Agile Prague Coding Dojo

Round 1

(fight!)

Page 47: Agile Prague Coding Dojo

Round 1: Retrospective

Page 48: Agile Prague Coding Dojo

What surprised you?

What do you want to achieve next round?

What did you learn?

Page 49: Agile Prague Coding Dojo

Round 2

Page 50: Agile Prague Coding Dojo

Round 2

(fight!)

Page 51: Agile Prague Coding Dojo

Round 2: Retrospective

Page 52: Agile Prague Coding Dojo

Course

Retrospective

Page 53: Agile Prague Coding Dojo

What surprised you?

How will you change how you work?

What did you learn?

Page 54: Agile Prague Coding Dojo

Testing?

Teamwork?

Which questions did you solve?

Annoying questions?

How did you mess up?

How did you cheat?