Moving to Agile: Iteration 0

In my previous post I detailed the strategy that I employed in order to attempt to bring a more agile build approach to some of our projects. With a plan in place, I did the most agile thing I could think of…I just started working!

After sharing the overall vision with my scrummasters-to-be, I worked with each of them in turn to help guide their product owner in converting their task list into a true, groomed backlog. Most of our attention was focused on organization and setting expectations as to the definition of “done.” If I had it to do over again, I would have spent infinitely more time working on that one simple word—done. Nothing caused more problems in those initial sprints than that word.

Ultimately, our definition of “done” was influenced more by the rigidly defined roles within the organization than by any lofty scrum principles. A feature would be considered done when it was verified by QA. How much trouble could that get us in?

Our first major issue occurred when we were arranging for teams—we had no QA people available. We huddled up and made a judgement call: surely starting the QA team a sprint or two late and having them circle back to verify the features closed in the first sprints wouldn’t be a big deal. How far behind could we get?

As it turns out, two sprints will buy you two lost sprints. When QA finally got on the project, it took another complete sprint for them to build a backlog of bugs technical debt that was sufficient to take up an entire sprint. So by sprint 4, we were working exclusively on bugs from sprints 1 and 2. We did not catch up until sprint 6, when we were mostly taking on new features again having put our clever plan to bed. What a completely foreseeable chain of events.

We learned several important things from this series of lessons:

  1. I wish we were doing TDD (one day soon, this will be!)
  2. Working ahead of your ability to test doesn’t actually save you any time
  3. Don’t let the pursuit of perfection prevent starting—we made some mistakes early on (and will likely do so in every sprint forever) but we learned from them and recovered