I typically try to stay away from CRUD applications where possible as I find them too simple. I prefer to work on meaty domain-driven applications using CQRS and Event sourcing, but that's just my tech preferences.
I too worked in telecoms and was part of the development team that did the AOL LLU from BT in the UK. The old-world you speak about has a ton of wisdom in it, that much I agree with you on, however it was also riddled with stupidity of its own.
The amount of time you put into the specs is not where the trick is in my view, it's about splitting the specs down into manageable chunks (something the old world never understood) and then making sure those chunks get the necessary time (something often missed these days).
If you think the solution for your company is not to have any advisors, and that you have all you need, then by all means hire more developers. They are the smartest people around ;)
Nowadays I never say the A word in a companies for the exact reasons you mention. Now I say "let's start producing higher quality, faster" and go from there.
But that is something so common place that even pretty poorly run software organizations which ship crap do it.
The rhetorical Everyone has a bug database with features, enhancements, low priority bugs and "blockers". That plus version control is the bare minimum requirement for having any kind of process distinguishable from total chaos.
This is an article about water being wet.
At that particular company, everything was a "task" and tasks were just thrown at employees as they came. This wasn't just limited to software development either...this applied to customer support and service as well.
Their solution, and the solution the customer (government contractors) was to schedule numerous and regular meetings in order to touch base and monitor progress...which only contributed to the problem.
Also the article itself is actually a case study...
It's not about actually having ZERO bugs as it is about enforcing a strict and logical classification system.
I think this quote resonated with me the most:
> ...but much more so, the bugs were a result of incorrect specification or missing specifications.
The argument being made is that if you hand a developer a specification, the developer implements the specification _as specified_, then you discover the specification was incorrect or that in practice you want a change would you classify that as a _BUG_? No. But a lot of shops _do_, so they end up with _too_ many tasks classified as a "Bug" which makes it impossible to prioritize since being a "Bug" is a binary descriptor.
By enforcing a classification system means you have the ability to then enforce a prioritization system...and really the prioritization system is key for maintaining consistent output and forward progress.
At least that what I felt the argument of the post was...and I see some reasonability to it. Especially since, as the author mentioned, this is not a new idea.