Transcript
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


Top Related