Extreme Programming Live WeActuallyBuildStuff Johannes Brodwall Exilesoft Chief 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 for 3.Demonstration 4.Discussion 5.Conclusion
«Extreme programming»?
It is better to Do the thing right, then to Do the right thing (first)
Ping pong
Ingredient #1: Pair programming
Ingredient #2: Test driven development
Failing test Write code Failing test Write code Failing test
Ingredient #3: Refactoring
Failing test Write code Failing test Write code Failing test Refactor code and tests
Put together
Failing test Write code Failing test Write code Failing test
Write code Failing test Write code Failing test Refactor code and tests
Failing test Write code Failing test Write code Failing test Refactor code and tests
Demonstration
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
Demonstration (Guest starring Chaminda Sooriyapperuma)
Kata: Prime factors
1 => [] 2 => [2] 3 => [3] 4 => [2,2] … 2*2*13*17*23*23 => [2,2,13,17,23,23]
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
Correctness Maintainability Productivity
But more importantly!
Think better
Think beyond the curly brackets
How to get better
Practice
Deliberate Practice Slow down Repeat Reflect
Practice at school
Tests lets you solve it faster
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
Free your mind
Practice our art
Thank you