Comment by notepad0x90
4 days ago
The only problem I have with this sentiment is that in technical contexts, being direct and clear is very important and that can easily be mistaken for being an asshole.
Let's say someone made a critical error in their code. Now, it would be nicer and kinder to say "Perhaps you could have done that better, it might have harmful impact on users" and you can also tell the person "This is really bad, you messed up, this type of a mistake is unacceptable and horrific" which uses lots of sharp words and feels abusive, so which is better? It makes the person feel bad for sure with the second option, but isn't that the best way to communicate just how bad what they've done is?
It reminds of how Linux Trovalds tears into people sometimes, I disagree with him most of the time (takes it too far) but isn't the sentiment correct? In other words, you need people to feel very bad about what they've done, not as an attack on their personality, character or even competence but to help them understand the severity of the situation.
Personally, I have struggled with this working in the context of infosec, some mistakes are putting people's livelihoods and even their persons in way of harm. My conclusion so far is to draw a line, be direct but never say anything to anyone that you wouldn't want said to you if the situation was reversed.
I want people I work with and talk to (including here on HN) to communicate clearly and directly with me (and vice versa), without sugarcoating things when it comes to technical discussions and we shouldn't conflate directness and bluntness with being an asshole, just as much as genius (what is that anyways and who cares?) with asshole.
> Let's say someone made a critical error in their code. Now, it would be nicer and kinder to say "Perhaps you could have done that better, it might have harmful impact on users" and you can also tell the person "This is really bad, you messed up, this type of a mistake is unacceptable and horrific" which uses lots of sharp words and feels abusive, so which is better? It makes the person feel bad for sure with the second option, but isn't that the best way to communicate just how bad what they've done is?
You could have just say "This line here will have harmful impact on users".
The point here is to use negative words on the 'OBJECT', it can be code or anyone's work, not on ppl. You donot need to make an statement on someone's intelligence to make him understand the severity of an issue.
> You could have just say "This line here will have harmful impact on users".
But I don't even care about that line, it's already caught and will be fixed. I want them to know it was their lack of care and their negligence, I want them to take personal responsibility for that and for future work they do. But I also would want such a person to know it isn't a personal attack, just a very serious area of improvement and a mistake that can't be repeated.
I suppose my point is, the receiver of the criticism should allow for negative words and personal criticism without taking it as an insult. but the phrasing should be focused on the problem with relation to the person that caused it. The moment the focus of the sentence becomes the person, that is probably inappropriate? Just thinking out loud.
> I want them to know it was their lack of care and their negligence, I want them to take personal responsibility for that and for future work they do. But I also would want such a person to know it isn't a personal attack, just a very serious area of improvement and a mistake that can't be repeated.
You are an asshole. Your lack of care and negligence in your interactions with your peers has a detrimental effect upon your team's productivity and internal communication. Please take responsibility for this failure in intra-personal skills and acknowledge the impact your lack of empathy will have on your future work. This is not personal, I am just directing your attention to an area you need to improve and where future mistakes like this should not be repeated.
5 replies →
But you don’t know negligence is the reason. You are just assuming that you understand how the situation arose and what their internal state of mind was the led to it. But it could have ignorance, rather than “negligence”. They might not fully understand that specific code usage, in which case instruction and mentorship would be the remedy.
Second, do you have any evidence that calling someone negligent actually leads to better performance? Is that an established best practice for reducing errors or does that just satisfy your own feelings of annoyance or dissatisfaction?
Third, “this is negligent” is not constructive. Neither is "This is really bad, you messed up, this type of a mistake is unacceptable and horrific". These are not actionable nor are they specific. They are emotional. Feedback outlining (or directing them to resources) on how to do a proper code review to catch mistakes like this, is actionable and specific.
Finally, the swiss cheese method of safety is always better than the “just stop making mistakes” method. Aviation safety does not rely on pilots “just not making mistakes”. There are studies of procedures, warnings, training, etc. to reduce the likelihood of an arror and redundant systems to make errors survivable. And there are checklists, so many checklists. Have you instituted checklists for code writing and review before it comes to your level? If something is so critical, is it negligent to allow code to be written and submitted based on each persons individual, subjective idea on what is thorough and what is a negligent level of review?
You’re focusing on your side of the communication, but to be really effective in any communication you need to focus on how it will be perceived by the recipients.
If they messed up, you want to help make them better so it doesn’t happen again right? So really you want a positive outcome for everyone. You don’t have to sugar coat it tho, just share it in a way that makes it a learning moment.
1 reply →
Don't get stuck in the either/or scenario. It's possible to be direct AND kind without being an asshole. Not giving someone critical feedback isn't kind, it's just being a coward. Giving someone critical feedback without regard to the human receiving it, is just lazy.
Last place I worked I was direct AND kind towards my team about a data leak related to PHI and they chose to sweep it under the rug and never addressed it while I was there. I think I should have been a bigger asshole. Some ORGs just can't deal with negative outcomes in a positive way.
If they don't care about a PHI leak it wouldn't matter how you presented it
Were you laid off? If so, the results suit them well, you didn't even need to be an asshole for their benefit.
Edit: sorry, my intention was to "diss" them, not you.
1 reply →
False dichotomy. "If you deploy this code as is to production there is a high risk of bug X which I think is unacceptable risk. We had a similar bug 3 months ago.". Click the request changes button. Simple.
If someone keeps making mistakes, talk to their manager maybe. .
That problem is already caught, how do you make sure they know and understand that mistakes like that cause harm and it was a result of their negligent attitude? Fixing that mistake isn't the goal, making sure they exercise more care and understand the gravity of the situation is.
"making sure they exercise more care" is quite a vague concept. If things are important there will be checks and extra safety nets and people will learn over time. If the only thing stopping harm is people "caring more", then you have a ticking time bomb on your hands anyway. And yeah, you can just tell someone "this is very important and serious" to convey it's very important and serious. Adding asshole phrasing on top doesn't change much.
3 replies →
The manager needs to judge if it is a one off oversight, a skill issue or an attitude issue.
I think it is better to talk to everyone civilly and respectfully regardless and then use fair processes to deal with these issues.
Broadly you have 2 possible issues:
1. People make mistakes and you need processes like code reviews and tests etc. to catch them. No one does 100% perfection. Avoid blame.
2. Someone is not performing well enough.
You deal with 1 as a team through continuous improvement. And 2 is usually manager and team member through feedback and perhaps performance improvements. It should be utterly respectful at all stages.
Linus has moderated his approach quite a lot, and I think he’s a great example of growing self awareness in someone who used to be in the top right quadrant of the genius / asshole plane. He’s moved a long way towards “stern dad” from “bringer of the righteous flame.”
>you can also tell the person "This is really bad, you messed up, this type of a mistake is unacceptable and horrific"
Is that supposed to be professional? Especially for 99.999% of code, outside of real life-and-death Therac-25/Fly-by-wire/nuclear plant control sotware?
it's relative isn't it? it may not even be code per-se. I'm implying for the sake of this discussion that for the people concerned, this is equivalent to making a mistake that made a nuclear power-plant go critical. A business-killer bug is like that for those involved. People get laid off, families lose their source of income, people commit suicide, divorce,etc.. as a result. I'm usually less concerned about financial loss than the human impact surrounding our mistakes.
I've screwed up, but I hope I never screw up so badly it starts messing with people's lives and well being.
You are the only one conflating being asshole and being direct. I will be direct myself: it's a common strategy by assholes and asslickers to defend assholery in the name of the good. You can be direct without being an asshole, you can be firm without being an asshole.
Ask yourself what you want the person to think about, not what you want them to feel. They'll feel anyway, but if you're not careful they'll not think about anything but feelings.
Direct words like "We don't do that here, because we have a duty to have higher standards. Do you understand why?" can carry a lot of gravitas and make a person feel small and bad but that's not their intent. The intent is to make them think about 1. Their place in the org 2. The quality of their work 3. The importance of high standards.
Words like "This really is low quality work." Or "this is awful" are just playground insults and are actually not direct communication at all. They are designed to affect feelings not principles or the technical issues at hand. Going for someone's feelings is just kinda silly.
The fact that some people hold to high standards and also have a mean communication style is fine but not required.
> Going for someone's feelings is just kinda silly.
It's also extremely counterproductive, because anyone who did care about their work being any good will quickly be turned into a grey rock by phrases like "you messed up", "unacceptable" and and "horrific".
And those who don't care about their work also don't care a jot what you think about it.
I think the core issue is that everyone reacts differently to different approaches of conveying a problem. Some people you scream at them "You're trash, you suck!" and their motivation to succeed explodes. Do it to others and they just collapse and check out. Some people screw up big, get a gentle talking to, and walk away feeling like it's no big deal. Others are dead inside and know they can never make that mistake again.
There is no magic response, it needs to be tailored to the individual, and being able to read what kind of response is right for which individual is part of what separates shitty and great managers.
Feelings are important, people remember how you made them feel,not what you said. I want them to understand that mistake/approach was really bad, I want them to feel the gravity of the situation so that when they do work like that in the future, they recall that feeling and take extra care. I don't want them to think they're stupid, or any negative thing about themselves, but I also don't want them to think "it could have happened to anyone". Communication is hard.
Let me be more direct.
It is generally a bad smell to manipulate feelings directly. If you were clear about the gravity of the situation they would have the appropriately bad feelings. Or maybe they wouldn't and would make the appropriate changes anyway.
If you have to go for feelings then you are not transferring context. Or it might be you lack self control to keep your own feelings out of it. (It's not about your feelings it's about solving problems).
Or it might be you wrongly believe that outward expression of feelings that you recognize as appropriate are a prerequisite for positive change. Why do you believe this to be universally true? Why do people have to feel the way you do to do good work?
1 reply →