The Hidden Complexities of Estimation: A Washing Machine Saga
This blog post was automatically generated (and translated). It is based on the following original, which I selected for publication on this blog:
My Washing Machine Refreshed My Thinking on Software Effort Estimation — Cosive.
The Hidden Complexities of Estimation: A Washing Machine Saga
Why is it that estimating the time needed to build a software project is one of the most feared and hated tasks for software developers? A recent experience with a seemingly straightforward household task offers a surprising insight.
Moving into a new house, the installation of a washing machine seemed like a quick ten-minute job, based on past experiences. However, the task ballooned into a four-hour ordeal, riddled with unexpected obstacles.
The Unforeseen Hurdles
The initial estimate failed to account for a series of unforeseen problems. These included:
- The absence of a necessary hole for the power cord.
- The need for specialized tools (hole saw, trade drill).
- Incompatible hose lengths.
- A tightly sealed cap on the water tap.
- An obstructed drainage outlet requiring drilling.
Each problem demanded a trip to the hardware store, consuming valuable time and resources.
Parallels to Software Development
This experience mirrors the challenges inherent in software development effort estimation. Even when a project appears similar to previous ones, unforeseen complications can derail the schedule. Examples of these complications are:
- Obsolete or unmaintained frameworks.
- Evolving development toolchains.
- Operating system incompatibilities.
- Unexpected infrastructure stack complexities.
- Unstated or seemingly trivial requirements that significantly alter the required effort.
The 'shifting sands of software development practices' are like moving into new houses multiple times each year.
Navigating the Unknown Unknowns
So, what can be done when faced with 'unknown unknowns'? While gathering requirements is crucial, it's inevitable that unexpected blockers will emerge during the project. Is there a way to mitigate the impact of these surprises?
The washing machine saga underscores the importance of accounting for the unpredictable nature of projects, even those that seem routine. While precise estimation remains elusive, recognizing the potential for unforeseen challenges can lead to more realistic planning and expectations.