Solving complex application problems with ART
I have always felt rather second-rate as an IT pundit as I have yet to introduce my own TLA (Three-letter Acronym ) into the IT industry. I would therefore like to suggest a new branch of IT: solving IT problems by Antiquarian Research in Technology. Or ART, to us aficionados.
Time and again in my working life, I have come across some truly bizarre applications. At first glance, the existence of such a system can seem inexplicable. When called upon to upgrade one of them the natural tendency is to re-write it from first principles. This is time-consuming and often involved more work than is strictly necessary. On occasions when an application is so complex that rewriting it from scratch is infeasible, one may simply throw one’s hands up in defeat and allow the bizarre application to keep trundling on, often way past its natural expiry date. I offer a third way: progress through ART.
I was once called in to help with the decommissioning of a large VAX mainframe. It was getting expensive to run and all but one the database applications that it was hosting had been superseded. This last application was, I was told, doing engineering calculations of such a specialist nature that it was likely to be understood by only a handful of postgraduate academics with extra lobes to their brains. I was asked to find a home for this application, either by re-writing the application or porting it to a different host, so they could then switch off the VAX. It seemed an impossible task.
In some awe, I visited the computer centre, and was guided round by the manager who proudly showed me the enormously expensive mainframes, the Star-Trek network boxes with their twinkling lights, and the fire-prevention systems that, in a moment, could fill the place with carbon dioxide and exterminate every life-form within.
The analyst who tended the VAX had never had to maintain the system in any way, and had never probed the inner workings of the application, but he did express his puzzlement at the huge amount of disk access that it required. A quick look at the source code was enough to convince me that no human had spawned it. It was completely opaque FORTRAN code with numeric labels and no comments. It looked like the machine-generated output of a 4G Language. I did the only sensible thing, which was to recoil in horror.
When I had calmed down, I mulled over the problem. This was a complex and technical application. The “real” source code for it was missing and the machine-generated code was un-modifiable. Rewriting it from scratch was not an option. Further, the FORTRAN code was completely machine-specific, so a straight port was out-of-the-question too. Refusing to be defeated, I turned to ART. I felt that if I could find out how on earth the application had wound up where it was, in the state it was, I would be much closer to a solution.
Since all I had were the names of the people using the application, this seemed like the best place to start. Unfortunately, as far as their knowledge of the application went, they merely turned the handle, and got the results they wanted so they proved to be of little help on that front. However, they did provide me with the name of the manager, long since gone, who had originally been responsible for the application.
I met the grizzled old business manager, a plain-speaking engineer, as he tended the roses in the garden of his retirement bungalow. Over a couple of pints of a very fine beer (Mauldon’s Blackadder Stout, in case you’re interested), he told me his tale.
In those far-off days, he’d been responsible for the design of a vital part of the product that the company manufactured. It was a fiddly and difficult part that was prone to fracture due to the stresses put on it. Over-engineering the part wasn’t the solution because of weight restrictions. He decided that the only way to solve the problem was to calculate exactly how the part should be designed purely according to the forces placed on it.
The project was opposed by corporate management, whose “accountancy culture” failed to understand the requirement. It also was subject to all manner of blocking activities by the IT department, who had a visceral revulsion toward any IT initiative that they did not initiate and control. They used the regulations within the Corporate IT Standards Manual as a stick with which to beat the project. Such an important application had, they argued, to be developed to run on company-standard mainframes in a computer centre.
Nevertheless, he persevered. Since the project was completely unofficial, there was no funding. Armed only with a redundant CP/M-based computer called an ‘Intertec Superbrain’ that he found in one of the departmental cupboards, and the covert help of a PhD student from a very fine university engineering department, he began work on the project.
Intertec Superbrain had no hard disk and only 64K memory, so the application had to do its own paging onto one of two floppy disks. During its calculations, Superbrain would grind and buzz like a demented coffee machine but the results it spewed out were pure gold dust. They described a design that would enable the department to produce engineering solutions that were cheaper to make and of vastly increased quality.
This caused enormous upset.
Both corporate management and the IT department had to find a way to pretend that they had actually supported the project all along. This was achieved by a process known as “Grandmothers Footsteps” (or GF), which allowed them to effect a complete about-face, via a series of small and subtle changes of position, barely detectable to their colleagues. As a face-saving exercise, the IT department agreed to port the successful application to a mainframe in a secure data-centre. This enabled them to say that it then conformed to corporate standards for a ‘critical’ application that was essential for the prosperity of the enterprise. In this way, peace was restored, though it was peace at a price: the port was expensive, and the application was consequentially lost from sight of the people who had designed it, and frozen at that point. It became a black box.
With the knowledge gained from the retired manager, I managed to dig out from the files the address of the software company that had been commissioned to port the application to the VAX. I drove over to see them. The management looked tense and waffled me a blizzard of defensive gobbledegook. I suspect that they knew nothing of the work or whether the proper records had been kept of the job, and they didn’t want to risk their reputation with our company. Fortunately, they caved in once I started asking scarily technical questions, and introduced me to the programmers. Cheerfully, and with little guile, they added the next chapter in the story.
When the application had arrived, they had managed to find an identical Intertec Superbrain computer. They observed with fascination the whirring of the disks and the flashing of the access LEDs as it ran the application. They couldn’t understand what on earth the application was supposed to be doing. It was written in interpreted BASIC, had its own primitive database and did its own paging to disk.
Faced with an application that they would never be able to fully understand, or reverse-engineer, they did the only sensible thing they could and bought in a product that was able to convert the BASIC code into Fortran, which was then compiled and put on the VAX. The floppy disks were emulated on two small areas of the VAXs mighty drives. Lo, inside the VAX was a little cocoon which held a virtual CP/M application: the ghost of a ‘Superbrain’ inside the machine. Whenever the application was used, the duty operator in the data centre operator would look up from his newspaper in surprise at the sudden increase in disk activity.
With a tremble in my voice, I asked if they still had the original BASIC source. A programmer bounded down into the cellars and, after a tense ten minutes, returned with the CP/M SuperBrain disks (a special format that we eventually managed to read without major difficulty) and a printout of the source on fanfold ‘music’ paper. Eagerly we pored over the runes like Egyptologists over a sand-worn inscription. It was all there, with liberal comments, in the old Microsoft CP/M Basic.
So, after a bit of research and some pleasant days out, we were able to take the original BASIC source and convert it to Visual Basic for DOS, pulling out all the paging code in the process. The application then ran on every machine in the department sweetly and silently. So pleased were the engineers, and so cheap was the solution to the decommissioning of the VAX, that the IT Department felt it prudent to forget their stipulation that it had to run in a data centre. The mighty VAX was finally turned off for the last time, and the data centre was able to reduce their staff headcount. Once the code was accessible, the engineering graduates leapt on it and were able to improve it in several subtle ways.
As they became more familiar with the application, one of the graduates realized that, since those far-off pioneering days, the whole science of computer-aided Engineering had moved on remarkably and that a vastly superior application could now be purchased very cheaply and run on a Workstation. At last, old SuperBrain could be fully laid to rest; the ghost in the machine led to the light.
When the engineers got their Workstation application, they invited me over to see its graphical wonders. In glancing through the manual for the new system, my eye was caught by a name: there was a credit to the University engineering department that had helped to develop the original SuperBrain application and the name of the original PhD student (now a professor, I noticed). Perhaps, I mused, the soul of that old application lived on after all.
Does anybody else remember coming across a bizarre application that suddenly seemed perfectly logical once it was clear how it got like that? How often are applications completely distorted through departmental or corporate politics? If you have any stories to tell, please enter your comments below — Phil.