Why are you lying to me? What the hell is wrong with you?
There is a style of leadership that is honest, direct, and forceful, yet it is also respectful
When you are in a leadership position, there is no reason to use insults or curse words. While it is natural to sometimes feel anger, it is mistake to give into the anger. Doing so can amount to self-sabotage, since you might alienate some of your best workers.
I have the impression that some people grew up in families where the only time people spoke frankly was when they were angry, and so some people grew up thinking that “angry talk” and “honest talk” are the same thing. They are not. In fact, they are often opposites.
In 2011 I was working at a travel site that gathered up travel deals from the major air, cruise and hotel companies and then promoted them on the site (the companies paid us to promote their deals). The whole tech team was just six engineers, and Sonia was our project manager and also our entire QA team.
One week, after we pushed out some new code, Sonia tested the web site – informally clicking around, looking for any mistakes.
Sonia: I don't think I'm seeing all of the travel deals that I should be seeing.
Me: What is missing?
Sonia: See, if I search for Bermuda I see certain deals, and if I search for Saint Vincent I see certain deals, and if I add in a specific date range I can still see all of those deals, but if I instead search for "Caribbean" then three deals disappear.
Me: We show Bermuda when people search for “Caribbean”?
Sonia: Yes, we always have. Sometimes our customers are just looking for a cheap island vacation, and we can sell them on Bermuda deals. And we often have more Bermuda deals than Caribbean deals.
Me: Okay, well, we should create a ticket and someone should figure out what's wrong.
Sonia: I'll create the ticket. How many hours do you estimate this will take?
Me: Let's say four hours.
Sonia created the ticket. I assigned this to Jerry, who had written most of our search code.
The next day I knew this ticket would be Jerry's first priority and, early in the day, I saw that he'd marked the ticket as "done" with a note that said "There was no actual bug." Jerry lived in another city, and was working from home, so I reached out to him and we set up a video conversation.
Me: So, you had a chance to look at the problem that Sonia found? The travel deals that aren't being listed when people do certain searches?
Jerry: Yeah, no problem, she was just searching for the wrong things.
Me: What does that mean?
Jerry: She was combining too many search terms. She confused herself.
Me: She confused herself?
Jerry: The code is very complex.
Me: Well, is our search engine supposed to support all of the search terms that she was using?
Jerry: Sure, but if you combine all of it, then certain deals won't show up.
Me: Sonia is very careful. She doesn't usually say some software quirk is a bug unless it really is a bug.
Jerry: The code has to take into account dozens of special circumstances. Sonia just didn't get it.
Me: Sonia herself has, over the years, defined most of the special circumstances that you reference. She defined them and then you turned them into code. It doesn't seem likely that she would not be aware of the special circumstances.
Jerry: Sure, but no one can keep track of all the different ways those special circumstances can combine. Fifty special circumstances can have tens of thousands of combinations. In this case the combinations were just too complicated for her. I checked the Solr configuration and everything is correct.
Me: Okay, thanks for doing that. I appreciate it.
I told Sonia the good news, that there was no actual bug, but she was suspicious of that answer. She spent the next hour running various searches, and taking copious notes, and then consulting with the Travel Deals Team to be sure some searches were not showing up. Then she asked me to review what she'd found, which I did, and I acknowledged there did seem to be a real problem.
At this point three things happened:
Sonia created a new ticket.
Jerry almost instantly marked it as "done," again with the comment that there was no actual problem.
I got angry.
The situation had morphed from a technical problem to an attitude problem. I didn't like Jerry's tone, so I asked for another one-on-one chat with him over video.
Me: Sonia has devoted considerable time to documenting a problem with the travel search.
Jerry: Again, I've explained this to you, there is no actual problem. It's the way she's combining special circumstances, in ways that limit which deals can appear on the site.
Me: That doesn't matter. There are deals that the Travel Deals Team wants to have on the site, and those deals are not appearing. So whatever code you wrote in the past, that code is now going to change.
Jerry: But I already told you...
Me: Doesn't matter! We are trying to sell some deals! We want to make some money! The Travel Deals Team wants these deals to appear on the site! We are going to change the code to be sure these deals show up!
Jerry: But I made some good decisions about what shows up when. For instance, I don’t like the idea of showing deals for Bermuda when someone searches for “Caribbean.”
Me: You do not have the authority to veto decisions made by the product team! If they decided that people looking for a cheap island vacation might also be interested in Bermuda, presumably our product team made that decision after they did careful research about our customers.
Jerry: What if they made a mistake? What if their research is bad?
Me: You are free to schedule a meeting with them and make all of your views known to them, but you have to do that honestly, by talking to them directly. You don’t get to make secret decisions without telling anyone. You don’t get to veto the product team but then disguise your veto by talking nonsense about the complexity of the code.
Jerry (with a heavy sigh): Okay, okay, okay, whatever, okay? Whatever. This is stupid, but I'll look into it.
Me: No, don't bother. I'm going to handle this ticket myself.
By this point I'd lost faith in Jerry. I wasn't sure he was working in good faith, and worse, I couldn't trust what he was saying to me. Maybe he was feeling lazy or maybe he was trying to defend the code he'd written in the past. Either way, something kept him from fixing this problem the first time he looked at it, and now I wanted a better understanding of what was going wrong.
As it turned out, the problem was subtle and very deep. The next day, I spent several hours tracking it down. In the end, the problem was in our configuration for Solr, our search tool. The configuration was wrong. Working closely with Sonia, I fixed the problem, and then we ran some tests in a test sandbox environment, to convince ourselves that my update to the code would really fix the problem. The next day we pushed out the new code and thankfully the problem was fixed.
That ended the software problem, but it didn't end the attitude issue. To have healthy team dynamics we had to be able to trust each other, and I wanted to make that clear to Jerry. We had another one-on-one video chat.
Me: I fixed this issue with the search tool and those travel deals that were not appearing on the site.
Jerry: What was the issue?
Me: There was a mistake in the Solr configuration that affected how data was copied over from our main database. A copy error and a cache issue.
Jerry: Well, okay, good job. I'm glad you figured that out.
Me: I want to ask you something. When you originally took the ticket, I noticed that you were fairly quick to mark it "done." Do you remember how long you spent on it?
Jerry: I looked at the Solr configuration, but everything looked correct to me.
Me: Right, sure, but how much time did that take you?
Jerry: About 15 minutes.
Me: The ticket was estimated to take four hours.
Jerry: Why would I waste four hours on a ticket if I could do it in 15 minutes?
Me: But you didn't really do it, did you?
Jerry: I mean, come on, I did what I could to see if there was a problem.
Me: Did you read any of Sonia's documentation? In 15 minutes?
Jerry: Maybe?
Me: Here is the thing. Sonia is the best project manager that I've ever worked with. She is very careful. She documents everything. If she says there is a problem, then there is almost certainly a problem.
Jerry: Yeah, yeah, yeah, I see where you are going with this, but no one is perfect. I'm sure she makes mistakes sometimes.
Me: She didn't make a mistake this time.
Jerry: Okay, this time I made a mistake, what do you want?
Me: I want you to take bug reports seriously, when they come from a trusted source.
Jerry: Okay, whatever, from now on I'll take all of Sonia's bug reports seriously.
Me: That means reading all of her documentation.
Jerry: Right, right, sure.
Me: I feel like you're not really listening to me.
Jerry: I am listening to you! For god's sake, what do you want? I'm not doing anything else right now. I'm sitting here listening to you.
Me: I need you to understand this. You will not ever do anything like this again.
Jerry: Yeah, yeah, I already said that, I'll check out Sonia's bug reports, yeah.
Me: Great, do that, but also, I mean about me. Don't do anything like this ever again.
Jerry: Do what? What are you talking about?
Me: Don't give me your assurance that you've examined a piece of code and you are certain there is no bug, when in fact you did not examine the code, you did not examine the bug report, you didn't even understand what the bug report actually said. Don't mark a ticket as "done" when you haven't even started on it.
Jerry: I didn't want to waste time on a non-issue.
Me: You ended up wasting Sonia's time and also my time. And you kept travel deals off the site for several days when we could have been making money off them.
Jerry (heavy sigh): Yes, okay, that was bad on my part. I get that. I apologize. Okay? I apologize.
Me: I appreciate that, but the most important thing is that, in the future, I can trust you when you say "There is no bug."
Jerry: Yes, okay, whatever.
Me: If you pull a ticket that authorizes you to do four hours of exploration, then use some of that time and do an honest exploration.
Jerry: Yes, okay, okay, okay, whatever.
Me: I’m worried you’re not listening to me.
Jerry: For god’s sake, what do you want?
Me: I don’t want to have this conversation a second time. I don’t want to have to repeat myself in a month or two. So I need to know you understand me right now.
Jerry: Yes, whatever, I will read Sonia’s bug reports, I already said that.
Me: No, no, no. That is a secondary issue. What is the main issue?
Jerry: For god’s sake… (quiet a moment, then a deep breath) You need to be able to trust me. If I say there is no bug, you need to be able to believe me when I say it. You don’t want to have to second guess me. You need to know I’m being honest.
Me: Exactly. Can you do it?
Jerry: Yes, I will be accurate and careful from now on, so you can trust what I say. If I have a concern, I will raise it with you directly and honestly.
Me: Okay, great. Thank you for talking to me about this.
And thankfully, he really did get it, and we never needed to have a conversation like that again. By confronting him directly about his resistance to feedback, and by getting him to fully commit to changing his attitude, I managed to fix this problem with a single conversation. And though that conversation might have been awkward and uncomfortable and difficult, it also kept us from having to have the same conversation a month or two later.
It is possible to talk to people directly, honestly, firmly, and respectfully, to communicate how you expect them to work with you. Please note what I didn't do: I didn't use swear words, or raise my voice, nor did I say anything personal about their character or work ethic, other than how it applied in this specific case. You might think I've cleaned up this dialogue for this newsletter, but no. I do not ever use curse words in a business context, and I recommend this, since any use of curse words carries the risk that people will feel you are being disrespectful.
Some managers are afraid of this kind of direct, honest conversation. They fall back to a style of communication that is much more passive aggressive. I've seen cases where, after an incident like this, the manager will send an email to the whole team, and without any reference to the original incident that is motivating the email, they will write "If you get a bug report, please investigate it thoroughly." Most of the time, such communication is a mistake. Every worker is different, and they will make different kinds of mistakes, and your feedback to them needs to be specific to them. Maybe you have one worker who dismisses bug reports, and another worker who comes in late to work, and another worker who leaves food on their desk overnight, and another worker who never tests their own code. Does that mean you should send four different emails, advising the whole team to take bug reports seriously, come in on time, don't leave food out overnight, and test your own work? No, the number of possible mistakes is infinite, so you'd have to send an infinite amount of email. Worse, people tend to ignore such emails – if the workers know that you're afraid to confront them, then they know they can continue in their bad habits with few consequences. Instead, you need to have one-on-one conversations with each worker, and you need to give them feedback that is specific to them.
Context matters. My conversation with Jerry was respectful because it was a private, one-on-one conversation. If I had addressed him like that in a group setting, then he'd have more reason to feel attacked, and therefore he'd have more reason to get defensive. In that case there would be less chance of him actually listening to me. All such feedback should be given privately, in one-on-one conversations. If you want someone to change their behavior, this is always the best form of conversation.
But why are you so mean?
A few months ago I posted this story online. In response I got a comment from someone who disliked the way I handled this:
You are recounting an argument that you are proud to have won, and where you are proud to have put a subordinate in his place. In your eyes, this is an example of good leadership because you did it in a way that was merely firm rather than, say, abusive.
You achieved behavioral compliance, which is definitely better than nothing, but genuinely good leadership in that situation would have involved more two-way communication, empathy and active listening to build a mutual understanding.
By the end of the article, I'm left with no understanding of what Jerry's motives were or why he behaved and communicated the way he did. You didn't seem to be interested in engaging him more deeply to find out. Instead, you seem exclusively focused on achieving your "I'm right, you're wrong" moment.
In response, keep in mind these things:
Fully understood, respectful leadership means respect for everyone, not just the person I happen to be talking to right now. Aggressively pushing Jerry to be more honest in the future was, in part, how I demonstrated my respect for the Travel Deals Team and for Sonia. They were not in the room to defend themselves, but Jerry had disrespected them, so I needed to defend the importance of their work.
Some managers adopt a passive-aggressive style where they pretend there has been no conflict, even when there has been conflict. This passive-aggressive style does tremendous damage to an organization. Where there has been some kind of conflict, you need to address it directly. The commenter is suggesting that I should simply assume that Jerry was operating in good faith, even though I had some evidence that he was not. "Innocent until proven guilty" is a necessary legal standard to protect us from the overwhelming power of the government, but among private citizens if you assume someone is innocent and operating in good faith when you have evidence that they are not, then you are simply a sucker who is going to be easily manipulated by bad faith actors. Keep in mind, I spoke to Jerry in good faith during our first conversation, it was only in our final conversation that I assumed he had been operating in bad faith.
If you value a democratic process, then you must enforce compliance to that process. Failure to enforce compliance is not democratic or empowering or generous or liberal or kind or intelligent. A failure to defend your process is simply idiocy or cowardice. If you think your process is a bad one, then you have an obligation to change it, but once you’ve got a process that you think is a good one, then you need to enforce compliance to it, or you have no process, merely anarchy, and your company will not survive.
There is a time and a place for healthy debate regarding all of our decisions. Jerry was free to meet with people and make his opinions known. Of the people who report to me, no one has ever been punished for making a strong case for their ideas, even if their ideas disagree with what the majority of the team favors. But all such conversations have to be done in compliance with the overall process, and that process means that once a decision is made, we all stick with it. In other words, if you want to run a business in a democratic fashion, you need a strong dose of "democratic centralism." By contrast, anarchism is the enemy of group decisions.
Jerry's motivation was implied when he said “I don’t like the idea of showing deals for Bermuda when someone searches for Caribbean.” This suggests that his ego was so great that he was willing to defy the clear intent of the Travel Deals Team, while also ignoring the feedback he was getting from Sonia. He was using his control of the code to impose his will on the situation, in defiance of all of the other stakeholders at the company. This cannot be tolerated or ignored, it has to be confronted. And, again, this is not a court of law, a manager in this situation should not wait till they have overwhelming evidence, they should demand a confrontation as soon as their instincts tell them that something is a bit off or suspicious. I gave Jerry multiple chances to reassure me he respected the decisions being made by others, but he did not give me any such assurance till, at the very end, I forced it out of him.
About “genuinely good leadership in that situation would have involved more two-way communication” – time is finite and so genuinely good leadership invests its time carefully. Don’t waste time offering a therapy session to an employee who is operating in bad faith. The time you waste on the effort is time that you could invest in your best employee. Put differently, if I was going to invest an hour developing a better understanding of someone who I worked with, should I invest that hour in Sonia or Jerry? I would say Sonia, since I know she is worth it. Don’t invest in the people who are giving you trouble, as that amounts to a reward for giving you trouble. If they give you too much trouble, just fire them.
My advice: if you are in a leadership position, don't be weak, don't be a coward, and don't shy away from conflict. If something seems suspicious, confront it directly. Give people a chance to explain themselves, but be absolutely sure that when they walk away from the encounter, they have agreed to abide by the policies and processes that you've established at your company.
UPDATE 2025-02-23
This was just discussed on Hacker News, where many people were highly critical of the story.
deanmoriarty wrote:
In my opinion, there are ways to share feedback that allow another person to save face, letting them process it on their own terms instead of pounding them like this in a single session until they are “defeated”.
Such feedback can then be politely repeated, if the issue reoccurs later on, and formally documented as part of a performance warning, simply letting the other person know, once again without insisting, that this is a serious behavioral issue that will have repercussions if not actioned, and that you are there to provide any context should they want to talk about it more.
That is, in my opinion, a way for a leader to show that every team member is treated as an adult and responsible for their own actions and outcome.
About "politely repeated." Yes, you can gently, politely, diplomatically nudge them. Week after week, month after month, year after year, you can gently nudge them in the right direction. Of course, once you've made clear that you are afraid to confront them, then they have no actual reason to change their behavior. They can ignore your nudging. Your nudging is meaningless. If they think you are a coward, then they can simply call your bluff. But what's worse, if you are afraid to call out the disrespect they show to the other teams, or to someone like Sonia, then you become complicit. When Jerry is disrespectful to Sonia, if the rest of us don't respond, then we are also being disrespectful to Sonia. When Jerry is disrespectful to the product team, if the rest of us don't respond, then we are also being disrespectful to the product team. If you allow disrespect to fester, then you are a terrible leader. This also applies to co-workers: if you allow disrespect to fester, you are a bad co-worker.
Many of the people on Hacker News were appalled by my attempt to resolve the situation in a single session. They would apparently prefer to drag out the process over weeks and weeks, or months and months. They are not thinking clearly about the damage this does to team dynamics. When you are in a leadership position, always consider the benefits of pushing an issue so hard that it resolves after one conversation. either the other person will realize that they need to align with all of the other teams, or they will quit, but either way, a single conversation ends the conflict.
Several people read this story and seemed to think that the time spent was somehow an issue in this this story, for instance, Hasu wrote:
The author 1) created the ticket and its estimation 2) assigned it to Jerry without further comment 3) had another ticket created and assigned to Jerry without talking to Jerry about it 4) got mad when Jerry closed what looked like a duplicate ticket 5) told Jerry that he has no agency in his work and he must do only what the product team says 6) took the ticket himself 7) yelled at Jerry about not sticking to an estimate Jerry had nothing to do with 8) finally extracted an agreement with Jerry that Jerry will do no work without explicit authorization from the author. This is just a chain of management failures. I hope Jerry got a new job with a better boss.
Absolutely baffling how anyone thought the time issue was some kind of problem. And yet several people on Hacker News raised this issue. To be clear, this was not a case where I said, "This ticket should take 4 hours" and then Jerry needed 20 hours, therefore he was in trouble. Rather, he only used 15 minutes of the 4 hours because he didn't take the issue seriously — and his attitude was the point of conflict, not the amount of time spent. The way we worked with bugs was that we would first have an "exploration" ticket where we would try to figure out why the bug happened, then we would write a second ticket to do the actual work. So what I assumed would happen was that Jerry would use 4 hours to do an investigation, and maybe decide that 20 hours were then needed to fix the problem, then he would write himself a second ticket and he would grant himself 20 hours. That is how we handled most bugs.
I agree the sentiment of "I hope Jerry got a new job" if for some reason Jerry felt that he could not align himself with the rest of the team. If he was completely unable to show any respect for the tech team, or Sonia, or the product team, then why would he want to stay? Always remember the adage, "People don't quit jobs, they quit managers." You should aspire to be the kind of manager that makes people want to quit, if those people are incapable of showing respect for any other team or person. Firing someone is a hassle, you have to document everything in exhausting detail and even then you might be forced to pay them some kind of severance. Life is easier if they simply quit. Always aim to be the manager that makes a person want to quit, if the person is disrespectful to everyone at the company.
About "He told Jerry that he has no agency in his work."
Agency is something that comes from inside of you. Your manager cannot give you agency, any more than your parents could give you maturity. Both agency and maturity are things that you develop on your own, and hopefully developing these two attributes is important to you. But how does a high-agency software developer act? They go to the product team and forcefully make their opinions known. They go to Sonia and forcefully explain to her why she is making a mistake. They demand a meeting of the tech team and forcefully argue why we must follow their lead on a project. If Jerry had high levels of agency, he would have done these things. It is not high-agency to skulk around in the shadows, like a coward, making secret changes to the code, but too afraid to tell anyone why those changes are a good idea. And it is the opposite of high-agency to avoid these conversations because you are afraid people won't like your ideas. Whatever you have to say, say it forthrightly. Whatever your opinion is, argue it in the open. If everyone hates your idea, accept that. If everyone loves your idea, then you have the satisfaction of seeing the team unite behind you.
By the way, many of my critics on Hacker News had usernames like "throwaway8743" and no personal information on their profile. They do not write using their legal, public names. They use anonymous accounts. These are frightened people, who live in the shadows. I suspect their reaction to my essay was shaped by their lifetime habit of avoiding strong confrontations when using their full legal, public identity. They need to find their courage. They need to learn how to say what they believe in face-to-face encounters.
Personally, I've used my public, legal name since I first got the Web 30 years ago. I've never felt any need to hide my opinion behind an anonymous account. I would urge people to consider whether they really need to use anonymous account. You have a fundamental human right to freedom of speech, so why not use that right and state your opinions under your real name?
cleverwebble wrote:
"No, I'll do it myself" and "I feel like you aren't listening to me" comes straight out of couple's therapy handbooks on what not to do. You can be direct and respectful, but this was not respectful, this was just aggressive.
This is the most common mistake that I saw made by those who wrote on Hacker News. To be clear, I am not Jerry's spouse, nor his therapist, nor his priest, nor his mom or dad. I shouldn't need to guess at his intent or motivation, he should simply tell me. We have a commercial relationship, he is being paid to perform some work in exchange for cash, that is all. He is expected to be professional, manage his own emotions, or quit.
With your spouse or therapist or priest or mom or dad there is the assumption that ending the relationship might be devastating, and therefore a maximum effort to sustain the relationship is common. But that cannot be how we think of commercial relationships. One the one hand, you should never rely on firing people as your principle method of management, on the other hand, the idea of firing someone can never be absent from your arsenal of options.
As I've said elsewhere, you'll often want to do one-on-one's with the people you work with, especially the best people, to be sure you understand their motivations and needs. But when someone has flagrantly broken the rules of the organization, the urgent, short-term question is whether they are able and willing to get back in line. Everything else is secondary to that.
Really, this much would be true even among friends, outside of any commercial setting. If a friend lies to you, then you first need some assurance that they will never lie to you again. Everything else in the friendship is secondary to that. If they can't give you some absolute assurance that it will never happen again, then it's time to end the friendship.
Firm boundaries are good for all forms of relationships, both commercial ones and also personal ones. I've had friendships that started with bruising arguments — that is especially true with my friends who disagree with me on political topics. At least we each understood where the other was coming from.
https://twitter.com/GreyKnight1234/status/1644828317768470528
Over on Twitter, GreyKnight1234 posted this story in response to this essay, and so now (with their permission) I re-post their words here:
Excellent article, and very helpful to me. I own a small business remodeling and making repairs on houses. I am a boss who is on the ground with my men, leading by example. Sometimes, a man needs to be corrected for the sake of the crew, and tempers sometimes flare.
I have lost my cool on a few occasions, but have gotten better at it over time. I just had to fire a guy this week, who blatantly defied my instructions, and then me, in front of the crew and my customer. It was done publicly, so I had to fire him publicly. Had he not been so bullheaded in his disregard for my repeated instructions, and then taken it to childish rants in front of everyone, I wouldn't have fired him. Also, had I not fired him, I feel that I would have lost the respect of the other guys, and would only have had to deal with the issue again at another time, as this was the second time he had defied simple instructions. The first time, it was only me and him, and he finally did what I was instructing him to do, so I let it go.
Many times, it is tempting to take the passive-aggressive approach you referred to, because when tempers flare, and you are working with energetic, prideful guys out in the heat, sometimes it can lead to blows being exchanged if you don't approach the situation in the right way. But your advice is correct and very helpful.
I always try to keep personal comments out of it, but have sometimes got caught up in the moment when a guy is insolent or arrogant, and raised my voice, or used swear words. Thankfully, on this last occasion, I only raised my voice, and then only because the guy wouldn't hush and listen to what I was saying.
If there is ever a next time, I won't even raise my voice, but will wait until the other person stops venting, and then calmly tell them whatever I need to say.
Basically, he was refusing to perform the task we were doing with the proper tool. His reason was that it was faster to use another tool. However, the other tool could potentially damage what we were working on. It was hot and humid, and he was wanting to take a shortcut in order to get done, and out of the sun, faster. I told him three or four times, not to use the faster tool. He blatantly disregarded my instructions, so I told him to get down off the roof. Before he got down, he began saying that he wasn't there to take orders from me, and that he left his Dad's house years ago.
So, I told him to go home. He continued yelling nonsense, so I told him to immediately get off of my jobsite, and to find himself another job. He left, and the next day, (yesterday), I met him and gave him his final paycheck from me.