This is why we can’t have nice things

Swizec Teller
Swizec’s Nightowls
6 min readApr 24, 2016

A look at some horrendous advice on building software teams

An essay by Alex St. John — the creator of DirectX — has been making the rounds this week. In it, he says that coding is not a job, it’s a calling.

Which is okay, many programmers think of coding as their calling.

Alex then goes on to use this coding-is-a-calling as justification for exploiting employees. Which is bad. Very bad.

If you haven’t read his essay yet, don’t. It’s bollocks. You don’t need that shit in your life.

Instead, let’s look at his presentation about building and running software teams instead. It’s a sexist, exploitative train wreck from start to finish. I can only hope that it’s borne out of some sort of Stockholm syndrome, or a sense of “If this is what the industry did to me, this is what I’ll do to the newcomers, too”.

But despite all that, it contains a golden nugget or two. Such as:

“Overcoming hardship together binds teams.”

This is true. Overcoming hardship does bind teams together. Hell, it’s what almost every war and sports movie is about.

Going to work to do your calling shouldn’t be war, though.

The presentation starts out strong. There is a worldwide competition for talent. Anyone who can code does have a job if they want one. Employees do churn fast — especially if their boss is a dick. People are getting poached left and right.

Then the train wreck begins.

“Spoiled kids who know their value.”

What?

Knowing your value makes you a professional. Not a spoiled kid. Asking for a lot of $$$ without providing value, that makes you a spoiled kid.

This whole slide feels very Don Draper 1950’s. Sure, how partners feel about your job is important. Behind every successful person, there’s a partner riding their ass and all that.

This slide implies so many outdated concepts that I can’t even list them all. Why is the supportive partner a woman? Why does she not have a job and career of her own? Why aren’t the two partners in a household equal? What if there’s more than one of them? What happens if “the wife” makes more money than your employee?

I don’t know and Alex isn’t telling us either.

Coding is not work, it’s a calling. Right. We get it.

Coding is both work and a calling. The best engineers I know live and breathe code. It’s a calling.

And when said calling is done as a job, they’re professionals who get paid on time, work for a predetermined amount of time, and only work for you if you’re paying them.

Ever heard of Fuck you, pay me? That’s how a real professional approaches their craft.

If you haven’t listened to Mike Monteiro’s Fuck you, pay me talk, now’s a good time. You’re a professional, when you do work, you get paid.

That said, rewarding people for standing out positively — yes. Do that. That’s important.

A gold nugget in a pile of shit!

“Reward people who do better work.”

Software is abstract and engineers are motivated by tangible goals. Yes, this is true.

Another gold nugget in a pile of shit! We’re on a roll!

Whenever possible, talk about why. Why are we building this feature? Why are we setting this deadline? Why are we waking up every morning and schlepping away on this stupid code instead of playing around with random cool technologies?

Because it helps users. Because it improves people’s lives. Brightens their days.

Engineers need to know that shit, too.

(PS: this comes straight out of Simon Sinek’s famous TED talk, too.)

Always start with the why. And make it good.

This is true, people are going to move on. Especially if you work them so hard their partner burns out. That shit cray.

Managed churn? Departing on good terms? Eh … there’s really no such obligation when you think about it.

There’s this thing called at-will employment. You should be as loyal to your company as your company is loyal to you. Do people where you work get fired by noticing their Slack no longer works? Then you can walk out, too.

Do people get two months notice about having to go soon? Then be nice.

Yes, passion and persistence beat experience every time. Eventually. A little bit of slope makes up for a lot of y-intercept. You know what I mean.

But, man, that gold nugget sure is covered in a lot of shit. Working people too hard? Fuck that. Taking them straight out of school to scar them for life? Fuck that. Exploiting people with undiagnosed/borderline Asperger’s because you think they’re basically robots anyway? Super fuck that.

Please do hire for passion, persistence, and willingness to learn instead of grades and pedigree, though. That’s good advice.

This right here? This is why we can’t have nice things.

Hiring women engineers just to “promote” them to management roles? Just because their social skills are better?

Fuck that.

If a woman wants to code, let her. If she wants to manage, let her. And there are plenty terrible female communicators. Having boobs doesn’t magically make you better at talking. Just like having bulging biceps doesn’t magically make you dumb.

Oh and men can be great at talking too, by the way. That’s why so many executives are men. Because they talk good.

Let’s recap:

  • investing in people → good
  • churn and burn people → bad
  • avoid hiring professionals → bad
  • push out bad hires → depends how
  • avoid people with balanced lives → bad
  • recruit/retain the partner → hello 1950's
  • women are managers → if they want to
  • don’t promote good people → unless they want to
  • reward top performers → good
  • overcoming hardship binds teams → good
  • long hours → lol, no

PS: I write about being a better engineer and creative every week. You should subscribe by email.

--

--

Swizec Teller
Swizec’s Nightowls

A geek with a hat, author of Why programmers work at night, React+D3v4 and others