(a repost from a few years ago).
Laziness, Impatience, and Hubris:
These are the three characteristics of a great programmer listed in the PERL (Programmable Extraction and Report Language or Pathologically Eclectic Rubbish Lister) manual. As most computer science is actually a work of psychology (essentially sculpture of the mind), this is really the listing of what it is to be an accomplished human.
They have their antitheses as well. Let me explain.
Laziness vs. False Laziness
Replacing the horse drawn cart with the automobile is a good example of how the drive to Laziness improves life. Early attempts to make general purpose vehicle frames which were adapted to every conceivable use, rather than specialty products designed for that purpose, are an example of 'False Laziness' and were replaced over the years.
Avoiding work is good, but avoiding work which results in more work later is bad.
Hubris vs. False Hubris
Improvements on the automobile, such as self-reinflating tires, voice-activated GPS, micro-environments, flex-fuels, hybrid technology, off-road capabilities are great, and show off the skills of the artisan (this is Hubris at its best), but trying to put them all in one vehicle, or worse, making them standard equipment on all vehicles, isn't going to improve sales (Hubris at its worst).
Improvements show off your skills, but not all clients need your full set of skills.
Impatience vs. False Impatience
Impatience makes people work late at night improving things. It makes them want things to work faster. Wanting the new designs to come out faster is good old Impatience. Prematurely deciding that one of the new designs is the holy grail and holding it above all others without adequate proof is 'False Impatience.'
Watched pots will, in fact, boil (under the correct conditions), and the watching itself doesn't appear to alter the circumstances.
Leave a comment