7 ms·
Here is my competing take: The biggest problem I see in developer communication is what I call the "assumed context" problem. As in, you talk/write to people
by BurningFrog 4y ago
Here is my competing take:
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.
- DannyBee 4y agoI generally agree with this - the first part of any effective communication is to see where you and the other person/people are starting from. Only then can you decide how to try to communicate the rest.
- peteradio 4y agoAlternatively, why is someone who doesn't know the product directing its design without asking appropriate questions on their end?
- deleted 4y ago[deleted]
- taude 4y agoI think you're "assumed context" problem actually has another term called "Curse of Knowledge" [1] (which I believe it's much more known as). There's a ton of strategies that have been written about it. Just adding this term here for people who want to search for strategies on how to work around this. It comes into play in all forms of communication, written, verbal, Slack, etc... [1] https://en.wikipedia.org/wiki/Curse_of_knowledge https://en.wikipedia.org/wiki/Curse_of_knowledge
- ladyattis 4y agoThis is something I wrestle with at work all the time. I try to break things down to make them comprehensible but I wind up forgetting to frame the discussion to give the context needed to get input even from fellow developers.
- thundergolfer 4y agoCurse of knowledge is a different thing. The "assumed context" problem isn't a teacher-pupil or expert-novice dynamic. It's just someone not providing enough context to an audience that would otherwise be able to understand and help them.
- Consultant32452 4y agoI can speak to what it's like with autism brain. 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.
- MonkeyClub 4y ago> Countdown to database of mating habits of penguins comment. 19 minutes.
- cjblomqvist 4y agoThat's very clearly stated - I recognize it so much from my son (who has autism)! Thanks for putting it out there!
- b3morales 4y agoIs this specifically an autistic trait and not something allistic minds do? Asking, uh, for a friend.
- chiefalchemist 4y ago> The biggest problem I see in developer communication is what I call the "assumed context" problem. 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?"
- bragh 4y agoI generally agree with your post, but that question is really bad, as it can be seen as mansplaining. The fact finding is fine, but requires a gentler approach.
- _greim_ 4y ago> The biggest problem I see in developer communication is what I call the "assumed context" problem. 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 | | | | | | | +--------------+--------------+
- johnchristopher 4y ago> > 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, Low theory of mind is definitely not incompatible with over-communication.
- Jarwain 4y agoIf anything over-communication sounds like a coping mechanism!
- _greim_ 4y agoIt's definitely a coping mechanism. When you've been burned repeatedly by people nodding vigorously in understanding, then turning around and revealing a complete lack of comprehension, forcing you to either intervene or allow the error to propagate, it's tempting to fall into a habit of pre-emptively explaining everything.
- roflyear 4y agoAlternatively, people who have to explain everything problem from the creation of the universe are even worse. They waste everyone's time and come across like they think you're an idiot. There is a middle ground, but I much prefer if you are direct and get to the point and allow me to ask questions over the alternative where you spend a lifetime bc you're not sure what I know already.
- mjw1007 4y agoThe idea that programmers have a poor theory of mind doesn't stand up at all in my experience. 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?".
- blowski 4y agoFor any theory about a common pattern of behaviour, there will be many exceptions that don’t fit the theory. Without hard data, both sides are giving a subjective opinion based on their experience, and both sides are probably right in part.
- slillibri 4y agoI suppose, but as someone in infrastructure I have had developers ask very, very specific questions without ever actually providing the context or what they were actually trying to solve. Seems to me to be a variation on the same problem. Just because a question is specific doesn't mean it's the right question.
- mjw1007 4y agoMy view is that, whatever is causing developers to often be bad at filling in context, it isn't a deficiency in their theory of mind. (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.)
- BurningFrog 4y ago
- P5fRxh5kUvp2th 4y agoI just got out of a conversation where surprise was expressed that I didn't know, and prepare, for an upcoming release that was obviously coming. 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.
- bitwize 4y agoI have a tendency to info-dump to establish shared context, and people find that insulting as well. So it can turn into a dilemma of: 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.
- aeze 4y agoI think there are ways to learn how much context the other party needs - like asking them in the beginning of the conversation.
- kaashif 4y agoIf you ask people if they know something and they already do, they can sometimes be insulted. I'm never insulted when people do that, I think it's considerate, but I have seen people get all "of course I know that, what do you think I am, an idiot" on me. I still ask if I'm not sure of someone's level of expertise - I think any reasonable person would react positively.
- b3morales 4y agoYup, absolutely; this is yet another angle on empathetic communication. When in the listener's seat, it's important to be mindful of the fact that the presenter is trying their best at the difficult task of conveying this information to you.
- Hermitian909 4y agoI've found it super helpful to frame conversations establishing shared context with "I have no idea what you do or don't know about X" It helps re-center the conversation so that I'm the one who's ignorant, and the other person potentially has an opportunity to show off.
- frodetb 4y agoI think this is a big one as well, and would go one step further and say that anyone no matter their place on the spectrum may fail at communication in this way. I bet most junior developers know what I mean, if they've sat in meetings with senior guys talking about something esoteric. 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.
- JadeNB 4y agoAs a math teacher, I try to instill a similar idea in my students, and am glad to hear that the idea is useful in a broader range of situations! 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.)
- robbyking 4y ago> One simple trick, I think, is to avoid extensive use of pronouns. 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.
- nuclearnice1 4y agoI like your opening question. A casual way to establish some context and rapport. 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.
- cratermoon 4y agoI work with a developer* who draws labelled boxes and arrows for diagrams and posts screenshots of code in response to questions I put to him. I can't say I've been able to find more than a handful of places where he's put words together into sentences and paragraphs. Getting useful information out of him is like pulling teeth. Even when he could link to code on the git server, e.g., he doesn't. 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.
- nuancebydefault 4y agoIvwould feel a bit offended if somebody would send me screenshots withoutva word of context. Often times the explanation of the context is a big part of a solution to a problem, or even shows the problem to be non existing.
- cratermoon 4y agoI've only been working with the person about 6 weeks. I didn't think too much about it at first, though it did seem odd and unhelpful. It's only in the past couple of weeks that I've started to find it irritating, and yes, offensive. I will probably bring it up to the lead at some point. 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 z
- roenxi 4y ago> I'm pretty sure this is related to people "on the spectrum" often having low "theory of mind" capabilities. As 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.
- kitanata 4y agoI am a Staff Engineer leading a large engineering organization. I am also “on the spectrum” and openly autistic. My co-workers know that I am autistic. 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.
- BurningFrog 4y ago> Your assumption that being autistic somehow completely disqualifies one to speak competently to others... As anyone can see, I did not write that.
- mason55 4y agoIt was such a perfect illustrative response because your post said nothing of the sort and in fact explained how anyone can pick up the skill
- disgruntledphd2 4y agoI'm not sure about that. Communication is hard when words associated with specific emotional valence get involved. For the responder, I'd suspect that on the spectrum is one of those phrases. 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.
- runald 4y ago
- svat 4y agoAll good, but what makes you call this a competing take? What view of the article does this compete with? It seems to agree with it, more or less.
- quickthrower2 4y agoHow is that a competing take? 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.
- yarg 4y agoI don't assume that someone knows the context, I assume that they could understand the context if they looked at it - that it can be explained to them to a useful extent. 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.
- ar_lan 4y ago> It also makes it easy to think of those who don't know what is obvious to you as idiots. 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.
- CipherThrowaway 4y ago>I'm pretty sure this is related to people "on the spectrum" often having low "theory of mind" capabilities. 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.
- jffhn 4y ago>I'm pretty sure this is related to people "on the spectrum" often having low "theory of mind" capabilities. 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.
- openfuture 4y agoRather than poor theory of mind what about good understanding of economics. The cost of absolutely clear context is too high to bear in many situation, it is often better to get the message across in whatever way works for those who are also in the know.. that way collaboration can cheapen the cost of constructing context. Of course if there is an off-the-shelf context available that you can refer to then there is no communication problem in the first place.