I used to do electronic trading support for a large investment bank and yeah, their applications and processes tended to be disasters.
Part of the problem was bad developers; I saw some very basic mistakes like case-sensitive columns in a database that were supposed to be case-insensitive.
Poor QA process; management would have the team simply not report bugs because it made "the numbers" look bad and they were trying to get the software out the door.
Poor training. Support staff were never really trained on how the applications worked, or sat near the traders so they could watch what they were doing day-to-day. We were just supposed to figure it out on our own.
And poor management. There were so many teams in so many locations that no one owned the entire process and knew how it worked end-to-end. Downstream applications would bomb out on perfectly good data and then their support staff would call ours to complain. We would tell them it's valid data and to fix their code, but would have to implement workarounds in order to deliver the data in the required timeframe. In many cases known bugs were not addressed because the business didn't want to fund the fixes. Their solution was to have support constantly performing workarounds and massaging the data so it would go through the various systems and electronic exchanges. Instead of fixing the applications they had, they would build new ones to do the same thing and then we'd have to support more and more of them because the new ones didn't work and the old apps were still in use.
It was an extremely frustrating experience. You'd go home every day feeling like nothing was accomplished.