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

2013 09-11 java zone - extreme programming live

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 2013 09-11 java zone - extreme programming live

Extreme Programming Live

JavaZone 2013Johannes Brodwall

Exilesoft Chief scientist

@jhannes

Guest starring: Roy Fernando

Page 2: 2013 09-11 java zone - extreme programming live

How do you become a

better programmer

Page 3: 2013 09-11 java zone - 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: 2013 09-11 java zone - extreme programming live

1. Waddayamean«extreme programming»

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

Page 5: 2013 09-11 java zone - extreme programming live

«Extreme programming»?

Page 6: 2013 09-11 java zone - extreme programming live

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

• Do the right thing• (first)

Page 7: 2013 09-11 java zone - extreme programming live

Ping pong

Page 8: 2013 09-11 java zone - extreme programming live

Ingredient #1:Pair programming

Page 9: 2013 09-11 java zone - extreme programming live
Page 10: 2013 09-11 java zone - extreme programming live
Page 11: 2013 09-11 java zone - extreme programming live

Ingredient #2:Test driven

development

Page 12: 2013 09-11 java zone - extreme programming live

Failing test

Write code

Failing test

Write code

Failing test

Page 13: 2013 09-11 java zone - extreme programming live

Ingredient #3:

Refactoring

Page 14: 2013 09-11 java zone - extreme programming live

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 15: 2013 09-11 java zone - extreme programming live

Put together

Page 16: 2013 09-11 java zone - extreme programming live

Failing test

Write code

Failing test

Write code

Failing test

Page 17: 2013 09-11 java zone - extreme programming live

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 18: 2013 09-11 java zone - extreme programming live

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 19: 2013 09-11 java zone - extreme programming live

Demonstration

Page 20: 2013 09-11 java zone - extreme programming live

What to watch for?

Page 21: 2013 09-11 java zone - extreme programming live

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

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

Page 22: 2013 09-11 java zone - extreme programming live

Please:• Talk about what you see to the person

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

Page 23: 2013 09-11 java zone - extreme programming live

Demonstration(Guest starring Roy Fernando)

Page 24: 2013 09-11 java zone - extreme programming live

Kata: Minesweeper

Page 25: 2013 09-11 java zone - extreme programming live
Page 26: 2013 09-11 java zone - extreme programming live
Page 27: 2013 09-11 java zone - extreme programming live

What did you see?

Page 28: 2013 09-11 java zone - 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 29: 2013 09-11 java zone - extreme programming live

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

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

Page 30: 2013 09-11 java zone - 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 31: 2013 09-11 java zone - 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 32: 2013 09-11 java zone - extreme programming live

XP values

Page 33: 2013 09-11 java zone - extreme programming live

XP values

SimplicityCommunication

FeedbackCommunication

Page 34: 2013 09-11 java zone - extreme programming live

Questions?

Your experience?

Page 35: 2013 09-11 java zone - extreme programming live

Becoming a better programmer

Page 36: 2013 09-11 java zone - extreme programming live

Why become better programmer?

Page 37: 2013 09-11 java zone - extreme programming live

Getting better quality

Page 38: 2013 09-11 java zone - extreme programming live

Getting better qualityCorrectness

Maintainability

Productivity

Page 39: 2013 09-11 java zone - extreme programming live

But more importantly!

Page 40: 2013 09-11 java zone - extreme programming live

Think better

Page 41: 2013 09-11 java zone - extreme programming live

Think betterThink beyond the curly brackets

Page 42: 2013 09-11 java zone - extreme programming live

How to get better

Page 43: 2013 09-11 java zone - extreme programming live

Practice

Page 44: 2013 09-11 java zone - extreme programming live

Deliberate Practice• Slow down

• Repeat• Reflect

Page 45: 2013 09-11 java zone - extreme programming live

Practice at work

Page 46: 2013 09-11 java zone - extreme programming live

Practice at work• Tests lets you solve it faster

Page 47: 2013 09-11 java zone - extreme programming live

Practice at home

Page 48: 2013 09-11 java zone - extreme programming live

Practice at home

Learn more here

Page 49: 2013 09-11 java zone - extreme programming live

Practice with friends

Page 50: 2013 09-11 java zone - extreme programming live
Page 51: 2013 09-11 java zone - extreme programming live
Page 52: 2013 09-11 java zone - extreme programming live
Page 53: 2013 09-11 java zone - extreme programming live
Page 54: 2013 09-11 java zone - extreme programming live
Page 55: 2013 09-11 java zone - 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 56: 2013 09-11 java zone - extreme programming live

+

TDD & different different Levels of

quality

Page 57: 2013 09-11 java zone - extreme programming live

Conclusion

Page 58: 2013 09-11 java zone - extreme programming live

ConclusionFree your mind

Page 59: 2013 09-11 java zone - extreme programming live

Free your mindPractice our art