Coding Horror

programming and human factors

How to be Lazy, Dumb, and Successful

Philipp Lenssen agrees that inspired laziness is a desirable trait for software developers:

.. only lazy programmers will want to write the kind of tools that might replace them in the end. Only a lazy programmer will avoid writing monotonous, repetitive code. The tools and processes inspired by laziness speed up production.

But Philipp adds one caveat: truly great programmers aren't just lazy. They're dumb, too:

Programmers who know they are smart

a) stop learning
b) stop being critical towards their own work

In the endless battle between programmer and compiler, give up early and admit that it's always you and never the compiler who is at fault.

Nobody is really smart enough to program computers. The only way you'll ever succeed as a software developer is through humility and the Zen concept of beginner's mind: approaching everything as if you were seeing it for the first time. Most of all, that means not being afraid to ask the stupid questions:

.. when confronted with a problem from management, a good programmer will adopt the mindset of being dumb. He will start asking the most simple, child-like questions, because he doesn't accept the parameters someone thinks make up the problem.

Unfortunately, I frequently see developers who are afraid to ask basic questions for fear of looking stupid. Maybe it's our macho smarter-than-thou programming culture. Having the guts to ask basic questions is, ironically enough, a hallmark of the best developers I've ever worked with.

Being lazy and dumb isn't just good career advice: it's the key to running a successful software business, too. As Mark Cuban points out, everyone else is just as lazy and dumb as you are:

It was Aaron Spelling I believe who said that "TV is the path of least resistance from complete boredom". Which is another way of saying that it's easier to watch TV than it is to sit there and do nothing.

Which describes exactly how people make most of their choices in life. They take the easy way. They take the path of least resistance.

There are certain things in life we all have to do. There are certain things in life we choose to do. Then there is everything else. The things we do to kill time. In every case, all things being equal, we choose the path of least resistance.

Understanding this concept is key to making good business decisions.

In other words, the only way to build great software is to make things as easy as possible for your users.

Written by Jeff Atwood
