Wednesday, December 15, 2010

What Horse's Ass Said You Should Do It That Way?

Have you ever asked what horse’s ass said you have to do things a particular way? A while ago I received an email from my old Bell Labs friend, George Scott, who forwarded an email from another old friend, Emil Wrede, about an extreme example of the impact of why things are done the way they are. It’s a story that has endlessly made its way around the Internet, and I had seen it many times before and chuckled, but George pointed out that could be good fodder for one of my e-Newsletters and blog posts, and he is absolutely right! So, here is the story, unedited.  Be sure to read the final paragraph; your understanding of it will depend on the earlier part of the content.
The US standard railroad gauge (distance between the rails) is 4 feet, 8.5 inches. That's an exceedingly odd number. Why was that gauge used? Because that's the way they built them in England, and English expatriates built the US railroads.
Why did the English build them like that? Because the first rail lines were built by the same people who built the pre-railroad tramways, and that's the gauge they used.
Why did 'they' use that gauge then? Because the people who built the tramways used the same jigs and tools that they used for building wagons, which used that wheel spacing.
Why did the wagons have that particular odd wheel spacing? Well, if they tried to use any other spacing, the wagon wheels would break on some of the old, long distance roads in England, because that's the spacing of the wheel ruts.
So who built those old rutted roads? Imperial Rome built the first long distance roads in Europe (and England) for their legions. The roads have been used ever since.
And the ruts in the roads? Roman war chariots formed the initial ruts, which everyone else had to match for fear of destroying their wagon wheels. Since the chariots were made for Imperial Rome, they were all alike in the matter of wheel spacing. Therefore the United States standard railroad gauge of 4 feet, 8.5 inches is derived from the original specifications for an Imperial Roman war chariot. Bureaucracies live forever!

So the next time you are handed a Specification/Procedure/Process and wonder 'What horse's ass came up with it?' you may be exactly right. Imperial Roman army chariots were made just wide enough to accommodate the rear ends of two war horses (Two horses' asses). 
Now, the twist to the story:
When you see a Space Shuttle sitting on its launch pad, there are two big booster rockets attached to the sides of the main fuel tank. These are solid rocket boosters, or SRB's. The SRB's are made by Thiokol at their factory in Utah. The engineers who designed the SRB's would have preferred to make them a bit fatter, but the SRB's had to be shipped by train from the factory to the launch site. The railroad line from the factory happens to run through a tunnel in the mountains, and the SRB's had to fit through that tunnel. The tunnel is slightly wider than the railroad track, and the railroad track, as you now know, is about as wide as two horses' behinds.
So, a major Space Shuttle design feature of what is arguably the world's most advanced transportation system was determined over two thousand years ago by the width of a horse's ass. And you thought being a horse's ass wasn't important? Ancient horse's asses control almost everything ... of course!
OK, this really is an amusing story, and really is based on history. It gives almost unprecedented meaning to the term “backwards compatibility”. But what does this have to do with you as an engineer or knowledge worker?  Well, let me count the ways!
  • Someone designs a product (hardware, software, mechanical, or all of the above) making some design decisions based on the limitations of the technology that exists at that time. It was not even viewed as a limitation at the time, just what made practical sense. Subsequent related products must then contort themselves in extreme ways to satisfy the initial arbitrary decisions for years to come. As an example, think about the initial memory limitations in MS-DOS (due to the high cost of memory devices at the time) and the contortions that went on for years to conform to the limited memory allocations that were initially made. Think of all the similar limitations you’ve been forced to live with in your product areas.
  • You come up with an elegant design that efficiently and effectively implements a solution to a problem that has troubled customers forever, promising to simplify their lives in ways not thought possible, only to be told by your management that in order to be compatible with some outdated but critical internal systems (possibly not even related to the product you’re designing), you simply can’t use your groundbreaking solution.
  • You independently, and legally, reverse engineer a portion of another company’s extremely successful but proprietary product, enabling you to integrate that company’s product smoothly with your own, potentially enhancing sales of your and their products, only to be told that you can’t do it that way due to “potential” infringement concerns. As a consequence, your elegant and ready solution is abandoned for a long “legal” approach that is costly, time consuming, inelegant, and likely unsuccessful.
There are so many examples of having to live with someone else’s past decisions. You must contort your software so that it will work compatibly with Internet Explorer. You must force your product to comply even with unused portions of an aging protocol standard. You must cripple a new software product so that it can interoperate with another company’s product. You are being forced to sell a new and dynamic product through an old and dying sales channel, and missing the opportunity to open up new and more profitable ones. Etc., etc.

“Do it this way because that’s the way things have always been done!” is a phrase that has been said repeatedly in companies around the world, often to the disdain of creative engineers and other knowledge workers. You’ve got to be backwards compatible with this or that or the other thing. There is an old joke that goes: “How was God able to create the world in just six days?” Answer: “He didn’t have an installed base to worry about!”

As frustrating as this can be, sometimes it’s just the way it is, and the “unreasonable” requirements are real and must be followed. Sometimes sanity can reign and decisions to take a new and unfettered approach will be made. Still, even in those cases, that “new and unfettered approach” will then become the new “standard” that future designs must be backwards compatible with. And so the cycle continues.

So, it’s not always about some horse’s ass who sets “unreasonable” requirements for a product. Sometimes the horse’s ass is the requirement!

No comments:

Post a Comment

Comments are welcome and encouraged!