From a Reuters article about problems with military pay.
A review of individuals’ military pay records, government reports and other documents, along with interviews with dozens of current and former soldiers and other military personnel, confirms Aiken’s case is hardly isolated. Pay errors in the military are widespread. And as Aiken and many other soldiers have found, once mistakes are detected, getting them corrected - or just explained - can test even the most persistent soldiers.
Reuters found multiple examples of pay mistakes affecting active-duty personnel and discharged soldiers. Some are erroneously shortchanged on pay. Others are mistakenly overpaid and then see their earnings drastically cut as DFAS recoups the money, or, like Aiken, they are forced to pay money that was rightfully theirs.
Precise totals on the extent and cost of these mistakes are impossible to come by, and for the very reason the errors plague the military in the first place: the Defense Department’s jury-rigged network of mostly incompatible computer systems for payroll and accounting, many of them decades old, long obsolete, and unable to communicate with each other. The DFAS accounting system still uses a half-century-old computer language that is largely unable to communicate with the equally outmoded personnel management systems employed by each of the military services.
Ah, COBOL. That was a fun language. Back in 1988, I was a programmer stationed at the Standard Systems Center at Gunter Air Force Station in Montgomery, Alabama. I was working in the database shop where we supported Air Force bases with database problems on their Unisys mainframes. Patching pointers over a 300 baud modem was high tech at the time and we were high tech gods.
All the programs that ran against those databases on the mainframe were written in COBOL. Not long after I arrived there, someone complained that the civilian pay program was running too slow. Being the new guy, I was given the task of tracing the code. (I don't know why this ended up in our shop and not with the people responsible for writing and maintaing the code.) Surprisingly, I found that something like 60% of the code wasn't even being used. As the program was updated over time, people left unused chunks of code in the Procedure Division. Since the syntax was correct it still compiled. To my knowledge, nothing I did made the program run any faster. And I don't know if the responsible shop ever cleaned it up. I only bring this up because it fits within my confirmation bias.
I remember that when I left in 1994, a big push was starting to move off the Unisys mainframes and onto more modern hardware. Also, Ada was touted as the language of choice for converting many of the COBOL programs. I never heard what became of the modernization effort. Twenty years later it's apparently a work in progress.
Oh, and DFAS handles my retired pay.