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鈥攖he button, the form, the data on the screen鈥攊s 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"鈥攖he scenario where everything works perfectly鈥攊s 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鈥檚 rarely the feature itself that鈥檚 taking the time. It鈥檚 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