Experience Agile Programming Agile Meetup, Sri Lanka Johannes Brodwall Steria Norway @jhannes Featu ring: Shiha n Iqbal
Goal • Introduce Agile • 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» ?
What is Agile?
Deliver frequently
Deliver frequently => Incomplete code
Incomplete code => Ability to change
Ability to change => Quality and discipline
Practicing discipline: Ping pong
Ingredience #1: Pair programming
Ingredience #2: Test driven development
Failing test Write code Failing test
Ingredience #3: Refactoring
Failing test Write code Refactor code and tests Failing test
Put together
Failing test Write code Failing test
Failing test Write code Refactor code and tests Failing test
What effect do you expect? • On time • On cost • On quality • On work environment
Demonstration
What to watch for?
If you’re a project manager
If you’re a developer
If you’re a tester
If you’re neither
Please: • Talk about what you see to the person next to you (whisper) • Tweet to @jhannes
Demonstration (Featuring Shihan Iqbal)
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? • 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?