Hey everyone,
I was asked almost this very question yesterday: "What takes so long in the dev world?" It's a perfectly fair question, especially when a feature seems simple on the surface. This morning, I read an excellent article, "Hidden complexity in software development," that I think sums up the answer beautifully, especially in its "Foundations" section.
The best way to explain it is the classic iceberg analogy. đź§Š
The feature a user sees and interacts with—the button, the form, the data on the screen—is just the tiny tip of the iceberg visible above the water. The real work, the vast, hidden bulk of the project, is the massive foundation it's built upon, submerged and out of sight.
The code for the "happy path"—the scenario where everything works perfectly—is often the smallest and easiest part to write. The time-consuming part is building the foundation that accounts for everything else.
This foundation includes:
So, when a seemingly "simple" feature takes a week or more to build, it’s rarely the feature itself that’s taking the time. It’s the 90% of the iceberg submerged underwater that ensures the feature is secure, stable, and reliable for you to use.
As always,
Michael Garcia a.k.a. TheCrazyGM