As Martin Fowler observed almost a decade ago, “Agile” is a term that went through semantic diffusion rather quickly.
Perhaps as a result, one of the areas that seem to draw a lot of resistance from teams who perceive themselves to be “agile”, is around any sort of up-front planning.
As if just-in-time planning is synonymous with only deciding what you’re going to build in the next 2-4 weeks at the beginning of the iteration, and any planning beyond that time horizon is “waste”. Nothing can be farther from the truth.
Mike Cottmeyer of LeadingAgile is one of the true thought-leaders on applying agile principles at scale and his blog posts are almost always well worth the read. This one deals with the topic mentioned at the beginning of the post:
Mike uses a very powerful thought experiment to get his point across: what would building a house based on the common misconceptions of what agile is look like vs. building it based on what agile really means? Attempting to summarize the parable will not do it justice, so I’ll only repeat Mike’s conclusion, in his own words:
“Just like you wouldn’t build a house with an open ended scope, your stakeholders don’t want to commit to an open ended software project. We have to do enough work up front to put together a credible plan, mitigate risk, and understand costs. We have to estimate the work, set budgets, and make tradeoffs to ensure the product is done on time and on budget… No estimating, no planning, and not committing won’t be the answer for most organizations. It’s not a starting place anyone can live with.”