Navigate / search

Why do cars have brakes?

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 the drivel that I’ve posted below.

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.

Comments

Haikarainen
Reply

“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”

Or you know, engine braking.

1111
Reply

Point: missed

Richard
Reply

Indeed there is. But…
“Why do cars have engines? To go slower” doesn’t work quite as well as a metaphor.”

Josh Rice
Reply

Or you could push a button to have your tires deflate, a parachute deploy, fire rocket boosters on the front of the car, or raise flaps to increase drag. There’s also the tried and true “Flintstoning” it. …Can we be done being pendants now?

While there is engine braking in certain engine types, it’s no where near as effective as real brakes.

Raph
Reply

“engine *BRAKING*”. the hint is in the name.
it’s still about braking. going slower by means of some tool designed precisely for helping you reduce speed.

Carlos
Reply

Sorry but there is no “deep truth” to this information because it’s inherently false. It allows you to drive faster? Hardly, it allows you to drive, period. No one with a sane mind would drive without a means to slow or stop their movement on command.

Do you really believe coasting at 5 MPH would actually happen if there were no means to stop a moving 2000lb hunk of metal? No one would ever do that. Ever. And they’d probably kill more humans and destroy more inanimate objects in the course of one week than they would in 100 lifetimes. How do you park? How do you estimate where you’re going to stop? And what of hills? Just hope nothing gets in your way and you can hit those corners at 100mph+?

This just seemed like an exercise in pseudo-intellectualism.

Drivel is right. 😀

Ahmad Azwar Anas
Reply

I should prefer safety and handling than going faster with brakes.. because “going faster” is achieved with horsepower, not the brakes..

Some.Net(Guy)
Reply

While it’s certainly true for cars, the analogy doesn’t quite work for software. If you’d like to extend the metaphor a bit, brakes are something that are designed and built one time. You don’t have brakes for that new heat button so you can heat faster or have brakes for the seat reclining mechanism so you can lay back faster. You only have brakes to drive (allegedly so you can drive faster). In software (TDD), you have to build a new test every single time you want to do something new.

The problem with tests is that you can’t always depend on them. Even with a million tests passing, they could still be wrong, because you, a fallible person, wrote them. To think that your huge battery of tests telling you that everything is going swimmingly and that your code is bug-free is a HUGE false sense of security. And it probably took you twice as long to write the tests than the code itself.

I’m not saying tests are bad or even that they shouldn’t be used. I’m just saying that having them is not the end-all-be-all of software development. A better analogy would be, “Why do cars have check engine lights?” with the answer being, “To let you know that something is wrong so you can fix it before it becomes too large a problem and your car stops working”

Stop writing tests and start building things.

Richard
Reply

Hey thanks for taking the time to reply. I know where you are coming from, but if if I may, I’ll take issue with a few things you said.

The first issue I have is that you seem to be taking the metaphor entirely too literally. If you take any analogy or metaphor literally you risk losing the point of it. The point is that a person with no brakes will drive slower than a person who has brakes. Which is ironic because most people would say the point of brakes is to slow down, not speed up. In software terms the things we do that many argue simply slow us down, actually enable us to go faster. That is the be all and end all of the point.

Now, some, perhaps including yourself would call bullshit on this and would claim that things like tests, actually slow down development. And that’s fine. The studies that have been done suggest that tests speed up development. The reason why the myth persists is that by definition someone “trying their hand” at tests isn’t going to be very good at writing them and of course it’s going to slow them down.

Your comment

“The problem with tests is that you can’t always depend on them”

Is a very common refrain. But with respect it suggests a lack of understanding of the point of the tests. The comment

“Even with a million tests passing, they could still be wrong”

Suggests the same misunderstanding. Tests are not about being *SURE* there are no bugs. If there were nails scattered around the floor, would you leave them all there because it’s not worth picking any up if you can’t be sure you’ve picked them all up? Even having a portion of your code base covered by automated tests will give benefits. And even then you can’t be sure there aren’t bugs in that portion of the code, but having tests will make it easier to pinpoint the bug, fix it and be more confident that you haven’t broken something else than you would be if you had no tests at all.

Tests are about increasing confidence, not guaranteeing perfection. I can’t count the times someone has done what you’ve done and presumed to know what’s going on in my head

“To think that your huge battery of tests telling you that everything is going swimmingly and that your code is bug-free is a HUGE false sense of security.”

I don’t think that. I don’t know anyone who is even remotely serious about automated tests who thinks that, but I know tons of people who don’t like automated tests who keep telling me that I think that.
It’s infuriating.

Your final comment

“Stop writing tests and start building things.”

Well, now you’re off my Christmas card list. That’s just a silly comment in my opinion.

Jack Singleton
Reply

“Sorry but there is no “deep truth” to this information because it’s inherently false. It allows you to drive faster? Hardly, it allows you to drive, period.”

That’s why race cars don’t have brakes right?

Leave a comment

name*

email* (not published)

website