One-to-One Conversion When It Is Best |
For a new, lagre customer I was tasked with the conversion of a large number of IBM COBOL/CICS programs into VAX COBOL/ACMS. It was from the start agreed with the customer that this was a strict 1-1 conversion - all new functionality should come at a later stage. I chose VAX SCAN lexer/parser for a program that should automatically converted IBM COBOL/CICS source code to the new format. DEC COBOL was much like IBM COBOL, but IBM CICS and VAX ACMS were very different, although they solved the same task. In IBM CICS the code is woven into the COBOL programs, while VAX ACMS calls COBOL modules as subrutines (just like TUXEDO). This meant that my program had to turn the inside out on the source code. I wrote the SCAN program and tested the conversion on a few, select program, that we had agreed with the customer beforehand. When they seemed to work, we invited the customer for a small presentation, where the customers comptroller - one of the daily users of the programs - was given the honor to test-run the new edition of the programs. He sat down at the keyboard, filled in a few screen fields, hit RETURN -- and the program immediately exited with error codes and an impressive stack-dump. We were devastated. Worst case scenario - a demo that dumps. Only the comptroller looked happy. "That looks good", he finally said, "this error is also in the old system...". We were eventually laudered for the whole conversion project with the following characteristic: "It was a perfect 1-1 conversion - even the errors were included". |