Colophon Autopsy
I've worked on a total of perhaps fifty projects and I'd judge 1/3rd as failures for many reasons - no business value, dysfunctional team, poor business analysis. Sometimes a "king geek" derails it.
This was a commercial product for small IT companies using an industry standard, but a commercial product should still be flexible ("multi-tenant")
Mofo was a cowboy coder, fine for a simple project but not so much for a complex one. He wrote our core engine as, yup, a Big Ball of Mud (BBM) pattern. And Mofo was good at defending his territory, sandbagging the hires before and after me, getting them fired to maintain his political power. He tried to sandbag me, too but I bypassed him like I often do. :)
His BBM worked okay until we had real customers. Our demos had a significant customer involvement so we expected a high adoption rate. Our first prospect went well and they signed up for our service. The next wanted a minor change and Mofo reviewed it... "Nope. I can't do that. Too much stuff will break".
And so it began...
"Nope, I can't change this".
"Nope, I can't do that".
Opportunity after opportunity slipped by, vetoed by the Big Ball of Mud! I realized after a few months that the company was caught in limbo, where it languishes today; enough cash flow to survive but not succeed.
Ironically I wrote the multi-host security of his core code and he'd complained it was "wrong for C++" because I'd used canonical design pattern; but it handled new additions fine while his code didn't.