I'M JASON ROY. I was working, as a computer programmer, for a large company that provided programming services to commercial customers and also to military customers.
I had been assigned the job of Project Manager, on an important job for a military customer. The first Project Manager had been an incompetent and, as a result of the first Project Manager’s incompetence, the project was behind schedule and over budget. The total failure of the project would be a major black eye for my employer.
After I was assigned, as the new Project Manager, I jumped in and, with a team of four programmers, began to clean things up. Since we were behind schedule, we worked with military oversight, day by day. (Having someone peer over your shoulder when you work is not fun, but comes with the territory, when you have to clean up after an incompetent.)
We began to clean up the known errors and made measurable progress, day by day. As stated, we had customer oversight and the daily progress was reported to the customer.
The work was hard, but we made steady progress and thus the customer was willing to wait for a little bit.
I wrote a daily progress report and I was able to credit problem solutions to individual team members, on a pretty much day by day basis. I tried to be fair. Apparently at least one of my team members was not pleased with what he or she was being credited with and that team member apparently complained to upper management, without telling me first.
Upper management called me in and began to lean on me. I asked the managers to talk with the team members and provide me with specific complaints. Upper management claimed that they did talk with individual team members, however, they were unable or unwilling to provide me with specific complaints. (It was at that point in time that I begin to realize that something was really wrong.)
I talked, individually, with my project team members, to try to find out what the problem was, but got nothing of any use.
We were then in the home stretch and cleaning up the last few known errors. There was an agreed upon government acceptance test that the software had to pass. I would test run the government acceptance test, from time to time, to determine that we had indeed cleaned up more of the known errors and that we had not generated more errors, in the process of cleaning up the known errors.
One evening, I had stayed late, trying to track down one particularly elusive error. I did manage to correct the error. In the process of correcting the error, I found that a particular calculated number, not directly connected to the error, was not quite right. A brief examination revealed that a call to a calculating routine was using wrong units, meters instead of feet. There were four such wrong calls in the program. There were available values, for the calls, in the proper units. I then made what are called patch changes to the software, changes manually keyed in through the front panel switches of the computer. I saved the patched load tape and then found that there were four areas where the wrong unit call would have a major impact. None of the four areas was really addressed by the customer acceptance test. I then ran my own little tests and found that I could produce obvious errors, with the old, wrong units calls and correct results with the newly patched software. The newly patched software also seemed to correctly run the acceptance test.