The Pentagon's Seven Million Lines of Cobol
MrMetlHed writes "A portion of this Reuters article about the Pentagon's inability to manage paying soldiers properly mentions that their payroll program has 'seven million lines of Cobol code that hasn't been updated.' It goes on to mention that the documentation has been lost, and no one really knows how to update it well. In trying to replace the program, the Pentagon spent a billion dollars and wasn't successful."
But - but - cobol is supposed to be self-documenting!
At least that's what my old B-school roommate told me.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
a billion dollars to replace an antiquated program and the project fails. This is why our military is the most expensive in the world, and why I've argued for years that comparing military spending between nations is only apples to apples if each nation is competently spending what they are given.
In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
Army in the 90's
Everyone's pay gets screwed up at least once, then. Uncle Sam takes it back
Mostly minor things like an allowance like jump pay being paid while not on jump status
Sounds like corruption. If you can't wrangle up a team of coders and project managers with a billion dollar carrot, then there is something terribly internally wrong with your process.
They had way more soldiers back then today, and payroll did not seem to be a problem. Maybe the Pentagon should go back to using whatever system they had back then.
Give me a billion dollars and I can learn the process, learn TO code, code it, test it, and implement and support it myself.
There is basic pay, plus “entitlements” for everything from serving in a combat zone to housing allowances to re-enlistment bonuses. An individual’s pay can change several times in a day.
likely the old software can't deal with all of that to well.
http://www.informationweek.com/government/state-local/outdated-it-blocks-california-payroll-or/225702383
I tried to read the article, but it was written in English - a decades-old language.
I wouldn't mind taking this one on. Sure it's already been done, but I'm sure they'd pay to have it done again.
My only stipulation is that I'd want to do it all myself with just one business analyst and one quality control tester.
I think I could manage it in 3 years at 3 million dollars. However I'd probably cause the loss of 10,000 jobs so its probably not going to happen :)
Aww, come on, fellas and gals: this IS the five sided puzzle palace we're talking about. You're expecting too much of them.
The code base is so large that its ~4.8 lines per active duty US military person. The code would be shorter if it was nothing but one line per person that prints how much to pay. You might argue that this would have maintenance issues, but automated porting of it would be trivial, and for the $billion they spent try to replace it, you could pay almost $1000 per print statement to keep it updated.
Also, seven million lines of COBOL is about what it takes to write a Sudoku solver in COBOL.
Eh...there probably was some half baked documentation at some point,
Yes, there was and there is. It's called "source code." One of the reasons that COBOL is such a verbose language is that it was designed so that bean counters with no programming experience could audit the source code and understand it well enough to make sure that nobody was stealing anything. Not only that, it's rare that COBOL code actually needs any comments because the variable names are long enough that you shouldn't ever have to guess what any of them are used for or what's being done with/to them.
As far as spaghetti code goes, that can be a problem, especially in very old code, from before such things as structured programming were conceived. And, there's even a statement, "ALTER," which allows you to create self-modifying code, although even back in the '80s when I learned it in school, we were warned never to use it.
Good, inexpensive web hosting
contract out that stuff to someone who is good at it... like ADP.
They did! That billion dollars wasn't to rewrite it -- that was just to buy and integrate a PeopleSoft package! Supposedly, PeopleSoft is good at that kind of thing, since that's what they sell to other big companies too stupid to write and maintain a simple payroll system.
They don't need to try integrating to someone else's package again, unless they want to shovel another billion dollars into some other undeserving contractor's hands.
John
when the mil/gov spend a billion on some software project and it fails, we need to start calling it what it is: fraud perpetrated by consultant/contractors.
it's bad enough when the industry burns 10-50M on an ERP project for a company (or university!), but pretty soon those tens of millions add up to real money. spending a billion should be HARD!
For 33 years the government has been trying to replace the 60 year old air traffic control systems. Three different systems have been tried. The first was a complete write off, meant to be an IBM designed Unix based system, it went overdue by years and billions and was killed off in 1994. http://www.baselinemag.com/c/a/Projects-Processes/The-Ugly-History-of-Tool-Development-at-the-FAA/ The Second named CARTS began in 1996, meant to be a replacement for the aging radar systems the program did replace the older systems in some airports, but again the program was killed for cost overruns and stalled production. http://www.fiercegovernmentit.com/story/tracon-air-traffic-control-modernization-faces-prospect-more-schedule-cost/2013-06-02 http://www.bloomberg.com/news/2013-05-31/air-traffic-upgrade-over-budget-facing-delays-report.html In 2003 they revived the project with compartmentalized implementations of an integrated system in order to see short term improvements. The first system, a replacement for CARTS renamed STARS) went in in 2012 and it is costing 60% more than expected, with the remaining systems set to be developed and implemented over the next 13 years. The next system to be implemented, ERAM, is already overdue by 4 years, over budget, and according to FAA reports, subject to critical failures and instability. http://www.airtrafficmanagement.net/2013/06/nextgen-over-budget-delays-certain-report/http://www.fiercegovernmentit.com/story/eram-continues-undergo-critical-failures/2012-10-02 http://en.wikipedia.org/wiki/Next_Generation_Air_Transportation_System
Very common in older mainframe shops. Poor source control. You can reverse engineer it but good luck.
I hate being bipolar; it's awesome!
Cobol is based on the notion of processing what are essentially formatted text files, one line at a time. If you knew the format of a file to be read by a Cobol program, you could re-write it in awk and use about 1/50th the amount of code.
Of course what really needs to be done is to document the actual process and system requirements, and then just put up a modern payroll processing system. The biggest problem is that there are a lot of people whose job it is to take a piece of paper from one bin and put it in another. All of those jobs would be put at risk were you to actually do something substantive about this problem. They're far more concerned with their jobs than actually getting anything done.
You are correct. And wrong. According to the Reuters article, there were more than 15,000 requirements changes during the lifetime of the project. So you had precisely the right idea. You just underestimated the ability of a bureaucracy to fight back. By an order of magnitude.
And that's what it was, too. Make no mistake, the project failed because a successful software system would reduce the headcount of the DFAS dramatically. That couldn't be allowed to happen, so it was sabotaged by eternal feature creep.
And of course, they started with PeopleSoft, and there's no organization better at absorbing all available money for no return besides the DOD itself. Talk about a match made in hell...