My understanding (admittedly third hand) is that the root cause of much of the problem is the decision by BA management to go with a bespoke layer on top of the Amadeus system, the underlying Amadeus system being used by many airlines and dealing with very large volumes. That and rolling out the new bespoke layer without clearly testing properly.
Although I'm not an IT person, I have been the manager of multiple IT projects over the past 4 years, and I must say the seductiveness of your own customised system is like crack to a non-IT executive and caused countless internal battles where frankly no customised system has proven itself resilient. Am curious as to the internal cost estimate of this whole FLY problem.