(Like this article? Read more Wednesday Wisdom! No time to read? No worries! This article is also available as a podcast).
This is the fifth in a series of articles I am calling "Machiavelli for software engineers". In these I cover topics that are related to power and influence in organizations. The full introduction to the series can be found here.
Some years ago, I gave a talk to my non-engineering colleagues on how to communicate with engineers. This was prompted by the frequent misunderstandings that were on full display on our office’s “misc” mailing list, where matters of great importance were discussed, such as whether it was compulsory to wear shoes in the office or whether, all things considered, engineers could be asked to bring their dirty dishes to the nearest microkitchen.
One of the contributors to that last thread argued that, given the difference in hourly wages, it was cheaper for our employer to hire a few catering staffers than to require highly paid software engineers to carry their dirty dishes around, wasting valuable time that they could spend coding. To be honest I was a bit at a loss how to respond to that line of thinking, but one of my colleagues had the right answer: The time you spend carrying your dishes back to the microkitchen should be chalked down as an exercise in being human.
Some of these threads got completely out of hand, with many engineers wondering why everyone else was stupid and many non-engineers wondering why engineers were such assholes.
In my talk, I framed the communication problem between engineers and non-engineers as one of a mismatch between output filters and input filters. In the model I proposed (actually: “borrowed” from somewhere else), engineers have an input filter but no output filter. This means that they are liable to say whatever comes up in their mind, regardless of whether it is inappropriate, offensive, or culturally insensitive. For instance in the “should you wear shoes in the office” thread, one of the engineers contributed that he thought it was okay for his female colleagues to take off their shoes during lunch because (and here follows a literal quote): “Hmmmm…. Feet!”
With the input filter in place, if an engineer talks to another engineer, any inappropriate, unnecessary, or irrelevant content gets filtered out by the filter on the receiving end.
Non-engineers by and large have an output filter, but no input filter. When a non-engineer talks to another non-engineer, any inappropriate content gets filtered out on the sending end, so what comes out is a sanitized output stream. If two non-engineers talk to each other, the lack of an input filter is not noticeable because the communication stream is already cleaned up by the output filter. No harm done.
Things go horribly wrong when an engineer talks to a non-engineer: The absence of an output filter on the sending end and the lack of of an input filter on the receiving end can cause significant problems, because the unsanitized output stream is processed unmodified by the receiver, possibly leading to the receiver being upset by inappropriate content: “Why are they saying that?” Answer: Because it is true, or could be true, or might be funny, or just because.
On the reverse channel, when a non-engineer talks to an engineer, there is double filtering going on. The output filtering leads to a sanitized input stream that is often badly understood by the receiver, who is expecting an unfiltered and unsanitized input stream: “What are they saying? What is this politically correct b.s?”
This is of course an overly simplified model with a slightly humorous twist, but it has definitely helped me explain why engineers can seem so rude and why it is so hard to get non-engineers to say what they mean.
Another mistake that non-engineers often make is that they wrap subjective opinions into seemingly objective explanations.
In the classic “should you wear shoes in the office” thread I referred to above, the first thing that the non-engineers said is that wearing shoes is a legal requirement. That is the dumbest possible answer, unless you are a lawyer and you have the law ready. Because what is the first response from the engineer: “Show me the law!” Obviously, there is no law that says that you should wear shoes in the office, that’s just not how laws are written. They might say that it is the responsibility of the employer to keep the working environment safe and hygienic, but that leads to additional discussions on what that means and how that requirement should be interpreted. If you have no authoritative case law ready to go, you have a debate.
One of the non-engineers made the point that bare feet were dirty and hence unhygienic. An engineer countered by stating that they showered in the morning and that their clean feet then went into clean socks and then into shoes. When these feet came out of these socks and shoes in the office, they were still in that clean post-shower state. Much cleaner in fact than the shoes of their colleagues, who had been walking around outside and stepping in dog poop. It’s not feet that are unhygienic, it’s shoes!
The non-engineers in this thread did not give up and then said that it was an insurance requirement. Can you guess the response? “Show me the insurance policy”, which was of course equally vague.
To be honest, I cannot quite remember if the insurance policy was produced or not, but I am pretty certain that if it was, it would not be very helpful. It might say things about wearing reinforced boots on construction sites, but I cannot imagine that wearing shoes in pristine big tech offices was much on the insurance people’s minds, seeing as that probably does not produce many claims.
Non-engineers typically forget that a lot of engineers, myself included, are in a discussion to win it, regardless of their own thoughts and opinions. Being contrarian is probably one of my worst character traits, because I will just disagree with everyone and everything on principle and then try to make the argument, “against better knowing” (as we say in Dutch).
When Mrs. Wednesday Wisdom accuses me of being contrarian, I obviously respond with: “No, I am not!” 🤣…
Hilarious though it was, that whole “bare feet in the office” discussion went nowhere because people failed to make the obvious, true, and therefore irrefutable, argument: “I think your bare feet are gross and I don’t want to see them in the office”. You might disagree with this and think that it’s dumb, but it is a great argument that is based in truth and not some post-hoc rationalization or vague appeal to external authority. Engineers might still think you are stupid, but they cannot beat this argument. The non-engineers in the thread couldn’t get themselves to admit this simple truth because: Output filter!
This brings me to a deeper argument and something that many engineers do wrong when communicating and that is making sure that all communication is strategic. Just saying whatever comes up in your head, even though it might be funny, is often counterproductive.
I should know, because I spent decades saying more or less what came up in my head and trying to be funny and this has hurt my career to no end.
This wisdom goes back to an earlier article on politics where I made the point that nobody is an island and that to get anything done you need to engage in company politics, because that is the process through which compromises are made and scarce resources are allocated. One reader commented on that article and asked: “What constitutes a political action at a software company? What political actions are available to me? … Your anecdotes are acutely interesting, but broadly I’m unsure how to apply their lessons…”
Fair question. Great question! Complicated question too, but here is the start of an answer: In order to get anything done, you need to broadcast a consistent message that supports your goal, that is targeted to the audience, and that can be easily understood by all. This means that whenever you communicate, make sure that you know what it is that you are trying to achieve and say and write exactly what needs to be said and written to make that happen. Definitely not more, but also definitely not less.
Modern companies are messy bags of competing interests, many of which are part of a zero-sum game. For instance, once the CFO determines the room for headcount growth, which teams get some of that and which teams do not is determined through negotiations. The outcome of these negotiations is determined to a large extent by the perceptions people have of the need and importance of particular work. If you are sitting in a corner doing good and important work but don’t tell anyone about it, you shouldn’t be surprised that nobody knows and, consequently, that that work might not be adequately funded.
Another example: Most companies have a promotion quota that determines how many people can get promoted in a cycle so if you want to get promoted, you need to position yourself ahead of the competition.
I know most companies deny having a quota, but this was on spectacular display when one big tech firm famously changed its promotion process to make L4 → L5 promotions determined by (in essence) the managers and suddenly too many people got promoted. Once the numbers came in, extremely upper management canceled all the promotion decisions and told everyone to redo it all and here were some targets to keep in mind…
If you want to be promoted you need to figure out who the competition is and seed the right perceptions about you and your work in all the right places.
A final example: If there is an exciting new team starting but it has not been determined yet in which office that team is going to be, a process of negotiation will determine the outcome based on perceptions of things like where the company can hire, whether there is a TL ready to start working on this project, and if there is “synergy” with work that is already being done there. With careful, timely, and above all, strategic, communication you can influence these perceptions and help shape an outcome that is favourable to you.
There are those who will say that this sort of communication is manipulation and they are not entirely wrong. But what is the alternative? Hoping that the parties who make the decisions do a fair and equitable job and then wait for the “right” outcomes to happen? That does not seem very productive and not a great way to ensure that your favourite outcome wins!
Spanish speakers have figured this out, seeing as the Spanish verb “esperar” means both “to hope” and “to wait”, thereby beautifully expressing the intrinsic link between these two concepts.
When communicating in a professional context, you want every communication to count towards something. This in turn means that you need to have crystal clarity about your goals. Your goal can be as simple as staying employed or it can be more intricate as showcased in the examples above. But whatever your goals are, strategic communication is of the utmost importance to bring them about. If you are liable to say whatever comes up in your head, even though it might be funny, you are communicating chaotically and you might contradict yourself regularly, which means that nobody knows what you are about and you will be ignored whenever it matters.
Here is an example of how to do that: In the second century BCE, the Roman republic was vying for dominance of the Mediterranean with Carthage. A few wars had been fought in which Rome mostly prevailed, reducing Carthage to a small but still wealthy territory in what is now northeastern Tunisia. The Roman senator Cato the Elder was of the opinion that Carthage should be definitively beaten, to which end he steadfastly and at every opportunity mentioned “Ceterum censeo Carthaginem esse delendam”, which means: "Furthermore, I think that Carthage must be destroyed". In fact, he ended all of his senate speeches with this line, even when the speech was about something altogether. Finally, in 146 BCE, Carthage was razed by the Romans and its entire remaining population was sold into slavery. That’s the strength of strategic communication for you!
The worst thing you can do is communicate carelessly, because by doing so you are giving off mixed signals. If you communicate without a plan, then it should be no surprise that your non-existent plan does not come to fruition.












