Column Bernd Schöne: Documentation – Damn the Cost!

Smart Solutions

Column Bernd Schöne: Documentation – Damn the Cost!

Have you ever wondered how old the most important software packages in the world are? Spoiler alert: they’re very old. Like aging populations, aging software systems are becoming a major problem all over the world. When Covid-19 struck in early 2020, the US government ran into deep trouble. The computers running the US unemployment system, it turns out, were written decades ago in a language called Cobol. Unfortunately, virtually no one has used Cobol for years and most of the veteran programmers still fluent in it retired long ago. The government sent out a call for help and IBM, eager to port the programs to a more modern system, tried to find enough old hands to do the job. It turned out most of them have already passed away. Houston, we have a problem!

Government agencies aren’t the only ones. Banks and financial institutions still run hundreds of antiquated systems. Ninety-five percent of ATMs still use Cobol. About 80 percent of all in-person bank transactions are conducted on Cobol mainframe systems. It is believed that an estimated 220 billion lines of Cobol code are currently in use today. And, if that’s not bad enough, most of these old clunkers are either poorly documented – or not at all.


Bernd Schöne

Who remembers to update the documen­tation? Anyone? Very, very rarely, I assure you!

Bernd Schöne
is a German veteran in Internet journalism and an expert on data analysis.

 

If good mechanical engineers can get their hands on the original blueprints, they can build replicas of old ocean liners, vintage airplanes, or ancient steam engines. It’s not so easy in the world of computers. Yes, guidelines for software documentation exist – but is anyone sure they’re correct? Every time a computer program needs to be redesigned because of changing legal requirements, for example, or to access a new piece of hardware, who remembers to update the documentation? Anyone? Very, very rarely, I assure you!
Holger Hermanns, a professor in computer science in the CPEC Center for Perspicuous Computing at the University of the Saarland, Germany, has been calling for years for what he describes as “self-explanatory computer languages”. Currently, even the author of a piece of software often can’t tell after three or four months which comment refers to which statement in the documentation, he argues. Computer code should be like a well-written novel. Anybody can read Gone with the Wind without having to refer to notes and commentary, but there is no such equivalent in IT to-day, he says.
Right now, Boeing is learning the hard way how challenging (and expensive) troubleshooting in software development can be. Following two tragically fatal crashes of their 737 Max airliner, the plane’s Maneuvering Characteristics Augmentation System (MCAS), which is said to have played a significant role in the accidents, needed to be reviewed and revised from top to bottom. In the meantime, the Federal Aviation Administration refused to let Boeing’s bestseller take off again until the software bugs were fixed. The lack of proper, self-explanatory software documentation must have cost America’s biggest plane maker extra billions.
An even more embarrassing mistake, at least for the programmers involved, was NASA’s Mars Climate Orbiter (MCO), which was supposed to soft land on Mars in 1999. Two teams wrote the code independently of each other but one, based in Europe, used the metric system while the other, in the US, used imperial units. The result was a huge pile of smoldering junk on the surface of the Red Planet.
Programmers certainly need to take more care with their homework. Detailed documentation at every step of development and revision should be a given. Even more important, at least in my humble opinion, is a requirement familiar to every architect who has designed a skyscraper: all designs have to pass muster under the scrutiny of a structural engineer. What we need in software development is a similar system of routine and obligatory checks by external, certified experts.
Will this cost money? You bet! Will it mean software projects will take longer? Certainly – but if it means major saving in lives, property, and reliability, then damn the time and the cost, I say!

Comments are closed.