Do you remember paper tape? It was used in NC (Numerically Controlled) machines of 80s and 90's of the 20th century. I remember them. In the 80's I worked in an electronics manufacturing company. It had many divisions manufacturing different classes of products. I was working in a division producing control systems for flow-process type of manufacturing organizations like fertilizers, chemicals, atomic reactors and so on. That company had one division manufacturing computer systems too. A new type of control equipment had to be manufactured for a customer. This product had a set of densely populated components. Each component had a number of pins around which wire had to be wrapped tightly using a wire-wrapping gun. The wire had to be drawn straight so that it is as short as possible, for technical reasons. Routing the wire in neat bunches was not permitted. Therefore, it was impossible to locate the pins manually. So, we had to use a semi-automatic wire-wrapping machine to do this job, which was available in our computer manufacturing division. It was run by a paper tape. We mount the paper tape on the machine and press its start button; it will point to the first pin; we wrap the wire on the pin using the gun and press the next button; it will point to the next pin; the process goes on until the paper tape reaches its end. To produce the paper tape however, we needed a computer with a paper tape punching machine. Our managers discussed the issue with the managers of the computers division. The managers of computers division agreed. They allocated a programmer to develop the programs necessary to take the data of coordinates entered into a floppy by us and then produce the tape. It was written in COBOL to run on a 32-bit computer that was being manufactured by them at that time. Those computers were using punched cards as the input for data. Now the data is on a floppy and it had to be converted to punched cards. Now, to produce the paper tape using the data on floppy and the program on a magnetic tape, twenty-seven steps were identified and a network diagram was prepared using the PERT/CPM techniques. The steps included converting the data from floppy disc to punched cards, running the tape and programs, producing the paper tape. All these steps needed raising work orders, approving work orders, allocating computer time, scheduling the job, running it, testing the tape and so on. Our managers used to monitor these steps in production review meetings checking off the steps completed and estimating the balance duration needed to complete for producing the paper tape. This went on for a period of six months and the product manager became vexed with the amount of progress chasing he had to do and complained bitterly to the senior management of our division. Then a manager who was having a small UNIX based computer system with two VT- 100 terminals offered that his department had a low capacity paper tape punch and a COBOL compiler. He however stated that he had no COBOL programmer as they work mostly in C language. He also said that his system and paper tape punch would work far slower than the more powerful computer and the punch of the computers division. But the product manager being vexed with the issues with the computer division, agreed to try this new one out. Then I was called in as I knew COBOL. I went and brought the source code listing from the computers division and re-entered the whole program into the UNIX computer by hand using the keyboard. I removed most of the compilation errors adjusting the differences between both the versions of COBOL. But the new compiler did not handle the sort function of COBOL and there were three sort functions in the code! Well, I was stuck but I cut the code into four programs and handled the sort using the sort command available in UNIX from the command line. Now I tested the new system. It had eight steps - 4 program runs, 3 sort commands, and one command to punch the paper tape. I produced one paper tape and gave it for testing on the machine. I was told that it worked as expected. Now, I put all those eight commands into a shell script (a batch file) and I was ready for the demo of the new system. Half a dozen managers descended on me with note pads and pens ready to note the steps in the new system and to prepare a PERT/CPM network diagram! They asked me. "What is the first step? Please do not leave any step howsoever small it may be in your opinion”. I replied, "Put the floppy in the floppy load the paper tape on the paper tape punch”. "What is the second step?” I said, "Type in the command, 'produce tape’ followed by the data file name and press the enter-button”. They dutifully noted the steps. I was once again asked, "What is the 3rd step?” I said, "Please hang on for a minute”. I gave the command and, in a few seconds, the paper tape punch began punching the tape! I said, "The 3rd step is to wait for the paper tape to be punched and then collect the tape”! It took about ten minutes for the punching to be finished and the managers were dumbstruck. The product manager recovered fast and asked me. "Is this all? Why were we having 27 steps earlier? Are you doing some magic here? Let me try”. I got up from and gave him the seat in front of the terminal. He sat in front of the terminal, inserted the floppy, loaded a new paper tape and typed the command. Then in a few seconds the paper tape punch began punching again. He took the tape to the machine and tried it out and it worked as expected. They took over the programs, source code, executable code and the shell script from me. I have not heard from them again. Was I given any award? Forget it. We software engineers are born to work and solve problems
I will write about one more interesting experience in my next article.