
Laziness Impatience Hubris - aaronchall
http://wiki.c2.com/?LazinessImpatienceHubris
======
kryogen1c
“I divide my officers into four classes as follows: The clever, the
industrious, the lazy, and the stupid. Each officer always possesses two of
these qualities. Those who are clever and industrious I appoint to the General
Staff. Use can under certain circumstances be made of those who are stupid and
lazy. The man who is clever and lazy qualifies for the highest leadership
posts. He has the requisite nerves and the mental clarity for difficult
decisions. But whoever is stupid and industrious must be got rid of, for he is
too dangerous.”

General Kurt von Hammerstein-Equord, probably

~~~
aaronchall
"Gilbreth studied the methods of various bricklayers—the poor workmen and the
best ones, and he stumbled upon an astonishing fact of great importance and
significance. He found that he could learn most from the lazy man!"

"Most of the chance improvements in human motions that eliminate unnecessary
movement and reduce fatigue have been hit upon, Gilbreth thinks, by men who
were lazy—so lazy that every needless step counted.”

"Another important thing Gilbreth noted was that the so-called expert factory
workers are often the most wasteful of their motions and strength. Because of
their energy and ability to work at high speed, such men may be able to
produce a large quantity of good work, and thus qualify as experts, but they
tire themselves out of all proportion to the amount of work done."

\- Popular Science, 1920, [https://quoteinvestigator.com/2014/02/26/lazy-
job/](https://quoteinvestigator.com/2014/02/26/lazy-job/)

~~~
jasonwatkinspdx
I got an interesting personal education on this working on some volunteer
construction projects down in Mexico. The locals all move with a very
deliberate slow pace. Us gringos tried to be more gung ho, and by 11 am the
heat plus our effort had destroyed us. Meanwhile the local folks just kept on
truckin' until sunset.

~~~
Cthulhu_
Sustainable Pace is one of those good buzz-terms to throw around - sure you
can be fast, but is it sustainable?

It's a good attitude to have in life and work as well - sure, you can do 16
hour binge working days, but for how long can you sustain that? Can you keep
that up until retirement, whenever that may be? Is it worth it?

------
ericmcer
I think laziness and impatience have always been listed in a sort of tongue in
cheek way. Patience is probably the single most important attribute a
programmer can have, many '10x' engineers are just the people who have an
unshakeable ability to step through boring code for 4 hours until the problem
reveals itself.

Laziness pays off for me when I argue for simpler requirements and paring down
of features on things. It results in a better end product but most of my
motivation was that I just didn't want to build all the stuff!

~~~
Polylactic_acid
Laziness to me is thinking "Eh this doesn't need tests" or "It might be
possible to break it this way but I doubt anyone will try that"

What people seem to mean by it is the ability to stop and think "This task is
repetitive and tedious, we are passing the threshold where writing an
automatic solution is faster than manually completing the task" I'm not sure
what word would really describe this though "Efficient" probably.

~~~
MereInterest
I think it is laziness, but the appropriate kind. I am willing to work harder
now, in order to be lazy later. I am so lazy, I do not ever want to manually
test a function. Therefore, I write automated tests to enable my laziness. I
am so lazy, I do not want to remember caveats on how a function works.
Therefore, I do my best to make an interface be hard to use incorrectly.

~~~
worldsayshi
Well this kind of laziness seldom comes at an advantage in the modern
workplace? I mean there's always more work so working hard now doesn't equate
to working less later. Unless you're an entrepreneur building your own
product.

~~~
chillfox
Sure it does. If you work with people who don't automate then every time you
finish a piece of automation you can slow down your pace a little and still be
faster than the people doing stuff manually.

~~~
p_l
The reward of work well done is more work and shorter deadlines, something
well known as early as 1987.

At some point you stop trusting that you can spend time on making better tools
and just surrender to the tedium.

------
daviddaviddavid
"Programming Perl" is absolutely chock full of great quotes. I think one of
the things that attracted many programmers to Perl was how genuinely witty
Larry Wall was in his writings/talks. Add to that his background in
linguistics and he comes across as a pretty hip/zany/brilliant character.

I think lots of Perl programmers probably thought of themselves as "being in
on" his creation and therefore being a bit like him, themselves. That was
certainly one of the upshots for me back in the late 90s early 2000s.

~~~
RangerScience
IMHO famous software people have amazing quotes, right from the start, with:

"On two occasions I have been asked, 'Pray, Mr. Babbage, if you put into the
machine wrong figures, will the right answers come out?' I am not able rightly
to apprehend the kind of confusion of ideas that could provoke such a
question." \- Babbage

"If I had a little less brains, I should & would be a good Catholic, & cling
to that certainty which I do long for. However I don't wish to be without my
brains, tho' they doubtless interfere with a blind faith which would be very
comfortable." \- Ada Lovelace

"I do not think that this argument is sufficiently substantial to require
refutation. Consolation would be more appropriate..." \- Turing

~~~
toohotatopic
>"On two occasions I have been asked, 'Pray, Mr. Babbage, if you put into the
machine wrong figures, will the right answers come out?' I am not able rightly
to apprehend the kind of confusion of ideas that could provoke such a
question." \- Babbage

To me, this belongs into the same category as Henry Ford's "If I’d asked
people what they wanted, they would have asked for a better horse":

Google search does exactly that, trying to offer the right answer, no matter
the question.

One day, they will link the user tracking and the search engine, and when you
hesitate for a moment, google will tell you the missing information that you
are lacking. Thus, the right answer no matter the input. But of course, what
they tell you to buy when you are making a purchasing decision will be up to
the highest bidder.

As to Henry Ford, self driving cars are faster horses. Seems like people don't
buy cars because they want to steer by themselves all the time, they just want
to indicate the general direction.

------
YeGoblynQueenne
The discussions about the meaning of "hubris" in Greek mythology are slightly
off. Hubris means to insult _the gods_.

So, while some of the mythological examples in the first long-ish discussion
are good ones (e.g. Arachne), it is wrong to say that Leto commits hubris by
killing Niobe's children (i.e. an "insult"). The gods cannot commit hubris.
Hubris is only for us, mortals. It's to not know our place, that the gods are
our masters and we shouldn't piss them off, or they will do something really
nasty, and cruel, and unstoppable and extremely unfair- like Apollo and
Artemis killing Niobe's children, to punish Niobe (I mean, what did the poor
children do?).

Hubris is often glossed as "arrogance", but arrogance itself is not hubris-
it's the _cause_ of hubris (though not the only one).

Also, Odysseus did not commit hubris- he pissed of Poseidon by killing his
son, Polyphemus the Cyclops. That did not "insult" the god- it pissed him off
and he took revenge, but note that he didn't outright smite Odysseus, just
made his life misery. Because, after all, Polyphemus had tried to eat Odysseus
(and ate some of his comrades) so it was a fair fight. The "fight" with
Poseidon of course was not "fair"\- but then, Odysseus had Athena to watch
over him.

Prometheus also did not commit hubris- hubris is for the mortals and
Prometheus was an immortal, a titan. Prometheus was punished for going against
the authority of Zeus, but again that was fair and square because Zeus himself
had detrhoned the titans to become the greatest of the gods.

Source: Greek, with Greek schooling and upbringing and a lot of reading of
Greek mythology as a kid.

------
variaga
Previously on Hacker News:

4 years ago, 72 comments:
[https://news.ycombinator.com/item?id=11516215](https://news.ycombinator.com/item?id=11516215)

5 years ago, 59 comments:
[https://news.ycombinator.com/item?id=9788088](https://news.ycombinator.com/item?id=9788088)

------
lioeters
Also the three great virtues of a programmer: Persistence, Patience, and
Humbleness.

~~~
naringas
so a total of 6 great virtues for every programmer as two sets of 3
conflicting pairs of virtues

~~~
Ericson2314
One is operational expenditures of programmer time, the other is for capital
expenditures of time.

(Save yourself for the yak shave!)

------
invalidOrTaken
I think it's something of a sign that we're all terrible at our jobs that this
resonates with us. If you tend to be wrong about things, sometimes it cancels
out with your vices. It's not good to do the wrong thing, but if you must,
let's hope you're lazy and impatient about it to limit your progress so you
can't do much damage.

IDK guys, just found out last night a project I've been working on for months
should have gone in a totally different direction, this stuff is hard.

~~~
dgb23
If you need some encouragement: i agree that this is hard. But experiences
like this are the most valuable. Many advances in our field came from a place
like this.

Sometimes it means throwing away stuff and starting from scratch. This isn’t
giving up, quite the opposite.

------
scrozier
This is no doubt due to the fact that I am both lazy and impatient, but I find
it very hard to figure out who's saying what in this post.

------
29athrowaway
Laziness is the avoidance of work, not necessarily the minimization of work. A
truly lazy person may not look for effort-saving solutions, but rather avoid
providing a solution altogether by compromising requirements, making excuses
or having someone else do the work.

Impatience will make you avoid tasks that take "too long", like reading
documentation and taking the time to understand how things work. It will make
you approach problems by trial and error. By acting in this way, your
solutions will likely be suboptimal and your understanding will be superficial
and incomplete.

Hubris will make you avoid asking for help or code reviews from people that
might have something legitimate to say about your code, eventually wasting
everyone's time including your own.

So I disagree. I know the source of these is a rather popular book written by
smart people, and that those paragraphs make sense. But there might be better
words to represent those paragraphs.

~~~
Xelbair
I would say that really depends on the person - you can be lazy in a "good
faith" or "bad faith". "Bad faith" is just like you described - let someone
else deal with that.

It also depends on organization itself, because in some cases the reward for
being efficient is more work.

It all applies to every other "virtue" too.

~~~
29athrowaway
Lazy is a word that has a pejorative connotation. Nobody will reply "thank
you" when they're told they are lazy.

~~~
Xelbair
I disagree - i take pride in my laziness.

Although i try to minimize the whole group's effort, not mine.

------
IAmEveryone
I get that this idea is appealing because it's quirky and counter-intuitive,
and self-deprecating as well as self-aggrandizing.

But it's not true, obviously. Truly "lazy" people (i. e. those suffering from
depression) will be trying to hack their motivation and beating themselves up
over repeatedly failing. It's something that comes up in an Ask HR at least
every two months.

Impatience & hubris are what gets "tech bros" the reputation of shallow
arrogance. These traits optimize for Uber-like outcomes, in both scale and
completely lack of decency. But going for the 1-in-100000 outcome is rarely a
good _personal_ strategy, and some marginal improvement doesn't change that.

~~~
Kinrany
> Ask HE

Intentional? :)

------
FeepingCreature
I think arrogance is very underrated and should be included. A degree of
arrogance makes you take on tasks that you are unqualified for; this aids in
growth. It also gives you an inflated trust in your own opinions, and hence
promotes exposing them to challenge and scrutiny. Furthermore, it encourages
risk-taking, which is usually good for society even though it's often bad for
the individual.

~~~
tupac_speedrap
Why would you expose your opinions to challenge if you know they are right?

Also why would you need to take any risks if you think you know everything
already?

I don't think you know many arrogant people, I deal with people at my company
that are both stubborn and usually wrong, which is a lethal combo. You have to
workaround these people or else the project won't get done.

~~~
FeepingCreature
Sure, but all of those "virtues" have good and bad manifestations. I agree
that arrogance can be terrible.

> Why would you expose your opinions to challenge if you know they are right?

You expose them to challenge _because_ you know they're right; you don't act
to protect them by keeping them hidden and not testing them. You "put them
under load." This is basically mental and rhetorical dogfooding.

edit: I think the difference is between "I think I'm right" and "I want to
believe I'm right." If you want to protect your sense that you're right,
you'll be both hesitant to test your beliefs and vicious in their defense.
Conversely, if you're attached to the actual state of being right, you'll
trial your beliefs and abandon them if they fail you. Arrogance, or at least a
moderate degree of it, can help you act like the latter by making ideas seem
more reliable than they deserve, creating natural trials.

edit: I guess the common thread is that arrogance promotes exploration by
suppressing fear of loss.

------
elliekelly
I thought for sure hubris would be something about "oh, that'll be easy to
automate!" I'm not sure if it's what makes a _great_ programmer but I do think
there's some sort of Paradox of Programmers where we can somehow entirely
underestimate the "Big Problem" while also being completely undeterred -
defiant even - once the "Big Problem" reveals its true size.

------
mulmen
I will always have a soft spot for Perl. I got my first real big kid job
writing Perl and it was a wonderful experience. The Swiss Army Chainsaw. I
came close on a few occasions but I never did cut off (my own) limbs.

------
runawaybottle
I think, mostly, if you didn’t automate yourself out of your job, you didn’t
embody the programmer.

If they need you to make every little change, if they still need you, you
weren’t the programmer.

It’s a tragic job ultimately, if you do it right.

------
dvtrn
I hope this post stays at the number one spot on the front page for long
enough that a certain satirical HN-review page to pick up, and comment on. :)

------
29athrowaway
It depends: are you developing, a prototype or the early iteration of a
product, or a mature product?

The "Maximizing the work not done" mantra... really depends on what time-frame
you pick. Work not done over a day, a week, a year, a decade? Different time
windows will lead to different decision-making processes.

~~~
bigiain
True, but as the timeframe go up, so do the uncertainty of the decisions.

It also depends on the field too. Almost nobody made good/relevant “maximising
work not done” decisions a decade ago about how their mobile apps should be
built - who even knew Swift or Kotlin (or React of Flutter) we’re on the
horizon? And nobody cares, because mobile apps from 10 years back are mostly
irrelevant today.

It’s very easy/common to make errors in those sorts of decisions, by worrying
about things too early. I know many many startup stories who ran out of runway
while building Google/Facebook scale infrastructure architectures with no more
than family and friends sized user bases. Projects that probably could have
been live a year or two earlier using WordPress and a few custom plugins as a
backend, and scaled at least to 100 engineers worth of revenue before needing
heroic internet-scale design from the two or three person founding team.

~~~
29athrowaway
I have also known, and seen first-hand, companies that neglect their code
bases for a long time, and then have to let go entire teams once the quality
bar is raised, or once they fail to adopt a proactive attitude towards
defects.

Startups are not small companies. Startups are companies created with
exponential growth in mind, and if your product is not prepared for that kind
of growth, you do not need startup scale funding. You could do fine with small
business funding. Unless you can find some chump that will buy your small
company at a startup price, usually by inflating the payroll with a lot of
redundant employees right before selling.

It turns out building scalable software most of the time is not about making
the kind of investments you talked about. It's about designing each feature
with scale in mind. Then, unless the startups you talk bought multiple
geographically distributed datacenters and deployed their own submarine
cables, they were not working at that scale. Don't exagerate.

~~~
bigiain
> Then, unless the startups you talk bought multiple geographically
> distributed datacenters and deployed their own submarine cables, they were
> not working at that scale. Don't exagerate.

No, you’re right. Totally exaggerating, but that was seriously their mindset.
“We can’t use an SQL database, it won’t scale to a billion users!” I strongly
suspect the team talked about where they’d deploy their data enters and the
risks of using other people’s cables - only _partly_ in jest.

The one I had in mind specifically while writing that were fighting with
sharded MongoDB clusters, eventual consistency, and auto scaling app server
fleets, while not having 1% of the user base I support with a more complex app
on a handful of t3.medium spot and on demand instances, and a dB.t3.large rds
aurora database. I know it’s always hard to reliably forecast when your
current solution’s vertical scaling capability will runout and you need
something more scalable than a stateless monolith with a vertically scaling
SQL database behind them, but they were easily three maybe four or more orders
of magnitude short of that inflection point. I have zero doubt their kinda
good idea could have scaled to high seven or low eight digits of revenue
before needing any heroic platform architecture. Well before that became a
necessary problem to solve they could have had a 50 person engineering team
with leadership who’d done it before to solve that problem for them.

And I totally agree with your “neglected codebase” problem too, I’ve spent the
last 18 months or more on a “rewrite the old Grails backend code in Java”
journey, which has gone about as smoothly as they always do /\/\/\/\\... We’re
now finally in a place where the Java platform is as good as the old one in
most areas, and betting in some important ones. But of course we now have a
bunch of “legacy clients” who are not (and may no ever be) migrated of the
Grails platform, and I’m fighting very hard to avoid the worst of the
“neglected codebase” problems that’s gonna throw me over then next few years
while we solve the legacy client problem (and COVID isn’t making it any more
likely that some of out government clients will upgrade is the need to pay to
do so...)

------
jsrcout
I like to think of the first virtue as Proactive Laziness. I'll work hard
right now (on something that's fun, automating tasks!) to avoid doing a lot
more hard work later that's boring (doing the same tedious task manually over
and over).

~~~
perl4ever
Doing something tedious and manual is a good way to let your brain unwind and
kind of meditate. After a bit you get all sorts of insights into how to make
the process work better. Or if there's nothing at all worthwhile about the
process, your subconscious can still be solving other problems in the
background.

One of the problems I find with impressing people with your technical
abilities is that they start piling projects on you and you stop doing the
tedious stuff that teaches you what needs to be done and how.

The greatest frustration in my career has been that everybody wants to do
grandiose automation projects without being willing to assign any proportional
effort and talent towards understanding the existing processes.

~~~
xnx
Amen, I've seen so many failed attempt to automate a process that hadn't even
been attempted the "slow" "unscalable" way first. Doing a task manually a few
(dozen?) times will reveal a disproportionate amount of information about what
actually needs to be done.

------
non-entity
I've always heard these as good traits for a programmer, but I must have got a
cursed version of them. As to laziness and impatience particularly: I'll
sooner decide not to do a task at all rather than somehow automate it.

~~~
dllthomas
You don't have quite enough hubris to think the automating will be easy.

------
jariel
'Conscientious Laziness' as in, if you don't make a huge mess then you don't
have to clean it up, and the room remains clean just the same.

Or, 'I don't make the feature unless it's needed'.

~~~
Cthulhu_
The best code is no code. Better to spend an hour googling than a week coding.

------
ed25519FUUU
I get it, it's cheeky to refer to someone who's very keen on automating as
"lazy". That being said I'm really not a big fan of using "lazy" as a quality
for a good programmer. It's pejorative and it should stay that way. I've never
met a "lazy" programmer who I enjoyed working with. Lazy people cut corners
because it's less work in the short term.

Being someone who finishes and _completes_ automation is antithetical to lazy.
It takes _MUCH_ effort to take things from 80% to 100%.

~~~
kqr
"Keen on automating" is one of the few definitions of lazy that actually make
sense.

If we need to get rid of anything, it's the pejorative meaning. Using the word
that way is simply a way to get out of having to deal with the complex system
that is human motivation.

If someone is consistently lacking in motivation, there are two responses:

1\. Figure out why and be able to do something about it; or

2\. Call them "lazy" and hope the problem fixes itself.

As a general rule, option 2 almost never works out productively. It just
ascribes a systematic problem to a single person and nothing improves. If
anything, things get worse because people's attitudes change, further reducing
motivation.

------
orionblastar
Bill Gates said he only hired lazy programmers because they automate stuff in
code and take shortcuts to speed it up.

~~~
icebraining
He probably didn't[1], but it's a good idea any way!

[1] [https://quoteinvestigator.com/2014/02/26/lazy-
job/](https://quoteinvestigator.com/2014/02/26/lazy-job/)

------
forgotmypw17
[http://archive.is/FPv9D](http://archive.is/FPv9D)

------
HugoDaniel
i don't agree for the most part. perl is cool :)

~~~
mulmen
See "Perl is worse than Python because people wanted it worse." also by Larry
Wall.

------
nprateem
What is: Boris Johnson?

------
foobar_
Diligence, Patience, and Humility

[https://www.oreilly.com/library/view/open-
sources/1565925823...](https://www.oreilly.com/library/view/open-
sources/1565925823/ch11.html)

~~~
lioeters
Great find - Larry Wall writes:

> Three great virtues of programming are laziness, impatience, and hubris.
> Great Perl programmers embrace those virtues. So do Open Source developers.

> But here I’m going to talk about some other virtues: diligence, patience,
> and humility.

> If you think these sound like the opposite, you’re right. If you think a
> single community can’t embrace opposing values, then you should spend more
> time with Perl. After all, there’s more than one way to do it.

------
artsyca
No. Hubris is wearing a tshirt to an interview

~~~
jb775
> _Also the quality that makes you write (and maintain) programs that other
> people won 't want to say bad things about._

In this context, I took hubris as paradoxical since the end result is a good
quality (and well maintained) software program.

~~~
artsyca
Exactly bro! Now keep on rocking in the free world and understand that hubris
alone does not a good programmer make but a good programmer is hubristic.
Therefore hubris is a poor heuristic no matter what any tech bro tells you.

Therefore you should at least make an effort to dress up for an interview
because you never know if it's your last chance to make any sort of
impression.

And let your hubris shine that way instead of choosing the casual path that
every other one will certainly choose.

Edit: of course this argument is lost on all the beautiful minds who spare no
effort at shabby chic

~~~
icebraining
This reminds me of
[https://www.folklore.org/StoryView.py?story=Gobble_Gobble_Go...](https://www.folklore.org/StoryView.py?story=Gobble_Gobble_Gobble.txt)

Relevant quote: "As soon as the guy walked into the room, I knew it was going
to be problematic, because he seemed extremely straight-laced and uptight,
dressing more like an insurance salesman than a technologist."

Jobs was an ass, but Andy had a point: dressing correctly depends on the
context. The idea of dressing "up" or "down" as if it was a single axis was
never correct, and is even less nowadays.

