Ask HN: Do you criticize?
Programmers are prone to criticizing and tactlessness. Torvalds and de Raadt are perhaps among the better known examples. I too often find flaws everywhere (not just software) and criticize.
Lately, I've been reading Dale Carnegie's classic, whose fundamental principle is "Thou shalt not criticize", and came to the realization that the criticism I dished out over the years, however deserved it may have been, has hurt my professional relations, and my career would have been much better off if I had reserved ALL the criticism of others' work.
I made it my New Year's resolution to stop criticizing, but the habit of doing this is so deep, it's like a drug.
Do you criticize, and if not, how do you manage not to? How do you deal with coworkers doing/saying stupid things, especially in programming and science?
85 comments
[ 2.5 ms ] story [ 155 ms ] threadIf I post something here it would be for it to get torn apart by people experienced in stuff like that. Design decisions are the main area that needs outside help and this is the best place to ask for it IMO.
In real life, especially in the work environment or personal life, I'm convinced now that criticism is very bad for the one giving it.
Withholding criticism though is not something I've completely mastered yet.
Withholding your criticism, however, will just turn you into a mostly worthless zero-contributor.
Don't dump criticism - dump tactlessness.
Here's a simple trick: Instead of saying "You're wrong, because X Y Z" (which is also my natural tendency, as you can see from these posts!) try using the formula: "I see what you're saying. A B C (rephrase what they just said). Hmm. What about X? Does that have any impact?" and let them get to Y and Z themselves.
Just using that phrasing will help you tremendously. Of course there are other even more subtle ways to do it, but this works for most situations, and once you get started down this path, you'll figure them out.
You suggest tactlessness should be dropped. But plain language is almost by definition tactless. Tact is something you add on top of your opinion/statement because you don't want to hurt somebody's feelings. Adding boilerplate tact is bound to give you poor results when it's not sincere. You're emphasizing the good parts merely because you don't want the other person to become defensive. Not because you think the good parts really need emphasis. When I use the "what about X" approach I often feel insincere because I can't directly get to the point. I end up respecting the person I'm talking to less for having to take the insincere route.
To give another example of boilerplate tact: often people advice to combine a compliment and a criticism with "and" instead of "but". Instead of saying "I like the layout, but I think that column should be wider"." you're supposed to say "I like the layout -and- I think that column should be wider". It's so obviously insincere.
However, when faced with someone whose ability to take direct answers I don't know, I'd fall back to the "What about X" method. If they were to answer that by jumping straight to Z and looking a little bit annoyed at me, I'd probably try getting straight to the point next time, and see if that works better with them.
Different people, different conversation styles...
Some people can't handle criticism but it doesn't mean that you shouldn't try at first to give others constructive criticism, see their reaction and drop it off if they are too defensive. How people react to criticism is also a good test to see if someone is interesting and likely to evolve his opinion or not...
If I ask for criticism (i.e. post my app here) I expect it.. and if I see anyone post an app here then I critique it. Criticism is not a negative thing (unless you phrase it as so). I look on it more as a process to feedback the experiences of others into your own personal "view".
I'm wondering though where you are disagreeing with me exactly? I said criticism is bad for the one giving it, not the one receiving it.
I'll share one personal anecdote: a new coworker of mine came to the U.S. for the first time and his English was terrible. He specifically asked me to correct his bad English whenever possible. I was wary of such a request at first, but started doing it nevertheless.
You know how he paid me back for my efforts? He tried to score some sympathy by complaining to others about my nagging him about his English. F that.
People who feel like criticism is a personal affront are somewhat foolish. If someone is taking the time to explain you why they think you're wrong about something, you should take the time to consider their opinion. They themselves may be wrong in their criticism, but the intent/result of criticism is to help you improve.
I warmly encourage everyone to criticise me at all times.
Firstly, recognise that what you're about to hammer on is someone's child. Respect that, and respect the effort that's gone into it. Recognise that it's not perfect, and they will know it's not perfect, but also that it (probably) has merit.
Recognise that the person who made this thing is (probably) not an idiot. They are, however, almost certainly not an expert in everything. But neither are you. Your criticism is intended to help.
Make an effort to find that which is worth praising. Observe that other aspects need work/attention/deletion, but there will be things that are good. Be genuine in your praise of that which deserves it - there will be something.
Express optinions as opinions. "That sucks" is an opinion that is most likely not shared by everyone. "Linked lists can be slow" is a fact, but it's easier to hear that when it's accompanied by "... but fast enough sometimes, and can be replaced by better data structures when necessary."
Above all, remember that you are expressing opinions to a person who has feelings, who has invested effort, and who has been brave enough to invite criticism. When it's well intentioned and well expressed, opinions from others are incredibly valuable. When badly expressed, opinions can be of large negative value.
Strive to be of positive value.
Good criticism means saying what is good about something as well as what is bad.
Often, the right target for criticism is supposed to be the person himself. For example, if someone without the right domain knowledge or understanding of math deluded himself into thinking he knows enough and starts messing things up, you really don't want to help him along.
Imagine some VB noob "fixing" your mission-critical Lisp code, saying it would have been easier if it was all ported to .NET or something.
Dealing with all these situations in the best way possible requires a lot of finesse, I'm sure.
I just noticed, in retrospect, that such a blunt approach as not giving any criticism ever is STILL better (for me, not my employer necessarily) than what I was doing.
Saying something is good is praise. Saying the bad is critism. Combining them makes some type of praise-criticism hybrid, it does not make good criticism. Let me give you an example of what you are saying:
Hey Dude, I really love the colors on your website. It sucks that your website is really useless to the entire world, but that butterfly you put up there is lovely.
How is that good criticism?
Polite requests were not sufficient to bring about change. It took confrontational, attacking arguments as well.
Criticism is vital feedback IMHO.
It is also difficult and important to learn to listen to criticism. However, you can probably screw up your life much quicker by giving criticism in an undiplomatic way than by failing to take criticism.
I find that people don't like criticism period, doesn't matter what, you are criticizing or why. They see it as A, complaining, B insulting, C plain negativity.
Also it depends on experience I guess, if you're just starting to learn something out of your comfort zone, you don't really want harshly honest critique of your (probably lame) efforts. You want mainly encouragement. Once you become more confident though, and believe in your own abilities, you just want the truth.
If you ask for my opinion, you're going to generally get pretty direct feedback. Over the years I've managed to find the right balance (mostly) between tactfulness and directness. I don't generally sugar-coat things, nor do I like when people try to "phrase" their criticism TO me.
For the last ~11 years I've been working with various startup or turnaround companies. You don't often have time to make sure that everyone leaves every meeting with their feelings and emotions fully intact. But that also doesn't mean that you can or should be a flaming asshole either.
I do not believe that my critical assessment of things has ever hurt a relationship that I would have wanted to maintain. I have had situations where the person receiving the criticism was incapable of handling any negative feedback. But in those cases, that individual usually ends up with a stack of imagined enemies and has zero future value to me anyway.
This is why most journalists have a one-email rule: you can write and say hello or thanks for the article and get a reply, but very rarely can you continue a conversation past a couple of exchanges. There are simply too many people on the net who like to argue and criticize.
How do you deal with coworkers doing/saying stupid things
Learn the four magic words, "Help me to understand..."
There are 3 possible conditions. 1) They are mixed up and you are correct, 2) You are mixed up and they are correct, and 3) You are both mixed up. Given equal weighting, 2/3rds of the time you're the person who is mixed up. So when somebody says something that doesn't sound right, ask them to explain it to you. Heck, you might learn something.
In that same spirit (humility and learning), you may want to offer some education to somebody who is struggling. But that's only after you listen. Listening gives you the right to talk.
To save time on the net, I usually try to restate what I think the other person is saying and then provide the way I understand the situation. "If I understand you correctly, you're saying that large weasels were the first inhabitants of the New World. That's very interesting, because as I understand it, there have been no large weasel fossils found here. Help me to understand. Is there something I might be missing?"
Part of the problem with the net is that deep in our minds we view other posters as somehow just part of the machine and not real live humans, whether we acknowledge that or not. So we say things in comments we would never say face-to-face. Programmers are very analytical. When something appears in a program on in a thread that is "incorrect" we must jump in and stomp it out immediately! That little Mr. Spock in all of us turns on and immediately whips up a retort and criticism to show to others just how much more we know.
As for the Mr. Spock argument, I think that has a much more mundane explanation. I, like most people, read far more on the internet than I write. But when I read I read to learn. Therefore, I want to be reasonably sure what I read is correct. Because of the Mr. Spocks amongst us I can read the comments and use that to figure out if the blogger made any sense. More often than not the comments reveal serious flaws in the blogger's post. It is this interaction between blogger and Spocks that leads to better understanding. Both for visitors like me and the blogger.
So the Spocks fight against the pollution of the internet by incorrect statements%. It's a futile fight, but I believe it's a noble one. Frankly, I think posting uninformed and wrong comments is far more inconsiderate than pointing out to all future readers that such a comment is uninformed or wrong.
%) You called it an internet maxim in another post.
So I spent about a month reviewing resumes and doing interviews. At the end, we had about 8-10 folks who had top-drawer experiences, top-drawer credentials, and top-drawer recommendations. (Their rates were top-drawer too, but that's a different post)
Once they started, I found that I was wrong all of the time. If I said it was raining, one person would say nope, it's misting, another would say that a better term would be scattered showers, while a third person would point out that the technical meteorological term was BR.
It went on like this for weeks. Whatever my opinion, technical or not, was wrong. Drove me nuts.
Then I realized that these really sharp folks were simply acting the way they had their entire careers. People who criticize and correct get noticed as being smart. You can either be a wallflower or you can stand up and show how much you know.
These were great guys, but they weren't working as a team. Instead, each was jockeying to look good.
Not sure if my example directly applies, but it at least seems to me that a lot of folks are simply playing for points, ie, looking to nitpick instead of trying to learn.
People are tough, you know? Computers are a lot easier.
The big difference is that online the reader to writer ratio is way different. Online, when somebody points out that a hash-map insert is amortized O(1) instead of O(1) hundreds or thousands of people benefit.
When the contractor tries to convince you that a scattered shower is different from a heavy mist (even though you're not in the least interested) nobody benefits. It's just noise.
I like the way Ben Franklin put it in his autobiography:
"I wish well-meaning, sensible men would not lessen their power of doing good by a positive, assuming manner, that seldom fails to disgust, tends to create opposition, and to defeat everyone of those purposes for which speech was given to us, to wit, giving or receiving information or pleasure. For, if you would inform, a positive and dogmatical manner in advancing your sentiments may provoke contradiction and prevent a candid attention."
He describes how he cultivated "the habit of expressing myself in terms of modest diffidence; never using, when I advanced any thing that may possibly be disputed, the words certainly, undoubtedly, or any others that give the air of positiveness to an opinion; but rather say, I conceive or apprehend a thing to be so and so; it appears to me, or I should think it so or so, for such and such reasons; or I imagine it to be so; or it is so, if I am not mistaken. ... When another asserted something that I thought an error, I deny'd myself the pleasure of contradicting him abruptly, and of showing immediately some absurdity in his proposition; and in answering I began by observing that in certain cases or circumstances his opinion would be right, but in the present case there appear'd or seem'd to me some difference, etc. I soon found the advantage of this change in my manner; the conversations I engag'd in went on more pleasantly. The modest way in which I propos'd my opinions procur'd them a readier reception and less contradiction; I had less mortification when I was found to be in the wrong, and I more easily prevail'd with others to give up their mistakes and join with me when I happened to be in the right."
It seems to me that there could perchance be another problem in our communication, namely that of people of a certain persuasion expressing themselves in quite a convoluted manner perhaps better fitting a person in the process of producing a work of literature, in an attempt at asserting their intellectual prowess.
We have something to say, but we encode it in a carrier signal of verbal acrobatics.
It's logical because intelligent people want to appear intelligent too, but communication shouldn't be a competition of who can bend the English language in the most ways while still saying something.. and that was close too!
Then there's Programming Reddit, where (often very intelligent) people gather to argue about things and out-smug each other while still being more right than their opponents. I read it because there's still a lot of useful information floating around, but it's getting tiresome to read conversations that have a "winner".
"C-C-C-COMBO-BREAKER!!"
And what's with the Franklin quote? Was it normal to write "I walk'd to the store and purchas'd a banana" in those days?
Quick - someone hit me with a "Never start a sentence with 'and'"!
This is my experience too, especially on the internet.
Fortunately, the internet has an existing idiom for "simplify and shorten your message", which is of course: "tl;dr".
Franklin's prose could get very convoluted! I don't know whether he was showing off, or whether it was just the style of the time that he didn't think to change. He was fond of listing things in dense paragraphs so it's unfortunate that bulletpoints weren't invented until 1958 (seriously). Modern pundits are aware that simplicity can lead to more effective messages; we have widely-publicized advice like "Keep It Simple, Stupid". Maybe that's a modern insight or fashion.
I thought people used "tl;dr" mostly because dismissing things is so much fun, not because they'd be willing to read a shortened version.
You might well be right! But I like to give the benefit of the doubt.
"Men must be taught as if you taught them not, And things unknown proposed as things forgot."
You may know the answer to the problem someone else is going through. You may know that their approach is utter garbage and that they are clueless as to what they are doing. But rather than saying so outright, which will likely come across as offensive, it seems better to phrase things in such a way as that they will come to see the better solution for themselves. They might not even realize the role you played in that, nor credit you for the insight. But they will have learned something, improved their work, and didn't feel insulted.
In my experience, it's a route worth trying, anyway.
I can't speak for others, but I really appreciate good criticism. I'm talking about the kind that is brutally honest.
It still pays to be polite, I don't take shit from people who are rude.
I think it's great that Hacker News has the 'Rate my Startup' style threads. One of the things that stands out is the quality and honesty of the criticism, there's always some interesting points brought up.. and everyone here so damn nice too!
===
Dear Sir:
I wish to express my most sincere admiration of your company's business leadership over the years and its continued relevance in all matters of public life.
I am especially fond of your Windows XP product, as its ease of use and popularity are unparalleled. It was very generous of you to trust your users to do the right thing when it comes to multimedia copyright.
Your Windows Vista product also shows a lot of promise and I'm sure your company's renewed emphasis on security and stability is appreciated by many.
I can't wait to see what you will come up with next!
===
Criticizing vista is generally little other than an exercise of complaining, whining, etc. Microsoft most likely does not hear the majority of it, and therefore cannot do anything about it. You cannot do anything about vista's poor qualities other than not use it.
Criticism is only truly useful when it can have a positive impact.
Imagine saying, I don't think it should have rained today. Although phrased as a criticism, there is no possible good change that can come from that statement. Therefore, it is simply a complaint.
Truly, however, criticizing vista in the proper venues and at times where some good can come of it could be constructive, generally, however, it is as useful as criticizing god for the weather. If you want it different, go elsewhere.
Have you ever tried it? I have. I had to go back to XP because I had so much commercial software that would not run on Vista. Good luck finding a new laptop with XP in your local Office Depot.
Criticism is only truly useful when it can have a positive impact.
Agreed. To anyone reading this: Don't get Vista. It's garbage. There. I just gave positive impact. I potentially saved many strangers a lot of unnecessary pain.
If you want it different, go elsewhere.
Where have you been the last 20 years? If you have commercial or enterprise customers, there is no elsewhere.
Yes I've used vista, only moderately, someone wanted a new computer and even though I advised against vista, they bought it anyways.
most likely everyone here knows vista's garbage. providing the same criticism repeatedly is generally futile. If you didn't get through the last few times, what makes you think it'll change now.
But after reading the Carnegie book recently, I am trying to be more tactful. Whether I change my behaviour in the long run or not, I find it is a good social experiment to carry out. Now when I disagree with someone or am tempted to criticize them for some reason, I have to think about it carefully. I don't just blurt out my first thoughts. I have definitely seen that it helps to start with a compliment or merely stating the things that we do agree upon. And then I politely pose the differences as questions, similar to what Ben Franklin suggests. It's too early for me to make any big inferences, but one thing I can say is that it certainly feels better to have pleasant conversations than heated abrupt arguments.
When disagreeing, please reply to the argument instead of calling names. E.g. "That is an idiotic thing to say; 1 + 1 is 2, not 3" can be shortened to "1 + 1 is 2, not 3."
I love that "can be shortened to."
http://ycombinator.com/newsguidelines.html
As an engineer, it pays to have great sales skills, but you have a much harder task than the average salesperson, because ultimately your job is more like the lawyer's. Your raison d'etre is to build things that actually work. In the famous words of Richard Feynman:
For a successful technology, reality must take precedence over public relations, for nature cannot be fooled.
And that forces engineers to be critical. The decisions they make in the early parts of a project could make an order-of-magnitude difference in the eventual cost. If they don't find the holes in the plan ("gosh, won't your proposed friends-of-friends search scale as O(N^3) and ultimately bring your social network to its knees?") or properly evaluate the likelihood of rare-but-deadly scenarios ("is it worth a million dollars to guard against the odds that our offsite backup's drive controller will fail just as an earthquake takes out our primary data center, or shall we just buy insurance?") the whole enterprise could fail catastrophically.
Perhaps many engineers err on the side of too little Dale Carnegie. But it's telling that many of the great ones don't so much avoid criticism as get really, really good at selling criticism to you. Think of Steve Jobs, one of the most critical people in human history, who gets away with it by playing the role of a fanatically driven artist. Or Torvalds, who is really blunt but turns it into a joke: He makes fun of his own bluntness (he named his DVCS "git" -- look it up in the dictionary!), he's deliberately over the top, and he plays strictly to an audience of engineers, who are more likely to see the humor in lines like "CVS users are ugly and stupid" than the average person is.
Try to moderate your criticism, but don't forget that ultimately it is your job. Don't lose focus on it.
However criticism of code or architecture should be encouraged and seen as a constructive thing as it lets you discuss different approaches and why the current approach was taken and how it can be changed or improved.
Criticism and debate in Math, Engineering and Science should be encouraged.
Related: http://micromath.wordpress.com/2008/12/26/women-and-mathemat...
I think the real question you have to answer for yourself is, who died and appointed you the arbiter of stupid? Why do you think you should go around and share your opinion on what other people want to do and say?
The fundamental problem is not how you present criticism, as other commentors have suggested. That is a techie "hacks" approach to the issue.
It's your attitude towards other people on the whole. You want to critize because of the way it makes you feel, not because you want to help them grow as human beings.
I don't know you personally, but a lot of people with the kinds of criticizing problems you describe look at being correct as being righteous, and being incorrect as sinful, unvirtuous and contemptible.
Just biting your tongue's not going to solve this underlying view.
What you need to cultivate is respect and empathy for everyone's humanity and their complete otherness from you.(And some gentleness for yourself, too.) I'd recommend some vipashyana mediation.
Note: I'm aware of the irony. But you asked.
I think that's the key. We all are entitled to an opinion, but none of us is entitled to spit that opinion in the face of anyone else.
> "It's your attitude towards other people on the whole. You want to criticize because of the way it makes you feel"
> "Just biting your tongue's not going to solve this [negative] underlying view [of other people]."
Strongly agree. Most peoples' criticism (mine especially included) isn't harsh because they use a bad method, it's harsh because they're mean, selfish people.
Learning to be indifferent to failure and mediocrity is not the right goal IMO.
If you hate bad/incorrect, then you will have to hate yourself most of the time, because you are a fallible human just like everyone else. And hate is not a very good motivator. If you hate yourself when you are wrong, it is much easier to just not seek the truth in the first place.
Accepting that mistakes are a huge part of life, and striving to get better every time, is a much better approach.
Look at it this way (Depending on your background, you may need to read http://en.wikipedia.org/wiki/Utility to understand the nature of my argument):
There is a utilty to you of person P doing behavior B. Let's call this utility function U(P, B)
You strive to maximize U, i.e. low U - hate; high U - love. And when U is flat you are indifferent.
If you are making hiring/firing decisions, you get to maximize U in the first argument, so your hate/love of good/bad behaviors can translates into preferences of persons (i.e. hires)
However, when looking at your own actions, you don't get to maximize U in the first argument, and so your hate/love of bad/good does not translate into self-loathing. "Self" is just not part of the equation there.
See how it's much clearer when you think of it mathematically?
> Accepting that mistakes are a huge part of life, > and striving to get better every time, > is a much better approach.
If you are indifferent about failures (your utility function is flat), where would the striving come from?
But beyond that, you're sadly mistaken if you believe that humans actually maximize utility and follow any kind of logical equation in their lives.
I suggest you read Stumbling onto Happiness, Mistakes Were Made (But Not By Me), The Presentation of the Self in Everyday Life, and of course Predictably Irrational. All chock-full of good, meaty studies that show what irrational creatures we are.
This objection is of the kind "you can't use scientific models to describe our world":
Planets are not points (don't use Newton's equations).
Temperature begins to exist only after you wait an infinite amount of time for the system to reach an equilibrium.
etc.
The maximization of utility may be an approximation, but it's definitely a more helpful mental model of human preferences than none at all, and claiming that somehow hating failures and loving success should translate into self-loathing because all humans are fallible.
Anyhow, I'm working on not arguing this year, so I'll leave you here. Sorry I started this branch of the discussion.
You know very well that by referring to actual studies of human nature I am not, in any way, implying or suggesting that "you can't use scientific models to describe our world."
It's not funny, and it's not clever.
if you think something is stupid slow down. stop. try and understand the other person's perspective and the root of their concerns.
be respectful. i find this easier when i'm in a good mood and my mind is actually being respectful, rather than simply watching what i say. the latter is important, too, because emotions, stress and frustrations cannot always be avoided or ignored.
1. their perspective and concerns are likely valid, even if they don't have the background to properly express their concerns or come up with a smart solution.
2. no one is stupid, we just have different backgrounds and are in different places of development. sometimes it is appropriate (and useful) to teach or mentor others; other times the group needs to stick to a process that permits communication and specialized expertise.
Seriously though, I prefer to go Socratic when I disagree on a technical question. I don't want to prove to myself or anyone else that I'm right. I do want to draw someone else into my way of thinking.
If my partner in argument manages to answer the questions I thought were subtle and revealing, maybe my understanding was incomplete. In that case, I should have been asking questions all along anyway. Depending on how sarcastic your questions sound at the beginning, you can probably change stance from know-it-all to ignoramus without anyone noticing.
If a problem has a settled answer in the public record, send a link. Not everyone considers the same sources authoritative, though.
I guess what I'm asking is: would you say the net improvement is worth the loss of those exceptions in business relationships?