In the early years of my career, I worked extensively with big releases and rigid roadmaps.
We’d plan everything upfront, code for months (or a year!), and then fling a single, massive software package out to customers, when we felt “ready” to ship.
Once you lock those requirements, everything else becomes inflexible.
Waterfall-based planning largely ignores the reality that requirements can — and do — change as soon as your product meets real users.
Years into my career, my “lightbulb moment” came.
I realized we were chasing a moving target with an outdated plan.
The biggest takeaway for me was that SaaS is about value over version numbers.
But I’ve discovered a recurring pattern: behind the agile label, they’re often still effectively waterfall.
I’ve navigated these pitfalls repeatedly — both as an in-house leader (e.g., CTO or VP Engineering) and as a strategic consultant.
Viewing software as a living, evolving service dramatically accelerates success.