Speed Kills

Posted by Uncle Bob on 02/03/2009

Ron Jeffries wrote a wonderful blog about how we kid ourselves that there is a tradeoff between quality and speed. Isn’t there?

That depends on what you mean by “speed”. If you mean rushingtogetawholebunchofshitcodedandsortofrunning, then quality is not for you. On the other hand, if by “speed” you mean delivering working software quickly and repeatably release after release after release; then maintaining high quality is your only option.

The first course is that of the adrenline junkie. The hacker stereotype of the twinkie eating cola guzzling nerd who cackles like the Wicked Witch of the West while tunnel visioning into his screen and keyboard. The second course is that of the professional programmer, the craftsman who with calm demeanor and deliberate confidence servers his clients, and his career.

We all feel the pressure to rush. It’s like a drug, really. It feels good to through off the disciplines and justcodeupawholebunchofshit. We get the adrenline high, and we feel as though we are skating on the edge between success and failure, sailing so close to the wind that we’re on the verge of tipping, getting the rush of speed. When we get our code working we feel victorious!.

What we should be feeling is stupid. Because we actually were skating on the edge between success and failure. We should not feel victorious, we should feel shame.

We justify this addiction to speed by telling ourselves that our bosses want us to go fast. We tell ourselves that time-to-market requires that we sail close to the wind. And then we put the needle in our arm and let fly another dose of speed—oblivious to the consequences.

I teach a lot of programming classes in which I give the students programs to write. I tell them that the goal is not to finish the programs, but to learn the skills of programming. I tell them that the code they are writing will all be deleted after they leave. I tell them to focus on the techniques and disciplines they are learning, not on finishing the programs. And yet on Friday afternoon there are always a group of folks who are flailing away at their keyboards trying desperately to finish something that they know will be deleted as soon as they leave.

These people have surrendered to the drug of speed. They need to conquer. They manufactured their own deadline pressure and behaved as if their boss was breathing down their necks.

How do you really get things done quickly? You listen to your grandparents. Remember what they told you? “Slow and steady wins the race.” and “Anything worth doing is worth doing well.” How does a professional craftsman get things done quickly? He/she adopts an attitude of calm, focuses on the problem to be solved, and then step by step solves that problem without rushing, without yielding to the need for speed, without surrendering to the desire for a quick conquest.

When you feel the temptation to rush, resist it. Leave the keyboard and walk around. Distract yourslef with something else. Do not give in to the call of your addiction.

If you want to be a craftsman. If you want to be someone who builds software quickly, accurately, and repeatably. If you want to be someone that your employer respects and values. If you want to respect yourself. Then remember this simple fact. Speed Kills.

Comments

Leave a response