WeActuallyBuildStuff - Extreme Programming Live

705 views

Published on

My talk at the WeActuallyBuildStuff conference in Vilnius 2012 with Andrej Slivko

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
705
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
7
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • 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
  • Note to translator: Here, Iwill ask the English speakingmembersoftheaudience to give feedback onwhattheysaw. I will hand outchocolates to those to answer. 
  • WeActuallyBuildStuff - Extreme Programming Live

    1. 1. Extreme Programming Live WeActuallyBuildStuff Johannes Brodwall Exilesoft Chief scientist @jhannes
    2. 2. Goal • To have fun now!• For you to have fun now! • For you to have fun later (stretch goal)
    3. 3. 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
    4. 4. 1. Waddayamean «extreme programming»2. What to look for3. Demonstration4. Discussion5. Conclusion
    5. 5. «Extremeprogramming»?
    6. 6. Is it better to • Do the thing right?• Do the right thing?
    7. 7. It is better to• Do the thing right, then to • Do the right thing • (first)
    8. 8. Ping pong
    9. 9. Ingredience #1:Pair programming
    10. 10. Ingredience #2: Test driven development
    11. 11. Failing test Write code Failing testWrite codeFailing test
    12. 12. Ingredience #3: Refactoring
    13. 13. Failing test Write code Refactor code and tests Failing testWrite code Refactor code and testsFailing test
    14. 14. Put together
    15. 15. Failing test Write code Failing testWrite codeFailing test
    16. 16. Failing test Write code Refactor code and tests Failing testWrite code Refactor code and testsFailing test
    17. 17. Failing test Write code Refactor code and tests Failing testWrite code Refactor code and testsFailing test
    18. 18. Demonstration
    19. 19. What to watch for?
    20. 20. If you’re a project manager
    21. 21. If you’re an architect
    22. 22. If you’re a developer
    23. 23. If you’re neither
    24. 24. Please:• Talk about what you see to the person next to you (whisper) •Tweet to @jhannes
    25. 25. Demonstration(Guest starring Andrej Slivko)
    26. 26. Kata: Minesweeper
    27. 27. What did you see?
    28. 28. 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?
    29. 29. What do you think? •Pairing two seniors? •Pairing two juniors? • Pairing senior and talent? • Pairing senior and junior?
    30. 30. 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?
    31. 31. 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?
    32. 32. Questions?Your experience?
    33. 33. Becoming a better programmer
    34. 34. Why become better programmer?
    35. 35. Seriously. Why?
    36. 36. Only 13.37% of effort
    37. 37. Getting better quality
    38. 38. Getting better quality Correctness Maintainability
    39. 39. But more importantly!
    40. 40. Think better
    41. 41. Think betterThink beyond the curly brackets
    42. 42. «The Alignment Trap»
    43. 43. How to get better
    44. 44. Practice
    45. 45. Deliberate Practice • Slow down • Repeat • Reflect
    46. 46. Practice at work
    47. 47. Practice at home
    48. 48. Practice at home Watch this space!
    49. 49. Practice with friends
    50. 50. Vilnius Coding Dojo?
    51. 51. 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
    52. 52. Conclusion
    53. 53. Conclusion Free your mind
    54. 54. Free your mind Practice our art
    55. 55. Thank you jbr@exilesoft.com http://johannesbrodwall.com http://exilesoft.com http://twitter.com/jhannes

    ×