Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

A Software Engineering Theory of Mind

DZone's Guide to

A Software Engineering Theory of Mind

A great software engineer needs great communication skills. If you don't account for context, you aren't communicating well.

· Writers' Zone ·
Free Resource

In developmental psychology, i.e., how we as children develop, there's a thing called a Theory of Mind: a stage kids go through, very early on, where they can first figure out in an experimental setting, "Aha — Daddy wasn't in the room when that sciencey guy moved the little ball from his right hand to his left, so now Daddy has come back in, he will still think it's in the sciencey guy's right hand!"

In other words, they can grasp that there's a distinct mental process going on with Daddy. Daddy doesn't know what Junior does.

It's staggering to find, then, that basically, toddlers have mastered a cognitive process which still eludes a bunch of experienced engineers.

Day 1 at, I don't know, "Weasels Inc." — some guy tells you to check out the codebase, make this one simple change, and then just run "WeaselFlip" to put it on one of the Europe test servers. And the same guy is slightly puzzled and annoyed when you don't yet know what version control is in use at Weasels Inc., never mind what the source structure is, how to fetch it, what IDE to use for the changes — and heaven forbid admitting to zero prior knowledge of the mighty (and entirely proprietary) WeaselFlip tooling. Or where one might find the Europe servers, test or otherwise (in Europe, most likely, but y'know: big place...).

This is, let's acknowledge it, a genuinely simple request when given to an experienced colleague. But not to a brand new hire.

It really does happen. I have seen it, and in varying degrees.

There are some people who are fantastic at being aware that Alice, Bob, and Carol all joined last week, and then display a corresponding talent for bringing those colleagues tactfully and politely up to speed with helpful background. "Yeah, this is WeaselFlip. It's a custom symlink handling tool if you're familiar with UNIX at all, it handles a lot of the complexity of our enterprise permissions stuff, and here's the Wiki link for reference — and I'll send you some examples once we're done."

And then there are people who just seem oblivious: they don't, or — surely not? — can't account for the fact that colleagues don't have their particular depth of expertise.

Being judgmental for a moment, and why not, it's my blog: while naming no names, I do tend to see a link between "explains stuff appropriately" and "is a capable engineer/manager." Take from that what you will, and do feel free to consider your own track record at this time!

Obvious takeaway point: be nice; explain things properly whether someone is new to your organization or has simply moved from Weasel Skeletal Assembly into your Weasel Wetware AI division; and always take into account the possibility that your "simple" is someone else's "this means nothing to me."

Topics:
writers zone ,software engineering ,teaching ,communication

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}