Only then can you decide how to try to communicate the rest.
In conversations people often say things that I have unusual associations about. My mind will start spiraling about the unusual association and I will begin an internal narrative about the new, unrelated topic without verbalizing any of it. I will continue with the original conversation with the convo partner. Then, out of the blue, I will verbalize something about the second topic and the convo partner has no idea what I'm talking about. The topics can be as unrelated as databases and the mating habits of penguins. I have forgotten that the convo partner did not take the journey into the second narrative with me.
Countdown to database of mating habits of penguins comment.
19 minutes.
Yes, that's often it. But it's also not exclusive to devs. As the receiver I've learned to say / ask, "I don't follow. Can you clarify?"
Ah yes, the "shouting up from the rabbit-hole problem".
> people "on the spectrum" often having low "theory of mind" capabilities.
I somewhat take issue with this, as people on the spectrum are more likely to over-communicate, all other things being equal. Techies are rather caught in a web of social status pressures. Draw a 2x2 grid. On the top axis is the correctness versus incorrectness of your assumption. On the side axis is whether you assume ignorance or knowledge. The social calculus always favors assuming a prior understanding:
correct incorrect
+--------------+--------------+
| | |
| | lose |
ignorance | neutral | status |
| | points |
| | |
+--------------+--------------+
| | |
| | |
understanding | points | points |
| gained | gained |
| | |
| | |
+--------------+--------------+> I somewhat take issue with this, as people on the spectrum are more likely to over-communicate,
Low theory of mind is definitely not incompatible with over-communication.
Or maybe the explanation was bad to begin with. Over communicating won't turn a bad explanation into a good one. Understanding something doesn't mean you know how to explain it to someone else.
Too true. Explaining things is hard. My gripe is mainly people's tendency to pretend they understand in perpetuity, instead of expressing a modicum of curiosity about it. "What does 'TPS' stand for actually?" As mentioned, explaining things is hard, and I think I'm not alone in needing help identifying gaps in my explanations.
That said, I also understand that there are huge social barriers to admitting a lack of understanding in the tech industry, especially for juniors.
Then when you have to go back and tell them the basic assumptions that they are wrong about, and that they have to redo tons of work, you lose a giant sum of hypothetical points
I don't think I am on the spectrum ( I mean, I guess technically everyone is, which is why its a spectrum ), but I do know that I was ..what is a good word.. chastised.. no.. maybe gently admonished for putting up very long detailed summaries with some discussion of potential risks involved in an assumed approach, potential tradeoffs and pitfalls.
It really depends on your boss, but I come from compliance world, where you do want to CYA pretty extensively.
Anyway, back to the story. I was effectively asked to keep writing executive summaries. I hate to say it, but things seldom are that simple. I can simplify it for you, but you will lose a lot of context with that. And this how we get to the situation, where only one guy in the entire company knows how X actually works with all the constraints that it brings.
Thus, the only way forward is to summerize, and then point out that there are details/nuances (but not getting into it). Only if the there's interest in those nuances, then it's relevant going into them.
Same as with physics. First you learn Newton. Then you eventually realize Einstein adds nuance to the formula. Start with Einstein and it becomes much more complex, hard to grasp and less likely you'll understand anything. And, equally important. If the receiver doesn't want to know Einstein, then no point in talking about him.
One big problem I see nowadays is that more people do not care about the details, meaning it's less useful as a communicator to communicate then - but also that people do not fully grasp as much the nuances and believe (and search for) simple answers - and come to dangerous conclusions about them. From my POV this is the danger with the attention economy, leading to Trumpism and similar phenomena.
I think people today care about the details just as much as people used to. It's just that there are so many more details to care about today.
The exhaustive CYA-flagging of risks (and similar behaviors) denotes more a problem of how incentive are aligned in that workplace rather than any lack of skill with words.
(but I lack facts, so maybe I'm equally wrong)
It seems that this chart assumes:
1. Everyone is a baby that gets their feelings hurt when you imply they might not know something they do in fact know (top right).
2. Everyone loves being alpha nerd and making people feel dumb for not knowing things they know (bottom right)
While both of those are real phenomena, they are pretty dysfunctional. Many people (most people?) enjoy genuine cooperation within a context of mutual trust, learning things from others, and teaching others who want to learn. In that context, checking for knowledge is not a slight, and assuming things "are obvious" and failing to explain them is not a flex.
> Bottom right should be "points lost" imo.
There's a certain breed of hot-shot dev who truly believes they're gaining status by making cryptic, in-the-know references, and there's another breed who falls for it. When it comes to social status games, if enough people believe it, it becomes true.
Yes, this is what I described in point 2. Again, I'm not saying it isn't a real thing. At the same time, I wouldn't call it the norm either.
I worked with a senior developer when I was a junior who would answer any question by starting from first principles.
I understand sometimes a question can betray a misunderstanding of foundational principles but this was decidedly not the case, at least in most of the incidents.
I eventually learned to just not ask him questions unless I was absolutely desperate, because it would take him 5-10 minutes to work up to the critical piece of information I was actually missing. I think he just liked to hear himself orate.
Empathy tends to drive my own novelistic explanations, not conceit. It might help to mention something if you haven’t yet. Everyone is different though.
I think his strategy had exactly the intended effect. If you had a real problem that required deep expertise, you knew to come to him.
If you didn't, you figured it out yourself, and thus grew your skills rather than having him feed you the answer.
I remember once seeing the inbox of someone working as a sales-ledger clerk. It was full of messages with the subject "accounts query", or a small variation of that. The ones with subjects like "query for account ACME-37" were from technical staff.
Similarly if I ask "when do you need those figures?" and I get the answer "next Wednesday", it isn't when I'm talking to programmers that I feel the need to follow up with "Is that when you want me to give them to you, or when you're going to be making the presentation that includes them?".
(Similarly, someone elsethread is talking about how their non-developer colleagues neglected to tell them about an upcoming release. One possible explanation is that their colleagues were bad at "theory of mind", and believed that as they knew about the release, so did everybody else. But I think it's more likely that they were too disorganised to make sure that it was somebody's job to tell everyone who needed to know.)
The "theory of mind" explanation is that those developers don't understand what context other people are probably missing.
I agree that there are of course other possible reasons.
if you get an email from me, and when you want to follow up you're thinking "what was that phone number I should call?", don't worry, I have already put it in the subject line along with the person's name and the deadline
Taking "I need X next Wednesday" at face value to mean "as long as I have X by 5pm Wednesday I'm happy" is completely reasonable.
Well the answer is that no one told me that they were even thinking about releasing. The last I heard we were waiting on the vendor.
Apparently I should have known it was coming and had prepared production servers for it so the roughly week and a half given magically became enough.
What's worse is that technically speaking it can be easily done in that time, it's a people problem. They could technically put pressure where it needs to be, but will they? All signs point to no.
---
So while I understand putting responsibility for communication onto the developer, there's a responsibility for the others as well and at some point it's just flat not the developers problem.
Info-dump: "I know that already! What do you think I am, an idiot?"
Assume context: "In English, please! I didn't get my MBA to be made to look like an idiot."
Excuse me for failing to read your mind and know exactly what you know and what you don't before I begin.
Those of us on the spectrum are set up to fail by NT-centric culture. You think we're mind-blind? It goes both ways, look up "double empathy problem". It's just that most people are NT, so by default we have to accommodate your neural quirks but the vice is not versa.
https://www.myersbriggs.org/my-mbti-personality-type/underst...
I still ask if I'm not sure of someone's level of expertise - I think any reasonable person would react positively.
One simple trick, I think, is to avoid extensive use of pronouns. A sentence like "Because of that, it doesn't find it there" might be clear enough when you know the context, but is meaningless if you don't. Filling in "that", "it", "it", and "there" would help tremendously. It will make sentences awkward if you avoid them completely, of course, but I think sentences that contain nothing but pronouns are a red flag.
In overstated form, my version of the idea is: “never use ‘it’”—because a student just learning mathematical language will have many different ‘it’s in mind, or, even worse, no clear idea of what ‘it’ is. (For example, I'll often see an application of the derivative summarized as “since it is negative, it is decreasing”, which is correct only if you change ‘it’s midstream—but students often don’t realize that they are, or should be, doing so.)
I was taught this is a project management for engineers course I took when I was younger: never use language that is open to interpretation. In addition to your examples, I also see this happening in meetings when engineers say a non-sprint task will be "quick." How quick? A few minutes? A few weeks? A few quarters? As soon as we started clarifying these ambiguities we eliminated a lot of misunderstandings.
I’m not sure this is a competing take vs the article. More like complementary.
The article mainly says “add more details.” Eg. Don’t write “the system is broken” be specific about what’s broken, what you did, and if you need help.
Basically, don’t assume context.
The author takes himself to be some kind of writer, so he said it in too many words.
His screenshots are the worst-case scenario of lack of context – just a couple of dozen lines of code, no information about where, in what file, in which repo, he's given.
* We both work remotely and live in different states, nowhere near each other.
By the way, I double-checked my assertion that he doesn't use words, in case there were some documents I forgot or had missed. Nope. At best, his diagrams or screenshots will have captions. Those captions remind me of the sort of useless comments we've all become conditioned to ignore.
x = y + z; // set x to the sum of y and zAs an alternate theory, maybe they've spent a lot of time staring at the code in question and internalised the context to a point where they no longer think about it. Happens to everyone.
I have found that communicating to business folks and leaders is a skill like anything else and can be taught. Your assumption that being autistic somehow completely disqualifies one to speak competently to others is ableist and harmful.
While it is true that people who are autistic struggle to communicate with non-autistic people I would argue it is also difficult for non-autistic people to communicate with autistic people.
It is also ableist to assume that just because someone lacks communication skills that they are “on the spectrum”.
What is true is that communication as a skill is not often taught to developers.
As anyone can see, I did not write that.
I think what makes this stuff difficult is that the same word can trigger wildly different responses.
As an example, I've been working from Ireland for US multinationals for a while now. In Ireland, the word stupid means bad or crap but doesn't have a massive emotional valence.
In the US based tech side however, it was literally the worst thing one could say, I suspect because people were identifying with their ideas.
Same word, multiple different meanings lead to communication problems.
"Theory of mind" means, among other things, having a good mental model of what other people know and don't know.
Obviously, without understanding what piece of information the other person is missing, it's very hard to explain it to them.
The OP overstated things, but it isn't completely wrong to conclude the basic idea from your above statement.
Also, the OP did not say you wrote it, so maybe being less pedantic would help the situation.
From the article:
> In both cases, the example on the left is what I call “low-resolution writing”. There is very little context, too much reliance on pronouns and unclear references. The writing is not emphatic —the reader has to spend extra energy to work out what is being said
Your comment here is the main point of the article, which is a point made multiple times within it.
Because if you don't understand that, then your understanding of the problem space is not going to be sufficient for any useful purpose.
And if you're a manager, then the company fucked up by putting something technically complex within your purview.
Honestly, if someone does this to me, I often think they are the incompetent one/idiot. Teaching and ensuring understandability is a core skill (which can absolutely be learned) necessary for a functioning team.
At least the two folks I know with autism on my team have worked incredibly hard at ensuring they practice this skill, and they are some of the best developers I know, partially for that.
FWIW this idea has been losing some ground to the double empathy problem. People who aren't on the spectrum have corresponding poor theory of mind and empathy towards those who are. The problem is at least partially symmetric.
I've noticed a form of cultural cringe in developer communities where we assume that developers tend to be on the spectrum, have uniquely poor communication and social skills and cause social problems more than other working professionals. It's contrary to what I have seen in real life which is that dev teams socialize effectively and form cohesive and healthy cultures as much as any other field. That developers are usually the ones promoting better written norms and more thoughtful and thorough written communication.
The "assumed context" problem is common everywhere. Poor communication, anti-social and toxic behavior are common everywhere in most organizations. Developers are self-conscious of our poor social skills to an extent that is not matched elsewhere.
To create good code, developpers must have good "theory of mind" capabilities, because they must systematically consider what could go wrong, not only when the computer will execute their code, but also when other developpers will try to understand it. It helps them design more intuitive and safer APIs, choose better methods and variables names, etc.
The biggest problem I see in developer communication is what I call the "assumed context" problem.
As in, you talk/write to people as if they know all about your code, except the detail being discussed. In reality, they usually have much less detailed understanding, and you're making no sense to them.
I'm pretty sure this is related to people "on the spectrum" often having low "theory of mind" capabilities. People without that will just assume people know what they know, and proceed to fail at communicating with those who don't.
It also makes it easy to think of those who don't know what is obvious to you as idiots.
The workaround, if you want to communicate with the idiots surrounding you, is to start conversations by fact finding. The question "so how much do you know about the flurbigator system?" can help.