Top Banner
Extreme Programming Live WeActuallyBuildStuff Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Andrej Slivko
65

WeActuallyBuildStuff - Extreme Programming Live

Nov 29, 2014

Download

Documents

My talk at the WeActuallyBuildStuff conference in Vilnius 2012 with Andrej Slivko
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: WeActuallyBuildStuff - Extreme Programming Live

Extreme Programming Live

WeActuallyBuildStuffJohannes Brodwall

Exilesoft Chief scientist

@jhannes

Guest starring: Andrej Slivko

Page 2: WeActuallyBuildStuff - Extreme Programming Live

Goal• To have fun now!

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

(stretch goal)

Page 3: WeActuallyBuildStuff - Extreme Programming Live

After this talk• You may find desire to train with TDD

• You may pair program sometimes• You may think of some ways to improve the

way you work

Page 4: WeActuallyBuildStuff - Extreme Programming Live

1. Waddayamean«extreme programming»

2. What to look for3. Demonstration 4. Discussion5. Conclusion

Page 5: WeActuallyBuildStuff - Extreme Programming Live

«Extreme programming»?

Page 6: WeActuallyBuildStuff - Extreme Programming Live

Is it better to• Do the thing right?

• Do the right thing?

Page 7: WeActuallyBuildStuff - Extreme Programming Live
Page 8: WeActuallyBuildStuff - Extreme Programming Live

It is better to• Do the thing right, then to

• Do the right thing• (first)

Page 9: WeActuallyBuildStuff - Extreme Programming Live

Ping pong

Page 10: WeActuallyBuildStuff - Extreme Programming Live

Ingredience #1:Pair programming

Page 11: WeActuallyBuildStuff - Extreme Programming Live
Page 12: WeActuallyBuildStuff - Extreme Programming Live
Page 13: WeActuallyBuildStuff - Extreme Programming Live

Ingredience #2:Test driven

development

Page 14: WeActuallyBuildStuff - Extreme Programming Live

Failing test

Write code

Failing test

Write code

Failing test

Page 15: WeActuallyBuildStuff - Extreme Programming Live

Ingredience #3:

Refactoring

Page 16: WeActuallyBuildStuff - Extreme Programming Live

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 17: WeActuallyBuildStuff - Extreme Programming Live

Put together

Page 18: WeActuallyBuildStuff - Extreme Programming Live

Failing test

Write code

Failing test

Write code

Failing test

Page 19: WeActuallyBuildStuff - Extreme Programming Live

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 20: WeActuallyBuildStuff - Extreme Programming Live

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 21: WeActuallyBuildStuff - Extreme Programming Live

Demonstration

Page 22: WeActuallyBuildStuff - Extreme Programming Live

What to watch for?

Page 23: WeActuallyBuildStuff - Extreme Programming Live

If you’re a project manager

Page 24: WeActuallyBuildStuff - Extreme Programming Live

If you’re an architect

Page 25: WeActuallyBuildStuff - Extreme Programming Live

If you’re a developer

Page 26: WeActuallyBuildStuff - Extreme Programming Live

If you’re neither

Page 27: WeActuallyBuildStuff - Extreme Programming Live

Please:• Talk about what you see to the person

next to you (whisper)•Tweet to @jhannes

Page 28: WeActuallyBuildStuff - Extreme Programming Live

Demonstration(Guest starring Andrej Slivko)

Page 29: WeActuallyBuildStuff - Extreme Programming Live

Kata: Minesweeper

Page 30: WeActuallyBuildStuff - Extreme Programming Live
Page 31: WeActuallyBuildStuff - Extreme Programming Live
Page 32: WeActuallyBuildStuff - Extreme Programming Live

What did you see?

Page 33: WeActuallyBuildStuff - Extreme Programming Live

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

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

•How do you expect it to be different?

Page 34: WeActuallyBuildStuff - Extreme Programming Live

What do you think?•Pairing two seniors?•Pairing two juniors?

• Pairing senior and talent?• Pairing senior and junior?

Page 35: WeActuallyBuildStuff - Extreme Programming Live

What did you see?• How many tests?

•Was the step size right?• What was the first test?

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

Page 36: WeActuallyBuildStuff - Extreme Programming Live

What did you see?•Did we refactor the right amount?

• How long was the code red?• Strengths in final design

•Weaknesses in final design•Enough comments?

Page 37: WeActuallyBuildStuff - Extreme Programming Live

Questions?

Your experience?

Page 38: WeActuallyBuildStuff - Extreme Programming Live

Becoming a better programmer

Page 39: WeActuallyBuildStuff - Extreme Programming Live

Why become better programmer?

Page 40: WeActuallyBuildStuff - Extreme Programming Live

Seriously. Why?

Page 41: WeActuallyBuildStuff - Extreme Programming Live

Only 13.37% of effort

Page 42: WeActuallyBuildStuff - Extreme Programming Live

Getting better quality

Page 43: WeActuallyBuildStuff - Extreme Programming Live

Getting better qualityCorrectness

Maintainability

Page 44: WeActuallyBuildStuff - Extreme Programming Live

But more importantly!

Page 45: WeActuallyBuildStuff - Extreme Programming Live

Think better

Page 46: WeActuallyBuildStuff - Extreme Programming Live

Think betterThink beyond the curly brackets

Page 47: WeActuallyBuildStuff - Extreme Programming Live

«The Alignment Trap»

Page 48: WeActuallyBuildStuff - Extreme Programming Live

How to get better

Page 49: WeActuallyBuildStuff - Extreme Programming Live

Practice

Page 50: WeActuallyBuildStuff - Extreme Programming Live

Deliberate Practice• Slow down

• Repeat• Reflect

Page 51: WeActuallyBuildStuff - Extreme Programming Live

Practice at work

Page 52: WeActuallyBuildStuff - Extreme Programming Live

Practice at home

Page 53: WeActuallyBuildStuff - Extreme Programming Live

Practice at home

Watch this space!

Page 54: WeActuallyBuildStuff - Extreme Programming Live

Practice with friends

Page 55: WeActuallyBuildStuff - Extreme Programming Live

Vilnius Coding Dojo?

Page 56: WeActuallyBuildStuff - Extreme Programming Live
Page 57: WeActuallyBuildStuff - Extreme Programming Live
Page 58: WeActuallyBuildStuff - Extreme Programming Live
Page 59: WeActuallyBuildStuff - Extreme Programming Live
Page 60: WeActuallyBuildStuff - Extreme Programming Live
Page 61: WeActuallyBuildStuff - Extreme Programming Live

What have you learned• TDD makes you productive

• TDD consists of small steps• TDD requires practice

• Pair programming is fun• Pair programming helps you keep flow

Page 62: WeActuallyBuildStuff - Extreme Programming Live

Conclusion

Page 63: WeActuallyBuildStuff - Extreme Programming Live

ConclusionFree your mind

Page 64: WeActuallyBuildStuff - Extreme Programming Live

Free your mindPractice our art

Page 65: WeActuallyBuildStuff - Extreme Programming Live

[email protected]

http://johannesbrodwall.com

http://exilesoft.com

http://twitter.com/jhannes

Thank you