Is there such a thing as “sequential Agile software development”? Possibly. Maybe. Look at your process. How many phases does a piece of work have to go through before its complete? How many (in)formal stages does your process have? How about sign-offs? How about handoffs? Interestingly enough, the hallmark of the strawman referred to as Waterfall is the fact that work passes through different phases in a sequential manner just like a bottle of Coke goes through the bottling process. Until work is completed in one phase, work in the next phase cannot be started. Is this how your process works? Is it possible that you have mini-waterfalls occuring in your iterations? #justasking.
But Eb, product development phases have to be sequential you say. At least that’s how we were taught. Yeah, I remember those classes as well. But let’s think about it. Is it possible (for example) that certain test activities can occur while code is being developed? Can testing commence after some code is checked in even if the story is not 100% complete? Can different disciplines perform activties on the same work item in parallel? Can we challenge ourselves to identify how we can all contribute concurrently to the completion of a work item? Do we even have these conversations? Please don’t tell me you won’t know when the work item is ready for you to work on it. What happened to face-to-face conversation and all its 21st century incarnations?
Classic Agile task boards are famous for having only three phases: To Do, In Progress and Done (or something similar). The goal is that everyone should be working together concurrently and collaboratively on the items “In Progress”. Phases should overlap such that there is no value in explicitly calling them out because the work item cycles through each phase quickly and concurrently. Could your team get by with three phases? If the answer is no, why? How many phases do you need? Do your phases foster a true spirit of teamwork and collaboration? Is this an area worthy of inspecting and adapting?
The essence of this post is not to suggest that every team should have only three (or any number for that matter) phases but rather to spur us to take a hard look at how we’re working as Agile team and consider whether our process fosters as much collaboration as is possible or leaves some collaboration on the table. Are we dependent on handoffs and sign-offs? Can we only pick up an item after its completely through a previous phase? Are we really more waterfall-esque than maybe we’d want to admit? To start and finish together, the team needs to work on the same things together. Take a look at the image below, which type reflects your current process? Hopefully at least Type B? Maybe Type C?
Image Credit: The New New Product Development Game – HBR