I'd say the top two are direct and definitely impolite. Number two may seem polite to a direct sort of person, but the blame makes it impolite. Of the latter three I'd say the top one is not only the most concise and direct, but also fairly polite. These last two are more polite, but lack directness.
"Hey - <problem> is causing <symptom>. I think you have context on this - can you drive <solution>?"
We're people. The nuance, tone, and empathy of what we say matters. I know some people will scoff at "coddling" or "beating around the bush". I think these people don't correctly prioritize the outcomes of their communication.
When I talk to someone, my goals are, in this order:
1. That the other person like me and want to continue working happily with me in the future and feel emotionally safe talking to me.
2. Whatever "primary"/immediate outcome I'm shooting for
Paying attention to 1 pays off in the long term. People are happy to work with you and it accelerates how effective you can be because people feel safe with you.
"Hey - <problem> is causing <symptom>. I think you have context on this - can you drive <solution>?"
Please don't go around blowing corporate-speak up people's asses like this.
Seriously this a huge waste of time. If I made a typo in some important document or piece of code, just tell me what it was, and I'll fix it.
We're team members after all. Plus we've been spent years at hard technical schools and are used to having our work evaluated and corrected by others. We're not babies.
Granted, your approach is much more applicable (and is arguably necessary) when things are fuzzier, when it's not clear what the root cause is or who (if anyone) is at fault.
Most of the time it isn't though - it's very straightforward, and has nothing to do with ego or blame at all. In these (the vast majority of cases) -- just give me the information so I get through the day, please.
> Granted, your approach is much more applicable (and is arguably necessary) when things are fuzzier, when it's not clear what the root cause is or who (if anyone) is at fault.
But can you always reliably tell? There might be a reason, what looks like a mistake to you, was done in the first place. A reason that’s not obvious to you, because the error is in plain sight and takes up all the space. So, by "blowing corporate-speak up people’s asses", you actually give them a chance to elaborate, without already coming to a conclusion and calling it a day. This is something I'd expect from a senior developer, for instance. I usually frame it as a question, to get an understanding as to why it was done.
And trivial errors like typos in a method name get a comment with a suggestion, that can be applied by the original author in Azure DevOps with a single click.
All I can say is that with both experience, and after getting into the groove and flow of working with a particular team - one starts to learn how to read the tea leaves, as it were, and to make reasonably accurate judgement calls about such things.
I'm not saying the "soft, guarded" approach is never suitable; quite often it is.
Most of the time, though -- especially after we've gotten to know the people we work with -- it's more efficient (and genuinely less distracting / bothersome to the other party) to just get to the point.
I think devs are often prone to misjudging that though. Especially when there's a power imbalance. A senior or staff engineer talking to a junior or mid-level ALWAYS needs to be cognizant of the effect your actions and words have on other people.
"after we've gotten to know"
In my experience, once you've built solid rapport, you generally can always be less direct.
"hey man did you just deploy xyz? I noticed there's some weird error prints, wanted to make sure you saw"
"yeah thanks, just saw them a minute ago, already on it"
There's no need to be highly structured or direct, just a small nudge/hint/check, and they know you have their best interests at heart and aren't upset or annoyed.
"Hey man did you just deploy xyz? I noticed there's some weird error prints, wanted to make sure you saw"
That sounds totally great of course. What I'm concerned about is when people think they need to get all long-winded and and jargon-y to avoid sounding "blunt". Per the example in the ancestor comment which tipped this all off (slotting your values in):
"Hey - it seems the XYZ deployment is causing some weird error prints. I think you might have the context on this - can you drive a solution?"
Even if your teammates don't need this, writing this way is a useful skill when dealing with vendors or other 3rd parties whose culture you don't know, and you don't want to give them an excuse to prioritise someone else's ticket
It starts well, with "X is causing Y", and reminds me of a framework we had at one of my previous jobs - behaviour -> impact -> outcomes (or options?). It's a model to provide developmental feedback, but can be useful to frame other situations. In this case:
"System X is currently way behind our target uptime. As you know, this was caused by the introduction of feature X which your team worked on recently. We need to get back on track and meet our SLOs before it starts impacting revenue."
Tells them everything they need to know. You shared the necessary info and actions to be taken are obvious, but adding a "we need you to focus on this and take the lead on fixing it" will not sound aggressive.
The approach you mentioned is very cloudy in comparison, "driving" something is not a clear outcome, "you have context" is soft blaming. It's just a very polished "it's your fault, fix your shit", and it would sound exactly like that to me. It's precisely the kind of beating around the bush that people scoff at. The message itself can be a lot better.
I think your pattern looks very effective. I never considered that the side effect of #1 is to create a psychologically safe environment.
Not to take anything away from your post, but I have noticed that a few people lean very heavily on #1 to get people to do a lot of #2 for them. In return, they are "always busy" and cannot help. I struggle the most with these people. I am sucker for #1, as I am human after all.
I have similar sounding goals except my first goal is this instead:
1. That the other person know they are valued by me as a person and feel safe talking with me.
It shifts the goal from one that is about me to one that is about them. And that is really what I want. It's not to be liked but for them to feel valued.
Is largely sufficient and a smart person will fix it.
All the five examples are too direct and in case there was no mistake which happens most often than not with competent teams, will leave a sour aftertaste to everyone.
I think you're confusing direct and confrontational. All five of your phrasings are combative and lack specificity (and so does the GP's questioning phrase). Simply saying or asking "this is a mistake" is not identifying the problem at all.
Maybe you implied there would be more context than just that one phrase, but in the interest of furthering the discussion, these phrasings are all better than your examples, and still very direct:
- "This approach fails under conditions A or B"
- "This code seems to assume X, where is this validated?"
- "How does this code handle condition Y?"
- "This code delivers the wrong result under condition Z"
- "This does not do what's specified in the ticket: it should do S, not P"
None of these would qualify as a good code review though. The reviewer needs to put in the work - explain in a concrete way what the problem is (and be right), and offer possible and correct solutions.
"This will cause a problem if there are a large number of records in the table because it loads all the records at once. A memory efficient way to iterate this data is ...". is a good comment.
Not necessarily. There can be so many different things happening here.
The commenter might overlook something. So the word will might not be a good choice. You can say could or can.
The second sentence is not free from this either. If the commenter did indeed overlook something and the code was specifically written as it was on purpose with full knowledge of what might happen, then this can come across as quite condescending. As in "you dumb-eff don't even know how to read a large table efficiently. Here I'll show you how exactly to do it sigh". And the author will think "what an a-hole, does he think I don't know how to do this? What a dumb-eff".
Without knowing the exact example you were thinking of one could at least rewrite it to "One possible optimization I can think of would be to do X".
Now your PR author might say "Aah you're right, I copied this code from place A quickly to prototype this and forgot to come back and do it properly for the large amount of data we expect in Prod. That X approach is pretty neat. I usually prefer Y. Look here I pushed a change. Let me know what you think".
Can you elaborate as to why the first two are impolite? They seem like statements of fact followed by a directive. I don't think directives should be phrased as requests (which are possible to politely decline). These are commands, what's wrong with phrasing them as such?
> What's wrong with being directly told you've caused a problem?
There's nothing "wrong" with being impolite, it's just impolite to be impolite.
> Why is it impolite?
It feels impolite to me therefore it is impolite. Trying to parse out my feelings the best I can come up with is that the phrasing highlights the subordinate nature of the person being directed relative to the person directing by focusing on the person and the mistake prior to the task.
> • The extent to which the behavior is positively or negatively valued in the relevant culture;
Making a mistake is negatively valued in most cultures, especially when it needs to be corrected.
> • The extent to which face or sociality rights are exposed;
Highlighting subordination and superordination exposes sociality rights.
> • The degree of intentionality ascribed to the actor(s);
The personal "you" can be, though may not be, seen to impute a degree of intentionality.
Additionally:
> (2) [rude behavior] does not utilise politeness strategies whetre they would be expected, in such a way that the utterance can only almost plausibly be interpreted as intentionally and negatively confrontational. (Lakoff, 1989: 103)
> (5) Impoliteness comes about when: (1) the speaker communicates face-attack intentionally, or (2) the hearer perceives and/or constructs behavior as intentionally face-attacking, or a combination of (1) and (2). (Culpeper, 2005a: 38)
> impoliteness <versus rudeness> occurs when the expression used is not conventionalised relative to the context of occurrence; it threatens the addressee’s face… but no face-threatening intention is attributed to the speaker by the hearer. (Terkourafi, 2008: 70)
Wouldn't professionalism dictate that your management of your own feelings in the face of simple factual statements is your own responsibility? What's impolite in a social context isn't the same as what's impolite in a professional context.
If the goal of an organization is to accomplish the objective in the most efficient way, doesn't this sort of feelings-management interfere? Isn't it (much) more efficient to just communicate directly and clearly, an leave feelings-management to listeners? Isn't this why militaries all over the world do this? Shouldn't we all learn from their example?
No, this is called being a grown up in all contexts, not just professional ones.
> What's impolite in a social context isn't the same as what's impolite in a professional context.
Professional contexts are subsets of social contexts. They aren't special. The only thing that can make any context special are the meanings of individual behaviors the actors within that context have mutually negotiated between them.
> doesn't this sort of feelings-management interfere?
Of course not. A typical person can work more effectively when they personally don't have to actively manage their emotional responses to others. This is facilitated by non-superficial politeness all around. Because it is a natural response to ruminate, for periods of time that are disproportionate to the event, on how others have treated us (common in relatively social animals, and possibly non-animal organisms), it is far more efficient to manage politeness than to count on emotional self-management.
> Isn't this why militaries all over the world do this? Shouldn't we all learn from their example?
You can be rude, not just impolite, in particular instances in civilian life without getting most people het up about it. But these instances are few and far between.
In militaries people are explicitly taught that their life absolutely depends on this rote learning and immediate response to shouted orders. Additionally, the military doesn't care as much about optimal functionality, just basic functionality. Theoretically systems exist in the military to prevent cronyism and other forms of privilege; everyone is treated the same, or at least has the same opportunities. This itself minimizes the rudeness bias. More importantly, when off duty, or on duty but not actively engaged in an exercise, officers and senior non-coms are less direct and do a lot of feelings management. Military life is not boot camp.
Even with all of that, in Vietnam at least, grunts did kill their officers at times. Active shooter situations are extraordinarily bad, and a lot of work goes into preventing and managing them. Being polite is one part of this management.
And plenty of people don't have the mindset for the military, and know this, and purposefully avoid joining the military because of this. You can't eliminate them from the civilian workforce.
Right, but my initial point is that any reasonable rumination on a statement of fact followed by a directive concludes with the assessment that nothing inappropriate happened. If you are at fault, and are subordinate, then the communication was appropriate. If you're not, then a simple refutation of the factual claim is all that's needed.
Shouldn't we expect people to be fundamentally reasonable in this way, even if some people have a hard time with it? I would say that is what striving for excellence looks like.
> the military doesn't care as much about optimal functionality
The military certainly does care about optimal functionality, since the price of failure (losing battles/wars) is cataclysmic. I'd say that (winning) militaries are among the most efficient human organizations out there.
Vietnam was staffed by conscripts who, importantly (and rightly), didn't believe in the objective they were forced to fight for. It's not a situation with any good outcomes, and is wildly different from a volunteer army (or corporation).
> You can't eliminate them from the civilian workforce.
I'm not suggesting we do, only that we as an industry endeavour to elevate our standards of professionalism by emulating some of the most professional organizations out there (militaries, intelligence organizations, industry leaders, etc.). All of these organizations are characterized as "toxic" in wider circles specifically for the traits that allow them to succeed.
> that any reasonable rumination on a statement of fact followed by a directive concludes with the assessment that nothing inappropriate happened.
If everyone responded in a way you find reasonable we'd be a lot more monotonous. "It takes all kinds" is not just an idiom of tolerance, it's a genuine fact. We would not have as vibrant and productive a culture if we were monotonous.
> Shouldn't we expect people to be fundamentally reasonable in this way
No.
> even if some people have a hard time with it?
Especially not then.
> I would say that is what striving for excellence looks like.
I would say that "striving for excellence" means it takes two to tango (I feel in the mood for idioms :P). To most effectively ameliorate impolite situations both parties need to respond, not just the one who felt that they received impoliteness.
> The military certainly does care about optimal functionality
Just like almost every other organization (other than NIST) optimality is not the priority, adequacy is. "Is this adequate to our needs? Great, we go with it."
> It's not a situation with any good outcomes, and is wildly different from a volunteer army (or corporation).
And yet we still get active shooter situations in volunteer militaries and civilian corporations.
> emulating some of the most professional organizations out there
Why are these organization more "professional" than other corporations which practice professions?
> militaries, intelligence organizations, industry leaders, etc.)
Militaries typically don't have competition anymore, except for other militaries. And when they do face irregular forces they don't always outright win. There are very few non-military martial forces, and I would guess most of those follow a military cultural structure. We're a long way from bands of warriors (e.g. "The 13th warrior"). Even then, we have seen that volunteer forces function better than draft forces.
As there is no more competition, has the effectiveness of these particular direct organizational cultures been experimentally validated against other organizational cultures? In which contexts (i.e. does the effectiveness universalize to all sorts of organizations and professions)?
> All of these organizations are characterized as "toxic" in wider circles specifically for the traits that allow them to succeed.
And you know these traits are responsible for their success (and not their failures) because why? And that, even if so, the effectiveness of these traits will generalize to the success of other organizations?
It seems as though you're just defending unreasonable behaviour in the sprit of diversity. Assigning value to things necessitates narrowing the diversity of all possibility. I'm not clear on what value exactly tolerating unreasonable behaviour provides, can you elaborate?
To most effectively ameliorate impolite situations we need clear, written codes of conduct (read: communication protocols) dictating what is and isn't polite to say, and explaining why. None of this "It feels impolite to me therefore it is impolite" nonsense. Clarifying and standardizing communication is unsurprisingly the best way to avoid miscommunication.
The military's main goal is to succeed (read: win). I concede that organizations optimize for adequacy, but hold that organizations that consistently meet and exceed their objectives are those to be emulated.
Many people working at very high-functioning (military and civilian) organizations (and teams) report an environment of clear, direct, communication and a culture of personal responsibility and ownership. These traits are antithetical to the indirect, blame-shifting style that is being advocated in the above thread. If something is your fault, you should be the first person to admit it, and others should not hesitate to (directly) point it out. This is a hallmark of high-functioning teams, and is a great example of how communication style is inseparable from wider team and organizational culture. And it's the culture of ownership found in high-functioning organizations that we should all aspire to.
You're the person who wants a monoculture of direct speech, when it is facially evident that indirect speech is highly used in society, and you're calling me unreasonable?
I've said what I had to say. From my point of view you appear to have a bias for a particular order that you are unwilling to budge from. I'm not convinced of its correctness.
> we need clear, written codes of conduct (read: communication protocols) dictating what is and isn't polite to say, and explaining why.
People who are unable to "read the room" need this. Mores evolve without such clear guidelines, which would not be possible if many people were not able to adapt to unstated expectations. Yes, it's important to reality check. But no, protocols and explanations are not the only way to do this . We are not children anymore. We are adults and are expected to figure this out on our own. You don't seem to find my explanations adequate anyway, so the best you'd get with a protocol and explanations are people complaining about the protocol and saying they really don't get the explanations, and so don't find them worth following.
> None of this "It feels impolite to me therefore it is impolite" nonsense.
Why do you think intuitive, or guttural, means of understanding are nonsense? Without them we would be either paralyzed in analysis or slow as a sloth. We evolve to take shortcuts. We evolve, for very, very good reasons!, to read between the lines and look through superficiality. Without doing so we would have died off a long time ago.
> Clarifying and standardizing communication is unsurprisingly the best way to avoid miscommunication.
Sure, I agree with this as stated. I just think politeness, as described above, also fits into this. Hierarchy does not matter for clear communication. Blame does not matter for clear communication. And unfortunately we aren't all speaking Lojban - there will always be some miscommunication. We are also a species that reads nuance into tone and word choices. This isn't going to change, and trying to make it change is a heck of a lot less efficient than navigating around it. Not to mention dangerous! It is actively dangerous to get people to second guess their intuitive readings of social situations, at least without a lot of follow up training. People have died because they felt they should give a situation the benefit of the doubt when their instincts were to flee.
And I'll add that avoiding miscommunication is not the be all and end all. If a person knows, beyond a shadow of a doubt, that you look down on them, this can be worse for productive labor than merely thinking it might be the case.
> These traits are antithetical to the indirect, blame-shifting style that is being advocated in the above thread.
Blame doesn't have to be cast in order for personal responsibility to be cast!
> If something is your fault, you should be the first person to admit it
I don't disagree. If you realize it, of course.
> and others should not hesitate to (directly) point it out.
They can do so politely. Much more easy to do in person where a polite tone of voice can be used.
> And it's the culture of ownership found in high-functioning organizations that we should all aspire to.
Whatever, man. Give me a stake and I'll take ownership, just give me a salary and why the hell should I feel a sense of ownership in something I don't own?
I'm done with my part of this conversation. I don't feel we're going anywhere.
You'll find that traditional cultures are almost universally quite rigid, prescriptive, and hierarchical about such things. Strict, slowly-evolving, protocols about whom to address by what title, whom to bow to and how low, etc. It's only our modern multiculture that has shed these traditional mores. I'm pointing out that it hasn't exactly resulted in a net win. An environment when no one is sure exactly how direct they can afford to be, and who might take offense to what, isn't a productive one.
Many of these customs have only been shed by American culture very recently. Calling your boss "Sir" or "Ma'am" (with all the associated deference and subordination) and strangers "Mr" and "Ms" was the norm in living memory. Shedding this structure is still very much experimental.
> If a person knows, beyond a shadow of a doubt, that you look down on them
And yet we managed to build just about all of civilization working in deep and rigid hierarchies. You might even say that the construction of such hierarchies is one of the most important enablers of civilization. I'm simply saying we should try to optimize them.
> why the hell should I feel a sense of ownership in something I don't own
I can't imagine how much time you must have available to be able to respond to an error with:
> Could there be a mistake here?
in place of simply correcting and then getting back on track with actually solving a presumably difficult problem.
<<The Zone>> is a fleeting thing, especially with two programmers. Such nebulous, passive language seems like a guaranteed way to disrupt any kind of flow state.
"You made a mistake here and need to correct it."
"Please correct this mistake."
"There's a mistake here that needs correcting."
"Can you correct this mistake?"
I'd say the top two are direct and definitely impolite. Number two may seem polite to a direct sort of person, but the blame makes it impolite. Of the latter three I'd say the top one is not only the most concise and direct, but also fairly polite. These last two are more polite, but lack directness.