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. 