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
Even though I'm not a dev (yet!), I am aware of a good deal of the backend complexity and challenges, so I've definitely learned to have lots of patience with software development. You guys that are actually doing the coding work get mad props from me! 😁 🙏 💚 ✨ 🤙
And all the bloody edge cases that humans cause :P
Logic is hard, and when you have complex, overlapping logic, you need to squash the unexpected outcomes of solutions. Best to plan them out properly, but particularly in the business world, that logic is ever changing, and everyone's interpretation of it tends to be a little different.
Secure, Stable and Reliable
Often I feel like we are dealing with trade-offs, for example to be maximally reliable the app might load slower. Weighing trade-offs like this can take a lot of mental energy, especially when not every client values the same thing!
!PAKX
!PIMP
!PIZZA
View or trade
PAKX
tokens.Use !PAKX command if you hold enough balance to call for a @pakx vote on worthy posts! More details available on PAKX Blog.
$PIZZA slices delivered:
@ecoinstant(1/20) tipped @thecrazygm
Come get MOONed!