Software Development Never Fails in the Plan, Always In The Execution

Projects are harder than we think, even when we know that

Ben "The Hosk" Hosking
Dev Genius
Published in
6 min readJul 3, 2022

--

Photo by Anete Lusina from Pexels

No plan survives contact with the software project

No plan was created where the software was delivered late or the project was predicted to fail.

People forget an estimate is a forecast of the time and resources to create software based on the high-level requirements.

Forecasting, estimating involves predicting an unknown future, an impossible task because no one can see into the future. In software development, people forget this and estimates and plans become commitments.

When project plans with optimistic estimates meet the reality of software development, there is only one winner and it's not the one based in PowerPoint.

The purpose of the plan/estimates

Plans are a useful tool that is misused and can do more harm than good. If you use the plan to get resources and estimate of time you would need, them so far so good.

This allows you to create a budget and then you could hire the resources for your project for an initial time with an option to extend them.

Problems occur when people don’t consider their plan could be wrong.

Instead, software plans will remove all margins and safety and remove as much time as they can. With unknown requirements that are likely to grow and problems you haven’t planned for, most software projects are underestimated.

The new purpose of the plan/estimate is to get a low number that leadership is excited by the prospect of creating the software for such a price.

What is a plan?

Plans turn into multiple plans, a clear sign of future problems — the plan on a page — POAP.

Plans grow to include multiple teams and understanding the dependencies between them, showing the order things need to be done.

The plan is great in theory because there is a logical order the work will be completed. Splitting up the work into multiple teams allows parallel work and can speed up the…

--

--

Technology philosopher | Software dev → Solution architect | Avid reader | Life long learner