Extreme Programming Live

57
Extreme Programming Live WeActuallyBuildStuff Johannes Brodwall Exilesoft Chief scientist @jhannes Gue st starring: Chaminda Sooriyapperuma

description

Extreme Programming Live. WeActuallyBuildStuff Johannes Brodwall Exilesoft Chief scientist @ jhannes. Guest starring: Chaminda Sooriyapperuma. How do you become a better programmer. After this talk You may find desire to train with TDD You may pair program sometimes - PowerPoint PPT Presentation

Transcript of Extreme Programming Live

Extreme Programming Live

WeActuallyBuildStuffJohannes Brodwall

Exilesoft Chief scientist

@jhannes

Guest starring: Chaminda Sooriyapperuma

How do you become a

better programmer

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

1. Waddayamean«extreme programming»

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

«Extreme programming»?

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

• Do the right thing• (first)

Ping pong

Ingredience #1:Pair programming

Ingredience #2:Test driven

development

Failing test

Write code

Failing test

Write code

Failing test

Ingredience #3:

Refactoring

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Put together

Failing test

Write code

Failing test

Write code

Failing test

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Demonstration

What to watch for?

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

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

Please:• Talk about what you see to the person

next to you (whisper)•Tweet to @jhannes

Demonstration(Guest starring Chaminda

Sooriyapperuma)

Kata: Prime factors

Kata: Prime factors1 => []

2 => [2]

3 => [3]

4 => [2,2]

2*2*13*17*23*23 => [2,2,13,17,23,23]

What did you see?

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?

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

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

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?

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?

Questions?

Your experience?

Becoming a better programmer

Why become better programmer?

Getting better quality

Getting better qualityCorrectness

Maintainability

Productivity

But more importantly!

Think better

Think betterThink beyond the curly brackets

How to get better

Practice

Deliberate Practice• Slow down

• Repeat• Reflect

Practice at school

Practice at school• Tests lets you solve it faster

Practice at home

Practice at home

Learn more here

Practice with friends

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

+

TDD & different different Levels of

quality

Conclusion

ConclusionFree your mind

Free your mindPractice our art