Re this important thread from @grimalkina:
https://mastodon.social/@grimalkina/111972810596703896
I just gave a little soapbox to my Software Design and Development students that I give every time I teach the class, and I’ll give it here on Mastodon.
Software development is an intensely social discipline.
1/
Software is made by humans for humans.
Most software is made by teams. All software involves interacting with other people. When you use a tool, a programming language, you’re interacting with the people who made it; when people use your software, they’re interacting with you. When software works or doesn’t work, that’s the decisions of others, the work of others that you’re experiencing. It’s people all the way down.
2/
Most software is made by teams, and software development is an •intensely• social activity. Software projects stand and fall on the relationships between the humans who create it: whether they understand each other, whether they collaborate well, how they make each other feel.
Computers don’t fill in the gaps and misunderstandings for us with common sense; when we don’t understand each other, we •codify• that misunderstanding in our code, fix it in place and turn it loose.
3/
The best software tester I’ve ever known once said to me, “Whenever I start at a new place, I find out which teams hate each other. Where their systems interface with each other is the first place I look for bugs — because they’re not talking to each other.”
Software projects stand and fall on the relationships between the humans who create them. (A corollary to Conway’s Law.)
4/
Now please don’t misunderstand me (and here imagine me looking earnestly to the students): when I say it’s “intensely social,” I don’t mean that you have to be an extroverted social butterfly.
You can be the world’s biggest introvert and make great software.
You can be socially clumsy (I am!) and make great software.
You can be autistic and make great software.
You can be chatty and charming, or silly, or dry and serious, or linear, or chaotic, or or or…and make great software.
5/
What you can’t be is misanthropic. When you write software, you are in relationship with other people. And if you don’t care about people, if you just •hate• people, if you can’t care about healthy relationships, if you cannot be bothered to communicate or to listen or to just give a ground-level shit about other people, DO NOT get into software. You’ll crash and burn — and you’ll cause terrible harm as you go down. Find some other discipline to go torment.
The rest of you…come on in.
/end
@inthehands This thread contains a lot of wisdom, especially the bit about looking for friction between teams.
Effective communication is hard, but so so so important. Failures can manifest in subtle ways & often compound.
It's easy to conceptualize the immediate effects of your speech, but much harder to understand the emergent effects brought about by communication patterns.
Software types put way too much respect on the "super technically competent dickhead" archetype.
Yeah, they might be a beast at stomping out bugs or churning out features, but how many bugs were missed or features poorly written because no one wants to ask this guy questions. If no one wants to talk to you, your effectiveness is limited to your individual capabilities, whereas better communicators multiply their expertise, even if their individual capacity is less.
@Lehmanator @inthehands this may be more or less true in different cultures depending on what values parents reinforce in their children and what children pick up from the media, but it is definitely something seen in the US not only with tech bros and nerds but with doctors/surgeons, actors/musicians/artists, sports players/coaches, politicians, etc. You might find example in those fields who _you_ find distasteful for their dickheadedness, but they _are_ famous so plenty of others adore them
@raven667 @Lehmanator There’s also a lot of nuance to dickheadedness. It’s a weird thing to say, but it’s true. Some people are brusque but also caring; others are socially appropriate but socially toxic. Layers and layers.
For sure.
All communication is relative to a myriad of factors like context, preferences, and social norms.
There are things that you'd feel comfortable saying to your friends that you'd worry about saying to a colleague because you don't know how it would be received.
Not to mention people have different tastes. One man's dickhead is another man's frank.
@raven667 @inthehands Definitely. It's certainly not limited to just software people.
Makes me wonder if there is any relationship between self-perceived aptitude in a given field and proclivity towards hostile responses to people. I don't know how you could measure this and control for cultural norms, but I'd imagine that people who feel like they're exceptionally good at their job are more willing to be a dick because they know they aren't risking job security.