60
Extreme Programming Live JavaZone 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Roy Fernando

Extreme Programming Live - JavaZone

Embed Size (px)

DESCRIPTION

Good programming is not something that can be explained, it has to be experienced. In this talk, you will see pair programming and test-driven development in action. The talk will involve the audience and draw on your insight to show how programming can be more fun! If you want to understand how serious test-driven development looks, this talk is for you. The talk is based around a demonstration and interactive audience discussion, so the slides will not capture much of the content.

Citation preview

Page 1: Extreme Programming Live - JavaZone

Extreme Programming Live

JavaZone 2013Johannes Brodwall

Exilesoft Chief scientist

@jhannes

Guest starring: Roy Fernando

Page 2: Extreme Programming Live - JavaZone

How do you become a

better programmer

Page 3: Extreme Programming Live - JavaZone

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: Extreme Programming Live - JavaZone

1. Waddayamean«extreme programming»

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

Page 5: Extreme Programming Live - JavaZone

«Extreme programming»?

Page 6: Extreme Programming Live - JavaZone

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

• Do the right thing• (first)

Page 7: Extreme Programming Live - JavaZone

Ping pong

Page 8: Extreme Programming Live - JavaZone

Ingredient #1:Pair programming

Page 9: Extreme Programming Live - JavaZone
Page 10: Extreme Programming Live - JavaZone
Page 11: Extreme Programming Live - JavaZone

Ingredient #2:Test driven

development

Page 12: Extreme Programming Live - JavaZone

Failing test

Write code

Failing test

Write code

Failing test

Page 13: Extreme Programming Live - JavaZone

Ingredient #3:

Refactoring

Page 14: Extreme Programming Live - JavaZone

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 15: Extreme Programming Live - JavaZone

Put together

Page 16: Extreme Programming Live - JavaZone

Failing test

Write code

Failing test

Write code

Failing test

Page 17: Extreme Programming Live - JavaZone

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 18: Extreme Programming Live - JavaZone

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 19: Extreme Programming Live - JavaZone

Demonstration

Page 20: Extreme Programming Live - JavaZone

What to watch for?

Page 21: Extreme Programming Live - JavaZone

What to watch for?• How do we work together?

• How do we use tests to understand?• How do we «grow» the code?

Page 22: Extreme Programming Live - JavaZone

Please:• Talk about what you see to the person

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

Page 23: Extreme Programming Live - JavaZone

Demonstration(Guest starring Roy Fernando)

Page 24: Extreme Programming Live - JavaZone

Kata: Minesweeper

Page 25: Extreme Programming Live - JavaZone
Page 26: Extreme Programming Live - JavaZone
Page 27: Extreme Programming Live - JavaZone

What did you see?

Page 28: Extreme Programming Live - JavaZone

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 29: Extreme Programming Live - JavaZone

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

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

Page 30: Extreme Programming Live - JavaZone

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 31: Extreme Programming Live - JavaZone

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 32: Extreme Programming Live - JavaZone

XP values

Page 33: Extreme Programming Live - JavaZone

XP values

SimplicityCommunication

FeedbackCommunication

Page 34: Extreme Programming Live - JavaZone

Questions?

Your experience?

Page 35: Extreme Programming Live - JavaZone

Becoming a better programmer

Page 36: Extreme Programming Live - JavaZone

Why become better programmer?

Page 37: Extreme Programming Live - JavaZone

Getting better quality

Page 38: Extreme Programming Live - JavaZone

Getting better qualityCorrectness

Maintainability

Productivity

Page 39: Extreme Programming Live - JavaZone

But more importantly!

Page 40: Extreme Programming Live - JavaZone

Think better

Page 41: Extreme Programming Live - JavaZone

Think betterThink beyond the curly brackets

Page 42: Extreme Programming Live - JavaZone

How to get better

Page 43: Extreme Programming Live - JavaZone

Practice

Page 44: Extreme Programming Live - JavaZone

Deliberate Practice• Slow down

• Repeat• Reflect

Page 45: Extreme Programming Live - JavaZone

Practice at work

Page 46: Extreme Programming Live - JavaZone

Practice at work• Tests lets you solve it faster

Page 47: Extreme Programming Live - JavaZone

Practice at home

Page 48: Extreme Programming Live - JavaZone

Practice at home

Learn more here

Page 49: Extreme Programming Live - JavaZone

Practice with friends

Page 50: Extreme Programming Live - JavaZone
Page 51: Extreme Programming Live - JavaZone
Page 52: Extreme Programming Live - JavaZone
Page 53: Extreme Programming Live - JavaZone
Page 54: Extreme Programming Live - JavaZone
Page 55: Extreme Programming Live - JavaZone

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 56: Extreme Programming Live - JavaZone

+

TDD & different different Levels of

quality

Page 57: Extreme Programming Live - JavaZone

Conclusion

Page 58: Extreme Programming Live - JavaZone

ConclusionFree your mind

Page 59: Extreme Programming Live - JavaZone

Free your mindPractice our art