We have previously talked about two of the four core values of the agile manifesto. The first value prizes individuals over tools, the second (well, actually it's the third but I wussed out on writing about the second) places values collaboration over contracts. Now it's time to look at the fourth value (see, I'm still wussing out on number two).
image courtesy Zurich U.S.
It Looks Great On Paper
Alice is on a 30-person software development team. They've just completed the preliminary design phase for a new development project which will provide her company with a new web presence for the next decade.
They begin implementation, which is expected to take four years and involve incremental deployments every 4 months.
Six months into the project, the iPhone is released. Everything on the web changes.
Suddenly, mobile presence isn't something relegated to .mobi domains, it's something that has to be part of your main site. Responsive becomes an important element of web design.
Alice's team? They're still plodding along with Flash, static HTML and older technologies.
Adapt or Die
Alice's team failed to adapt to changes in the environment. The plan was static and its original assumptions were assumed to be unchanging.
Imagine if this had been a medical treatment plan. If Bruce was being treated for cancer and his doctor prescribed a particular chemotherapy drug which had side effects so severe that it threatened Bruce's health, but the plan wasn't reexamined in light of these new findings. Bruce might sicken and die, or certainly weaken and become susceptible to other infections, and other less strenuous treatments would be ignored.
Or what if Bruce improves far quicker than expected and has a remission? Would we continue treatment even after all signs of the cancer are gone simply because that was the original plan?
Planning is about the Activity, not the Plan
Planning isn't about creating a plan. It's about the mental exercise of thinking through the problem.
It's about having your team exhaustively examine the issue from every possible angle, shining flashlights into the dark corners to see what obstacles might be lurking down there.
It's about having them think about contingencies, risks, unexpected events. It's about stretching their minds, their creativity, their abilities before the project has even begun.
And yes, it's about putting together a plan.
But keep that plan in context.
It's just a snapshot of the future you envisioned at one point in time. It's technically obsolete the day you print it, just like a car is no longer "new" the day you drive it off the lot.
Never be afraid to revisit the plan regularly and ask yourself and your team if it still makes sense. The best, most agile teams, are the ones who see the changes in the world and respond quickly to them.
Your turn: How do your teams handle planning? Leave a comment and join the conversation!