Dec 30, 2016

Perfect vs. Good Enough

I’m sure many people have similar stories. But about 35 years ago or so, our company was busily beginning to use Fortran to produce programs for our 8080-based systems. We had done lots of assembly language before. But this was an experimental time, changing over to rapid development using higher order language. When we started looking at what we needed to do, we noticed that there was a lot of string handling in the applications. However, the Fortran libraries that we had really didn’t have very much to help.

As almost any good software group would, we immediately formed a committee to design our corporate standard string library. Needless to say, this included the chief scientist, a vice president or two, and sundry experts. As you might expect, discussions immediately started over string formats. Length delimited or end marker delimited were two of the major religions that I can remember, with several variations. The discussions grew heated. Meanwhile, the list of necessary, nice, etc. functions was another battleground.

After more than two months of this, there was no real end in sight. However, as a young project leader with some assembly language experience, I got bored with the endless discussions one day and pulled out my set of “standard routines.” With just a little bit of tweaking, they interfaced with the Fortran code just fine.

Based on the meetings, I did run over the list and added a few twists that I had missed. I also tested everything thoroughly, and documented my “Temporary Working String Library (TWSL).” I turned this over to the project team that needed to get our product out, and went back to the standards meetings feeling better. I knew that at least my project could go ahead, and I thought that the eventual standard library would end up relatively close to the temporary one I had produced.

However, when the rumors about my temporary library leaked back to the committee, I was not terribly welcome for a while. I think it was the chief scientist who suggested that my valuable time might be better spent on my project, and he would let me know when they came up with the standard. I know that the meetings continued. For all I know, they may even still be going on.

However, my TWSL was used on that project. And others. In fact, there was a revision 2 that I helped with before it went into general use of the company.

For me, at this point, the interesting thing is looking at the process. Here were several experts, all of whom had done extensive software programming and development with assembly language, Fortran, and using various operating systems. Remember RSX-11M? Several people at the company had cut their teeth pawing through that source. But for some reason, given a chance, they got too busy trying for perfection to get the job done. We didn’t need a string library for the ages, we just needed one that we could use today.