As a software engineer, I understand why IB's software sucks so much. In a word: technology debt.
They've had the same platform
for 20+ years. The same old Java codebase, for an extremely complex product with zillions of features.
In software development, TWENTY YEARS is a horribly long time. Language evolve, technologies come and go,
people come and go. I bet there's nobody left at IB from the original team. Nobody has any overall vision of the whole thing, and nobody fully understands how everything works. Even the public documentation is outdated (e.g.
this is not how you reset the paper trading amount), and they're incentivized to keep that up to date for customers. I can't even imagine the state of the internal documentation after 20 years.
Bugs are often caused by deep ramifications from the code base ("action at a distance"). Superficial fixes typically bring more bugs, or only work in the most obvious cases. Testing helps, but until you understand the underlying code at the deepest level and fix the bug at the root, you can only patch the part of a wall-long crack that's in front of your eyes.
The most realistic way for TWS to shape up at this stage, is to be coded from scratch, in a modern language without all the warts of Java, with a fresh team, and taking advantage of the lessons learned along since the late 90's - by tapping into the wisdom of the old engineers who are still around.
I don't, however, see IB doing that any time soon. Far more likely that a better platform will appear.