experience agile programming

51
Experience Agile Programming Йоханнес Бродвалл Стерия Норвегия Featuring: Boris Staal

Upload: johannes-brodwall

Post on 07-Nov-2014

1.189 views

Category:

Technology


0 download

DESCRIPTION

Experience Agile Programming as presented at Software People 2012 in Moscow. Guest starring Boris Staal

TRANSCRIPT

Page 1: Experience Agile Programming

Experience Agile ProgrammingЙоханнес БродваллСтерия Норвегия

Featuring:Boris Staal

Page 2: Experience Agile Programming

Experience Agile Programming

Software People 2012, Moscow

Йоханнес Бродвалл, Just-a-programmer

Стерия Норвегия

@jhannesFeaturing: Boris Staal

Page 3: Experience Agile Programming

Goal• To have fun now!

• For you to have fun now!• For you to have fun later

(stretch goal)

Page 4: Experience Agile Programming

Agenda• Description

•Demonstration with Boris Staal• Discussion

• Tips and tricks

Page 5: Experience Agile Programming

Please:• Talk about what you see to the person

next to you (whisper)•Tweet to @jhannes and @_inossidabile

in English or Russian

Page 6: Experience Agile Programming

Description

Page 7: Experience Agile Programming

Kata: Minesweeper

Page 8: Experience Agile Programming
Page 9: Experience Agile Programming
Page 10: Experience Agile Programming

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

Page 11: Experience Agile Programming

What do watch for• How we interact

• How we progress through the code• How we design

• How we use the language

Page 12: Experience Agile Programming

Demonstration(Featuring Boris Staal)

Page 13: Experience Agile Programming

What did you see?

Page 14: Experience Agile Programming

What did you see?• How often did we switch ”driver”?

• Effects of pairing?• What did the ”non-driver” do?

Page 15: Experience Agile Programming

What did you see?• Was the step size right?• What was the first test?

• How did we decide next test?• What was the final test?

Page 16: Experience Agile Programming

What did you see?• Language tricks?

• Did we refactor the right amount?• How long was the code red?

• Strengths in final design•Weaknesses in final design

Page 17: Experience Agile Programming

Why become better at programming?

Page 18: Experience Agile Programming

Seriously. Why?

Page 19: Experience Agile Programming

Only 13.37% of effort

Page 20: Experience Agile Programming

Getting better quality

Page 21: Experience Agile Programming

Getting better qualityCorrectness

Maintainability

Page 22: Experience Agile Programming

But more importantly!

Page 23: Experience Agile Programming

Think better

Page 24: Experience Agile Programming

Think betterRaise your level of abstraction

Page 25: Experience Agile Programming

What to practice

Page 26: Experience Agile Programming

Test the contract

Page 27: Experience Agile Programming

Test the contractAPI

Not behavior

Page 28: Experience Agile Programming
Page 29: Experience Agile Programming

Test from outside-in

Page 30: Experience Agile Programming
Page 31: Experience Agile Programming

Practice pair programming

Page 32: Experience Agile Programming

Ping pong

Page 33: Experience Agile Programming

Failing test

Write code

Failing test

Write code

Failing test

Page 34: Experience Agile Programming

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 35: Experience Agile Programming

Johannes Dmytro

SergeyDmitro

Volodymyr

Page 36: Experience Agile Programming

Johannes Boris

SergeyDmitro

Volodymyr

Page 37: Experience Agile Programming

Johannes Boris

SergeyDmitro

Volodymyr

Page 38: Experience Agile Programming

All-green refactoring

Page 39: Experience Agile Programming

All-green refactoringReduce the time of uncertainty

Page 40: Experience Agile Programming

How to practice

Page 41: Experience Agile Programming

PracticePractice at work

Practice katas

Practice in dojos

Page 42: Experience Agile Programming

Moscow Coding Dojo?

Page 43: Experience Agile Programming
Page 44: Experience Agile Programming
Page 45: Experience Agile Programming
Page 46: Experience Agile Programming
Page 47: Experience Agile Programming

Moscow Coding Dojo(tweet @jhannes)

Page 48: Experience Agile Programming

Conclusion

Page 49: Experience Agile Programming

ConclusionFree your mind

Page 50: Experience Agile Programming

Free your mindPractice our art

Page 51: Experience Agile Programming

Thank [email protected]

http://johannesbrodwall.com

http://twitter.com/jhannes

(Please tweet in Cyrillic with english-like words)