* The internal software was built up over a number of years as a series of hacks that rarely if ever got unwound. The people running the business were blind to the necessity of this and a lot of the engineers were not motivated to fix it because they were experts on the rabbit hole and were angling for job security.
* The internal software's infrastructure aged badly and we were stuck in a perpetual upgrade hell. This was again because the people running the business did not really understand the accretion of technical debt. Their abilities centered more around, say, pricing insurance and regulatory issues.
* They didn't know how to hire engineers and they instituted corporate processes that ensured that the engineers were both pissed off and unable to properly do their work and they were in a geographical area where it was hard to hire. Good engineers largely left, bad engineers stayed behind and continued building rabbit holes.
* They outsourced critical functions to cheap overseas labor and got crap as a result.
* Their response to slowed development and deadlines was to throw more engineers at the problem.
* They're also the only client I've had to sue for nonpayment of an invoice.