KEMBAR78
2013 09-11 java zone - extreme programming live | PPTX
Extreme Programming
Live
JavaZone 2013
Johannes Brodwall
Exilesoft Chief scientist
@jhannes
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
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 and @erlingwl
Demonstration
(Guest starring Roy Fernando)
Kata: Minesweeper
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?
XP values
XP values
Simplicity
Communication
Feedback
Communication
Questions?
Your experience?
Becoming a better
programmer
Why become better
programmer?
Getting better quality
Getting better quality
Correctness
Maintainability
Productivity
But more importantly!
Think better
Think better
Think beyond the curly brackets
How to get better
Practice
Deliberate Practice
• Slow down
• Repeat
• Reflect
Practice at work
Practice at work
• 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
Conclusion
Free your mind
Free your mind
Practice our art
jbr@exilesoft.com
erling@cvpartner.com
http://johannesbrodwall.com
http://exilesoft.com
http://twitter.com/jhannes
http://twitter.com/erlingwl
Thank you

2013 09-11 java zone - extreme programming live

Editor's Notes

  • #26 Note to translator: I willexplainthe game of minesweeper whileshowingthis slide.The game initiallypresents a fieldwheretherearehidden minesWhentheplayerclickson a cell, eitherhe «steps» on a mine or he reveals thecellIf he «stepson a mine», the game is over, player losesIf he reveals thecell, thecelltellshowmany mines arenext to it
  • #28 Note to translator: Here, Iwill ask the English speakingmembersoftheaudience to give feedback onwhattheysaw. I will hand outchocolates to those to answer. 