Experience Agile  Programming                          XP Days Ukraine     Йоханнес Бродвалл, Just-a-programmer           ...
Goal         • To have fun now!• For you to have fun now! • For you to have fun later               (stretch goal)
Agenda                    • Description•Demonstration with Dima Mindra                    • Discussion                • Ti...
Description
Kata: Minesweeper
Given:var minefield = new Minefield([              "....",              ".*..",              ".*.*",              "...*“ ])
What do watch for                  • How we interact• How we progress through the code                   • How we design  ...
Demonstration(Featuring Dmytro Mindra)
What did you see?
What did you see?• How often did we switch ”driver”?                • Effects of pairing?    • What did the ”non-driver” do?
What did you see?     • Was the step size right?      • What was the first test?• How did we decide next test?     • What ...
What did you see?                 • Language tricks?• Did we refactor the right amount?      • How long was the code red? ...
Why become better at      programming?
Seriously. Why?
Only 13.37% of effort
Getting better quality
Getting better quality             Correctness           Maintainability
But more importantly!
Think better
Think betterRaise your level of abstraction
What to practice
Test the contract
Test the contract                 API         Not behavior
Test from outside-in
Test from outside-in                Who?                Why?                 Pop!                Mock
Practice pairprogramming
Ping pong
Failing test               Fix the test               Failing testFix the testFailing test
Failing test                         Fix the test                    Refactor                         Failing testFix the ...
Johannes               DmytroMikhail                                   Sergey                     Volodymyr
Johannes               DmytroMikhail                                   Sergey                     Volodymyr
Johannes               DmytroMikhail                                   Sergey                     Volodymyr
All-green refactoring
All-green refactoring  Reduce the time of uncertainty
How to practice
PracticePractice at work  Practice katasPractice in dojos
Kyiv Coding Dojo?
Conclusion
Conclusion Free your mind
Free your mind    Practice our art
Thank you  johannes.brodwall@steria.no  http://johannesbrodwall.com      http://twitter.com/jhannes   (Please tweet in Cyr...
Experience Agile Programming - Kiev
Experience Agile Programming - Kiev
Experience Agile Programming - Kiev
Experience Agile Programming - Kiev
Experience Agile Programming - Kiev
Experience Agile Programming - Kiev
Upcoming SlideShare
Loading in …5
×

Experience Agile Programming - Kiev

994 views

Published on

A hands-on and interactive presentation of test-driven development and pair programming.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
994
On SlideShare
0
From Embeds
0
Number of Embeds
436
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Experience Agile Programming - Kiev

  1. 1. Experience Agile Programming XP Days Ukraine Йоханнес Бродвалл, Just-a-programmer Стерия Норвегия @jhannes
  2. 2. Goal • To have fun now!• For you to have fun now! • For you to have fun later (stretch goal)
  3. 3. Agenda • Description•Demonstration with Dima Mindra • Discussion • Tips and tricks
  4. 4. Description
  5. 5. Kata: Minesweeper
  6. 6. Given:var minefield = new Minefield([ "....", ".*..", ".*.*", "...*“ ])
  7. 7. What do watch for • How we interact• How we progress through the code • How we design • How we use the language
  8. 8. Demonstration(Featuring Dmytro Mindra)
  9. 9. What did you see?
  10. 10. What did you see?• How often did we switch ”driver”? • Effects of pairing? • What did the ”non-driver” do?
  11. 11. What did you see? • Was the step size right? • What was the first test?• How did we decide next test? • What was the final test?
  12. 12. What did you see? • Language tricks?• Did we refactor the right amount? • How long was the code red? • Strengths in final design •Weaknesses in final design
  13. 13. Why become better at programming?
  14. 14. Seriously. Why?
  15. 15. Only 13.37% of effort
  16. 16. Getting better quality
  17. 17. Getting better quality Correctness Maintainability
  18. 18. But more importantly!
  19. 19. Think better
  20. 20. Think betterRaise your level of abstraction
  21. 21. What to practice
  22. 22. Test the contract
  23. 23. Test the contract API Not behavior
  24. 24. Test from outside-in
  25. 25. Test from outside-in Who? Why? Pop! Mock
  26. 26. Practice pairprogramming
  27. 27. Ping pong
  28. 28. Failing test Fix the test Failing testFix the testFailing test
  29. 29. Failing test Fix the test Refactor Failing testFix the test RefactorFailing test
  30. 30. Johannes DmytroMikhail Sergey Volodymyr
  31. 31. Johannes DmytroMikhail Sergey Volodymyr
  32. 32. Johannes DmytroMikhail Sergey Volodymyr
  33. 33. All-green refactoring
  34. 34. All-green refactoring Reduce the time of uncertainty
  35. 35. How to practice
  36. 36. PracticePractice at work Practice katasPractice in dojos
  37. 37. Kyiv Coding Dojo?
  38. 38. Conclusion
  39. 39. Conclusion Free your mind
  40. 40. Free your mind Practice our art
  41. 41. Thank you johannes.brodwall@steria.no http://johannesbrodwall.com http://twitter.com/jhannes (Please tweet in Cyrillic with english-like words)

×