experience agile programming - kiev

47
Experience Agile Programming XP Days Ukraine Йоханнес Бродвалл, Just-a-programmer Стерия Норвегия @jhannes

Upload: johannes-brodwall

Post on 05-Dec-2014

1.018 views

Category:

Technology


0 download

DESCRIPTION

A hands-on and interactive presentation of test-driven development and pair programming.

TRANSCRIPT

Page 1: Experience Agile Programming - Kiev

Experience Agile Programming

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

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

@jhannes

Page 2: Experience Agile Programming - Kiev

Goal• To have fun now!

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

(stretch goal)

Page 3: Experience Agile Programming - Kiev

Agenda• Description

•Demonstration with Dima Mindra• Discussion

• Tips and tricks

Page 4: Experience Agile Programming - Kiev

Description

Page 5: Experience Agile Programming - Kiev

Kata: Minesweeper

Page 6: Experience Agile Programming - Kiev
Page 7: Experience Agile Programming - Kiev

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

Page 8: Experience Agile Programming - Kiev

What do watch for• How we interact

• How we progress through the code• How we design

• How we use the language

Page 9: Experience Agile Programming - Kiev

Demonstration(Featuring Dmytro Mindra)

Page 10: Experience Agile Programming - Kiev

What did you see?

Page 11: Experience Agile Programming - Kiev

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

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

Page 12: Experience Agile Programming - Kiev

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 13: Experience Agile Programming - Kiev

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 14: Experience Agile Programming - Kiev

Why become better at programming?

Page 15: Experience Agile Programming - Kiev

Seriously. Why?

Page 16: Experience Agile Programming - Kiev

Only 13.37% of effort

Page 17: Experience Agile Programming - Kiev

Getting better quality

Page 18: Experience Agile Programming - Kiev

Getting better qualityCorrectness

Maintainability

Page 19: Experience Agile Programming - Kiev

But more importantly!

Page 20: Experience Agile Programming - Kiev

Think better

Page 21: Experience Agile Programming - Kiev

Think betterRaise your level of abstraction

Page 22: Experience Agile Programming - Kiev

What to practice

Page 23: Experience Agile Programming - Kiev

Test the contract

Page 24: Experience Agile Programming - Kiev

Test the contractAPI

Not behavior

Page 25: Experience Agile Programming - Kiev
Page 26: Experience Agile Programming - Kiev

Test from outside-in

Page 27: Experience Agile Programming - Kiev

Test from outside-inWho?

Why?

Pop!

Mock

Page 28: Experience Agile Programming - Kiev
Page 29: Experience Agile Programming - Kiev

Practice pair programming

Page 30: Experience Agile Programming - Kiev

Ping pong

Page 31: Experience Agile Programming - Kiev

Failing test

Fix the test

Failing test

Fix the test

Failing test

Page 32: Experience Agile Programming - Kiev

Failing test

Fix the test

Failing test

Fix the test

Failing test

Refactor

Refactor

Page 33: Experience Agile Programming - Kiev

Johannes Dmytro

SergeyMikhail

Volodymyr

Page 34: Experience Agile Programming - Kiev

Johannes Dmytro

SergeyMikhail

Volodymyr

Page 35: Experience Agile Programming - Kiev

Johannes Dmytro

SergeyMikhail

Volodymyr

Page 36: Experience Agile Programming - Kiev

All-green refactoring

Page 37: Experience Agile Programming - Kiev

All-green refactoringReduce the time of uncertainty

Page 38: Experience Agile Programming - Kiev

How to practice

Page 39: Experience Agile Programming - Kiev

PracticePractice at work

Practice katas

Practice in dojos

Page 40: Experience Agile Programming - Kiev

Kyiv Coding Dojo?

Page 41: Experience Agile Programming - Kiev
Page 42: Experience Agile Programming - Kiev
Page 43: Experience Agile Programming - Kiev
Page 44: Experience Agile Programming - Kiev

Conclusion

Page 45: Experience Agile Programming - Kiev

ConclusionFree your mind

Page 46: Experience Agile Programming - Kiev

Free your mindPractice our art

Page 47: Experience Agile Programming - Kiev

Thank [email protected]

http://johannesbrodwall.com

http://twitter.com/jhannes

(Please tweet in Cyrillic with english-like words)