From a few projects I’ve worked on or been part of, when the project went sideways, it was usually for one of two reasons: nobody scoped it properly, or nobody ever finished scoping it.
Skipping that step costs you twice. First, it costs budget in terms of hours available because an edge case comes up that nobody thought of. Second, it costs the quality of the code itself, because working from a vague brief slows everyone down, and not everyone ends up on the same page. You pay for it again later, because there’s no plan to look back on that captures the thought process that led to these decisions.
So, by doing the boring part at the start, having someone look at and understand what the system needs, who’s using it and what happens when users interact with it, and getting that written down before development starts, you can avoid paying twice.
But Planning Also Has an Expiry Date
If ideas and concepts change a lot, the original plan might not be as relevant anymore. It can become out of date. I think the real reason Agile is so popular is that it reduces the years of planning that used to build up, allowing teams to deliver and produce systems that match the spec. Two weeks of working software in front of real users tells you more than two months of specification and speculation.




