Coding matters: When you wonder why

Cartoon of a train and a Roman chariot, on a background that has the word Why and lots of questions marks.

Why is this the way it is? Why do we do it this way?

We’ve all asked these questions. Sometimes we add extra unprintable words, because whatever it is does not make sense. Maybe we don’t have all the information. Maybe somebody made a bad decision long ago. Maybe there was a good reason that no longer exists.

An almost true story

There is a wonderful story about why the Space Shuttle booster rockets are the size they are. (It’s even partly true; it just leaves out some history and over-emphasises some things. You can read the analysis on Snope).

If you are an older engineer, you might be familiar with it. The story goes like this:

  1. The Space Shuttle has two big booster rockets on the sides of the main fuel tank. The engineers who designed them wanted to make them a bit fatter, but they didn’t. Why?

  2. Because the boosters had to be shipped by train from the factory to the launch site. So they were limited by the width of the US railroad. The US standard railroad gauge (distance between the rails) is 4 feet, 8.5 inches (143.51cm to us). That’s a very odd number. Why is it that number?

  3. Because English engineers designed the first US railroads, and that’s the measurement used in England. Why did the English use that measurement?

  4. Because the first rail lines were built by the same people who built the wagon tramways. They used the same gauge they used for the tramways. Why did they use that gauge for the tramways?

  5. Because the people who built the tramways used the tools that they had used for building wagons. And wagons used that wheel spacing. Why did the wagson use that spacing?

  6. Because that’s the spacing of the old, long distance roads in England. Any other spacing would cause the wagon wheels to break more often. Why did the old roads have that spacing?

  7. Because Imperial Rome built the road for their war chariots. All the Imperial army chariots used that as the spacing between their wheels. Why?

  8. Because the Imperial Roman army chariots were made just wide enough to accommodate the rear ends of two war horses.

So the size of the Space Shuttle boosters was ultimately determined by the rear ends of two horses. Proof that bureaucracy lives forever. And that sometimes you have to live with the decision made by a horse’s rear end.

The five whys

On a more serious note, it’s good to remember to ask why. (And it’s good to check claims on Snopes if you are not sure of their truth.)

We need to understand the reasons for things. The “5 Whys” is a problem-solving method. It’s simple: you ask “why?” repeatedly, until you get beyond the obvious symptoms, and discover the root cause of the problem.

Sakichi Toyoda, the founder of Toyota, developed this approach in the 1930s. It’s also used in other methodologies, like Kaizen, for quality improvement.

You can find lots of articles about when and how to use it. It’s a useful technique, and deserves a place in your toolbox of problem-solving tools. (I have used it to identify my real concerns if I am anxious or unproductive.)

For those who maintain legacy code

Sometimes, legacy code is a little like the railway gauge. You have to do things a certain way because of the limits imposed by the horses of long ago.

If you have to maintain old legacy systems, you might enjoy this imaginary conversation with aliens.

I hope this put a smile on your face. We all need a little humour in our day. And don’t forget to share your comments.

Leave a Comment

Your email address will not be published. Required fields are marked *

Thank You

We're Excited!

Thank you for completing the form. We're excited that you have chosen to contact us about training. We will process the information as soon as we can, and we will do our best to contact you within 1 working day. (Please note that our offices are closed over weekends and public holidays.)

Don't Worry

Our privacy policy ensures your data is safe: Incus Data does not sell or otherwise distribute email addresses. We will not divulge your personal information to anyone unless specifically authorised by you.

If you need any further information, please contact us on tel: (27) 12-666-2020 or email info@incusdata.com

How can we help you?

Let us contact you about your training requirements. Just fill in a few details, and we’ll get right back to you.