Part of the reason is that this software has been in the works for over two decades without any effective direction from above to fix the problems. In that time, the hardware the software was based on became obsolete and the software had to be rewritten to run on more modern hardware. When the software creation began in the early '80s, the Department of Defense was mandating the use of a unique software language, ADA, that was to replace all the other software languages then being used for defense work. ADA didn't work out as expected, but some 80 percent of the F-22 code is still written in ADA. Getting good ADA programmers was always a problem, as ADA never caught on outside the Department of Defense. As a result of the limited pool of programmers would could work on the F-22 software, quality and imagination (in the design of the software) suffered. To further complicate matters, the hardware (electronic and mechanical components) the software was to control kept changing, and the software had to be modified to adjust. As a result, F-22 is further delayed from being ready for service, and the aircraft is moved closer to cancellation.
For a long time is was said, only half in jest, that you built a new warplane by finding the most powerful engine you could and then building an airplane around it. That has changed in the last two decades. The engine and the airframe are now relatively easy, but the software to make everything work together has become the hard part. The F-22 software comprises some two million lines of source code (the text and numbers that are converted, or "compiled', into computer readable instructions). This code is complex, and it must work reliably for long periods of time, because the F-22 cannot fly without it's software (or at least most of it) working properly. By current standards, the F-22 software is not particularly huge. The Windows operating system comes in at over 40 million lines of source code, and has been in development since 1988, a few years less than the F-22 software. A competing operating system, Linux, contains a bit more than 30 million lines of code (and began development in 1991). Compared to the F-22 software, the two operating systems are rock solid, able to operate for thousands of hours without a crash. Why is the F-22 software so delicate. As of 2003, after over a decade of effort, the code was crashing, on average, every three hours. Some parts of the software system were failing every 90 minutes. There has been some improvement as of 2004, but the F-22 is still not ready for prime time because of the unreliable software. No one is quite sure why the F-22 software is in such a sorry state, and fingers are pointing everywhere. There are some suspects though.