13 ms·
Laziness Impatience Hubris
- variaga 6y agoPreviously 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
- kryogen1c 6y ago“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
- neatze 6y agoCan confirm it is Kurt von Hammerstein-Equord, German general, he was an ardent opponent of Hitler and the Nazi regime, according to wiki.
- TheOtherHobbes 6y agoThe Nazis were such a perfect example of his warning.
- NLAIWhdj 6y agoThis is a cute quote, especially if one's difficult decisions involve letting other men do the actual work. It does not really apply to software, where most good programmers are obsessive and hard working. Yes, that also applies to Lisp, where someone has to write the actual interpreters and compilers that others use to run their 100 macros on and pontificate how easy everything is.
- runawaybottle 6y agoNope. Code is liability, I’d rather you not write shit (rhetorically) than write tons of shit (literally).
- lakiP 6y agoNo one has talked about quantities here, and general statements like "code is a liability" are usually made by talkers.
- runawaybottle 6y agoGood talkers inevitably sum it down, or good anything usually do. Conciseness can be a product of prolificness too.
- jasonwatkinspdx 6y agoAh yes, the famous "talker" Dijkstra...
- rschneid 6y agoCome now, I think we all know code is not its line count. 1000 lines of clear code in a mission-critical place is worth far more than a 1-liner which accomplishes the same task and only one person in the company understands...
- deleted 6y ago[deleted]
- lmm 6y agoCitation needed. This is a popular narrative but I don't believe it; line count is the only thing that has been shown to be consistently correlated with bug count.
- Taek 6y agohttps://www.nasa.gov/pdf/418878main_FSWC_Final_Report.pdf https://www.nasa.gov/pdf/418878main_FSWC_Final_Report.pdf NASA averages something like 0.1 bugs per 1,000 lines of code, industry average is closer to 15. Surely there are other factors, like testing, linting, and language choice that influence the number of bugs.
- aaronchall 6y ago"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/
- agumonkey 6y agoI believe life forms are optimizers .. survival means spending the least amount (according to our mental representations but bodies are a major source of data). Then there's lazy and defeated. I'm so not the same as my colleagues who are lazy .. they know what is useless to a point and avoid the work. I have a fundamentally different approach (from computing, food shops and industry). I aim at minimizing work AND maximizing flow. It makes my processes very different because I remap the task and attack many paths to find the most enjoyable one. The other lazies don't dive in the task they just take the simplest path and do it slowly.
- jasonwatkinspdx 6y agoI 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_ 6y agoSustainable 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?
- non-entity 6y agoI'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.
- bigiain 6y agoJust “deciding not to do tasks” is one option that works (or, as I like to say “never put off till tomorrow anything that you can get out of altogether”...) A much more powerful tool as a senior dev is to push back on pointless or stupid requirements. “No we will not build a video transcoder so you can upload 8K video files you your WordPress site that gets 85+% of its traffic on phone screens. Learn to resize video before you upload it, or buy that as a service from Brightcove et al.” (Yes, that is a real example of a requirement I pushed back on, because neither the customer nor the account manager understood the problem. One of my devs tried to push back and got talked over, before I put my foot down and said “No, not happening. Happy to explain I detail why if you’d like.”)
- dllthomas 6y agoYou don't have quite enough hubris to think the automating will be easy.
- scrozier 6y agoThis 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.
- HugoDaniel 6y agoi don't agree for the most part. perl is cool :)
- elliekelly 6y agoI 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.
- IAmEveryone 6y agoI 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 6y ago> Ask HE Intentional? :)
- lioeters 6y agoAlso the three great virtues of a programmer: Persistence, Patience, and Humbleness.
- naringas 6y agoso a total of 6 great virtues for every programmer as two sets of 3 conflicting pairs of virtues
- Ericson2314 6y agoOne is operational expenditures of programmer time, the other is for capital expenditures of time. (Save yourself for the yak shave!)
- yongjik 6y agoThat sums up our profession so perfectly I want to cry.
- artsyca 6y agoOh c'mon get over yourself Humble people don't go around talking about how humble they are, much less sideways virtue signalling on how patient and pathetic they are. If you're going to blow your own trumpet out of the side of your mouth you should consider a career in politics and leave program writing to the professionals. Edit! Oh that's not hubristic enough you milk fed cherry pickers? Why not report me to the principal!
- Supermancho 6y ago> Humble people don't go around talking about how humble they are, I'm wrong all the time. It's in my signatures - Often wrong, but never in doubt (source: Garfield). I'm decisive and I make mistakes and those behaviors are not at odds. It's important to remember that no matter how trivial the programming task, you are likely to have made a mistake somewhere and that's why everything should be tested, code reviewed, etc. People don't re-read their code often enough and these practices force it.
- 29athrowaway 6y agoIt 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 6y agoTrue, 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 6y agoI 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.
- artsyca 6y agoNo. Hubris is wearing a tshirt to an interview
- devmunchies 6y agoyou knock the humble tshirt?
- artsyca 6y agoAn interview is nothing but a glorified prisoners dilemma aka cooperation dilemma. Signalling that you're taking the path of least resistance aka snitching is hardly ingenious. And you call yourself a software professional!
- runawaybottle 6y agoYour goodbye message in your profile made me lol in real life. Nothing is serious, but maybe you already get it and forgot the /sarcasm at the end of the monologue. Don’t leave, stick around.
- newshorts 6y agoI find it’s a good acid test. If that’s not acceptable, I probably don’t want to work there.
- artsyca 6y agoBro, people don't have any opinions of their own they just pick them up along the way. Think about it.
- tux1968 6y agoYou're just saying that cuz you heard it somewhere.
- icebraining 6y agoAnd you've picked the wrong ones.
- ericmcer 6y agoI 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!
- treeman79 6y agoEarly career my boss spent all day running reports. Like 7 hours a day. All hand edited excel files. Dozens of them. She went on vacation and I had to learn how to make them. She cane back to find everything automated. Like heck was I going to spend all day every day building reports. Soo boring. 10x engineers are a thing. But you have to be pushy to keep it up. Way to many people setup pipelines that require “effort”. Efficiency suffers. They always get more done in a short period. But so much less in the long run.
- gonzo41 6y agoDid you ever stop and think you ruined your bosses job for her? She came back ready to grind out another year and you've free'd her of her job so she can have new an exciting uncertainty with nothing to do.
- Godel_unicode 6y agoI assume this is written tongue in cheek, but I have worked with people who legitimately feel this way. I have had quiet parking lot conversations about how "all this automation business" was going to replace work they knew how to do and could do with half a brain while listening to books with work that required them to learn new things. The horror.
- treeman79 6y agoAt one point 80% of Americans were farmers. Things turned okay
- jsrcout 6y agoI 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 6y agoDoing 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 6y agoAmen, 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.
- jsrcout 6y agoAgreed, you want to do it the hard way first to get real insight into the problem. By the time you get around to actually automating it you'll be ready to. Am fortunate in my present position that the projects I get tend to be complex one-off types. I have a lot of leeway on how it gets done as long as the software engineering aspects are sound. I've had the opposite frustration at times in the past, where people around me were content to do it the tedious manual way forever. As a typical Perl programmer type that was kind of painful :-).
- foobar_ 6y agoDiligence, Patience, and Humility https://www.oreilly.com/library/view/open-sources/1565925823/ch11.html https://www.oreilly.com/library/view/open-sources/1565925823...
- lioeters 6y agoGreat 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.
- riffraff 6y agoI have read this a dozen times over the years, and I still find it great. To me it's one of the best bits of writing I've read, regardless of the argument. As a random example: > Here is the shape of the big bang, and of stars, and of soap bubbles it's just a perfect sentence.
- invalidOrTaken 6y agoI 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 6y agoIf 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.
- orionblastar 6y agoBill Gates said he only hired lazy programmers because they automate stuff in code and take shortcuts to speed it up.
- icebraining 6y agoHe 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/
- mulmen 6y agoI 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.
- daviddaviddavid 6y ago"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 6y agoIMHO 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
- ColanR 6y agoLast time I heard mention of the first quote, it was used as an example of how a non expert could figure out if someone was full of it.
- toohotatopic 6y ago>"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.
- ed25519FUUU 6y agoI 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 6y ago"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.
- Cthulhu_ 6y agoThe phrase is up for interpretation; how about a "not overzealous" programmer? Someone who'd rather pick a well-tested off-the-shelf thing over coding it themselves.
- dvtrn 6y agoI 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. :)
- jariel 6y ago'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_ 6y agoThe best code is no code. Better to spend an hour googling than a week coding.
- runawaybottle 6y agoI 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.
- forgotmypw17 6y agohttp://archive.is/FPv9D http://archive.is/FPv9D
- 29athrowaway 6y agoLaziness 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 6y agoI 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 6y agoLazy is a word that has a pejorative connotation. Nobody will reply "thank you" when they're told they are lazy.
- Xelbair 6y agoI disagree - i take pride in my laziness. Although i try to minimize the whole group's effort, not mine.
- deleted 6y ago[deleted]
- YeGoblynQueenne 6y agoThe 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.
- FeepingCreature 6y agoI 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 6y agoWhy 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.
- samvher 6y agoThe way I read the parent comment is "arrogant people expose their opinions" (which unavoidably exposes them to challenge) and "arrogant people have full confidence they know exactly what to do" (but are actually unaware of the risk involved due to them being wrong). I share your final observation though.
- FeepingCreature 6y agoSure, 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.
- nprateem 6y agoWhat is: Boris Johnson?
- deleted 6y ago[deleted]