Shut up and produce…
Agile Programming Live AgilePrague 2012 Johannes Brodwall Steria Norway @jhannes
Goal • To have fun now! • For you to have fun now! • For you to have fun later (stretch goal)
Agenda • What is «agile programming» •What to look for •Demonstration •Discussion •Possibly: Tips and tricks
What is «agile programming»?
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 Refactor code and tests Failing test Write code Refactor code and tests Failing test
Put together
Failing test Write code Failing test Write code Failing test
Failing test Write code Refactor code and tests Failing test Write code Refactor code and tests Failing test
What do you think? • Do you work like this? • Faster or slower? • Better code or worse? • Other effects?
Demonstration
What to watch for?
If you’re a project manager
If you’re an architect
If you’re a developer
If you’re neither
Please: • Talk about what you see to the person next to you (whisper) •Tweet to @jhannes and @OlegSmirsky
Demonstration (Featuring Oleg Smirsky)
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?
Questions? Your experience?
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 better Think above the curly brackets
How to get better
Practice
Deliberate Practice
Practice Practice at work Practice katas Practice in dojos
Prague Coding Dojo?
Prague Coding Dojo http://agileprague.com/workshops.htm
You can still sign up
Conclusion
Conclusion Free your mind
Free your mind Practice our art
Thank you johannes@brodwall.com http://johannesbrodwall.com http://twitter.com/jhannes http://twitter.com/OlegSmirsky

Agile Programming Live - AgilePrague2012

Editor's Notes

  • #28 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
  • #30 Note to translator: Here, Iwill ask the English speakingmembersoftheaudience to give feedback onwhattheysaw. I will hand outchocolates to those to answer. 