February 12, 2013
Why do cars have brakes?
I noticed this question on Jon Jagger’s blog and I was delighted with myself that I managed to get the “right” answer without peeking.
Stop reading right now, have a think about it, then head on over to Jon’s blog to see what he has to say on the topic.
Then, if you want, read on…
How would you drive if your car didn’t have brakes? Perhaps you’d stick to 5mph because at that speed you can use the wall of the building you’re visiting, or a nearby tree to stop. On a school run 5mph is probably a safe speed at which to throw an average 8 year old from a moving car. Maybe 10mph if they are sturdy.
Brakes allow you to travel faster because you have the power to stop, or slow to safe child throwing speed at will.
Brakes allow you to drive faster but react to exceptions, like a child running in front of the car. Even with brakes you can get into trouble by being reckless, but all things being equal a car with brakes can be driven faster more safely than a car without.
Since the point of driving is the getting around, and not the stopping, it would be odd if the entire driving process was limited by our lack of stopping ability. We add brakes to liberate ourselves from that worry.
In Software terms our goal is to build software, not to catch or fix bugs. So we adopt processes like automates tests, executable specifications, continuous integration, automated builds and deployment, not for the sake of what these things do, but so that we can focus on the building of the software and know that if we introduce a bug the tests will stop us, and guide us straight to the problem, if we break the build the build server will tell us.
If you drive a software process with no brakes, you either have to go 5mph, regression testing everything manually building manually, deploying manually, resolving deployment conflicts manually.
Or, you can be reckless, you can belt along as fast as you like hurling builds into production without a care for the consequences. In software terms you are a parent who throws your kid out the window as you whiz by their school at 40mph, or hurtles into junctions knowing that if the unexpected happens, you have no hope of averting disaster.
Sometimes that things that “slow us down”, or even “stop us in our tracks” are there to enable us to go faster.