|Perl: the Markov chain saw|
What follows is a true story. It may bring reminiscences for the older monks and might amuse a few of the younger ones. It may also serve to identify why I have strong feelings on the subject of this thread.
A few years ago I was working on a customers site coding in C. The company had a set of C coding standards, which whilst a perfectly reasonable thing to have and in this case a perfectly reasonable set of standards, they did not match my personal set of coding standards in various trivial ways. Open curly under the for or while not on the end, stuff like that.
Whilst its not the end of the world, I found myself perpetually having to go back and edit stuff that worked fine but didn't comply with the standard. This had a disastrous effect not just on my productivity but also on my mood.
The environment was OS/2 - and I was something of a guru. I had 'sneaked' a copy of my favorite editor (at that time an IBM 'Internal Use Only' editor called E3 that later became a commercial product called SlickEdit) which had its own built-in, c-like macro language. And I had in my personal armory a small shareware c-beautifier program which had options for reformatting to various conventions. So, like any good craftsman would, I adapted my tool to suit and added macros that used C-Beaut to convert to my preferred format on load and back to the house standard on save. Sorted.
A few days later I was taking my boss through some of my code on screen, and he commented that I wasn't using the house standards, so I showed him what I had done. He liked it.
He thought it significant enough that he asked me to show him how it was done, and that brought up the subject of licensing. I had paid ($35) for my copy of C-beaut, and whilst the editor was IBM IUO, it was also available for free, unsupported use to IBM customers so that was ok. So my boss asked me to write a short memo detailing the tools I used and how I had set them up to the corporate IT dept (actually still called EDP Dept.:), which I did. The idea that the tools would be officially sanctioned and made available internally.
A few weeks went by and I had forgotten about it, when a "report" landed on my desk with a (literal) thud bearing a pink "Needs urgent attention!" label attached. The report consisted of approximately 600 sheets of continuously printed, 132 column green-lined listing paper. (How many remember that stuff? Is it still used?) Each page was formatted identically.
There was the name of a program as the title.
A short description of what it did.
The author /supplier name and address.
License type:Freeware, shareware, commercial etc.
"I installed the program. Loaded it up and tried it."
"I input the file testnnn.c (available in \\server\path\to\testnnn.c) and it produced the file outnnn.c (\\server\path\to\outnnn.c)"
"Seemed to work ok!".
Cutting a long story short, my original memo requesting the site licensing of C_Beaut had been brought up in a meeting of the EDP Dept "steering committee". The lowly SysAdmin guy to whom it had fallen to 'implement' the memo had been completely blown away by E3 (they still used SPF and wrote everything from their time sheets to annual reports using it and Bookmaster!). He had been brought in to give the "demonstration" having first coordinated the efforts that where involved in getting a PC (ps2 m80) running in the meeting room. It hadn't been done before so took some effort. This was the EDP dept.'s. own, private meeting room you understand. There had never been the need to put a PC in there before. They had a 3270g in one corner, but that got very little use during meetings.
As a result of the guys enthusiasm, the proposal was provisionally accepted, but the committee felt that if the C_Beaut was so good and useful. Maybe there were other, similarly small, cheap utilities available that could be used to set up a productive, standardised "development environment" for the "PC types".
So they commissioned a report. An external consultancy was paid (10,000 1988 UK£'s - a pretty good annual salary for a junior prog. back then! And yes. I said ANNUAL!), to produce the report. Four weeks work later and the thud on my desk was the result.
The young SysAdmin guy had moved on and no one else in the dept. wanted to sully themselves with reviewing 600 pages of 'PC stuff', so it had eventually found itself to my desk. My job was to 'approve the report'!
And so it goes.
A request for a simple, $35 productivity tool had chewed £10,000 of company money (not counting the thousands in salaries of those in the 3 committee meetings (never less than 30 people) that had been spent as a result of my original request.
The final kicker. The author of the program was contacted and asked how much he wanted for a site license for the program. He quoted something like a $1000 one off payment. That seemed ok and a purchase order was raised and sent to purchasing. The purchasing department contacted the 'supplier' with a standard contract for supply, complete with support requirements, response times, update licensing clauses etc.
The supplier wrote back saying that the program was supplied on an "as is" basis and no support was available.
The purchasing dept. wrote back saying that they could not accept these terms.
The guy wrote back saying "Bad luck! Those are the terms. Take it or leave it.
The purchasing dept wrote back again saying that the only way that could accept those T&C's was if the program was supplied with source, that the source be supplied free of any legal ties etc. Could the supplier please provide an updated quote for the supply of the program--"royalty free source inclusive"-- and reflecting the new pricing arrangement.
The guy replied with a 3 1/2" floppy disk (containing the executable with his copyright amended to include the companies name and a "joint and several" clause, 1 .h file (32 lines), 1 .c file (66 lines), a make file (4 lines)), and an invoice for $5000. 90 days later he was paid.
Oh! nearly a year later, I finally got irritated by C-Beaut's habit of leaving the last line of its output without a "\n", so I asked if (as we had the sources), it would be ok to fix it. After approval was sought, given, and I had provided a test plan for verifying the changes, the sources were sought so that I could 'implement the changes'. Alas, the sources could not be found.
They were eventually found. The floppy disk had been carefully filed along with the invoice and associated correspondence. Stapled to the purchase order!.