On Quality In Production Code (2012)

So I’ve been playing StarCraft II: Heart of the Swarm

Once upon a time in a universe resembling this one at a younger stage, I dreamt of game programming. I don’t think that there’s any coder of my generation that didn’t have similar aspirations – perhaps getting published in Compute! magazine, perhaps getting one’s name on the box, or maybe even just writing a really cool game. I stand with the majority of developers who have never done that sort of thing. Times changed.

Consider what the person who wrote Galactic Adventures and Galactic Gladiators had written on the Well (apparently before they thought of putting a name to it):

To me, the most amazing thing about doing these games (and I’m about to date myself) is that I did virtually everything myself. I designed the games, programmed them, drew the graphics (quite primitive), wrote the rule book I did get help from friends and people at SSI in testing and making suggestions. Compare that with today where new games are developed with a million dollar budget and use teams of 30 or more people, programmers, artists, tests, story consultants, etc, etc. And you know what — the games of today are better (Gee, why is that a surprise?)

With that in mind and considering that I knew about Blizzard when the original Warcraft was a freeware game where you paid a bit more to get a full version – no, not the MMORPG you kids play now, but the Warcraft that started a new genre that Starcraft continues – Blizzard has come a long way. Since then, Battle.Net has come online. Since then, numerous titles have come through Blizzard and, while I haven’t played Diablo or messed with World of Warcraft, not one title hasn’t been popular. Blizzard has a kind of magic that works for them. I just like a particular genre and have found MMORPGs to be disappointments when it comes to content; I dislike leveling a character by what is properly termed grinding.

All of that said, I’m sure the budget for the Heart of the Swarm expansion was over a million dollars. I’d wager that it was at least 10 times that amount. The detail is great, the storyline is good (though how a prisoner in a high security prison has a pistol escapes me) and it’s playworthy – though I keep mixing up Q and A on the keyboard. But here’s the thing: I played through the game that took so long to develop in about 8 hours of game time. Hard difficulty, much the same. Brutal – well, that’s still in progress. There’s always the PvP maps and the challenge maps. I figure that, all things considered, the game will last me well over 1,000 hours of playtime.

It sold 1.1 million copies in 48 hours. At $40 per expansion, that’s $40.4 million in 48 hours.

Yeah, we’ve come a long way from typing in games from magazines. We’ve come a long way from a single developer writing a game. There was a magic to that era, though – we didn’t yet expect a great game. We expected a game and hoped it would be good. Now people get their sodden underwear twisted when they start talking about game balance and other things on the forums. As a fuddy-duddy, I see that as an odd form of entitlement – people expect a lot more for $40 and have the privilege of time to gripe about it in poor writing.

Game development has come a long way. Humanity? Not so much.

Thank you, Blizzard, for what I consider to be another great game. As a developer, I wish I had a hand in it. I’ll wait for the Protoss section. Take your time.

The Reason Why Your Tech Employees Are Leaving

SH-dinky-I-quitThere’s a bazillion articles out there on employee retention the last time I stopped counting. Tech employees are slightly different. Without further ado:

1: They’re Unhappy.

Tada. This is why people leave.

Tech folk are a bit like cats, and herding cats is not an easy task. People want different things. If you don’t know what the individuals want, you’ve already identified your first problem.

You can’t and should not please everyone.

You might be amazed at how easy it is to retain employees if you simply listen and react appropriately – and bear in mind that the rest of the team is paying attention and taking note.

1a: Hot And Cold

If there is no respite, if it’s a matter of going from one thing to another, running hot on projects behind schedules and cold on new things, you’re encountering basic physics. Constant expansion and contraction is not good for anything, particularly people. The larger the gradient between hot and cold, the more likely you’re going to lose people. This is part and parcel of a Culture of Fear.

1b: Unfair Treatment

You might like to think that you’re treating everyone equally, but your team might see it otherwise. If one person throws a tantrum and gets what they want – be it a supply of Coke products or an office – expect the rest of the team to either learn the lesson or begin disapproving of management (if they haven’t already).

Further, if you ride one person hard but let another get away with murder, you’re asking for it. While you may have higher expectations of one or the other, inconsistency in how the team is treated fractures the team.

1c: Rewarding Jerks

When you reward someone who is not a team player and is constantly creating friction, and when they get away with just about anything, it’s a matter of time before either (a)people start acting like jerks or (b) they pack up their toys and go home.

If you find yourself in a position where you have to pick between two employees, it’s already too late and you should be wondering how that happened in the first place.

Bear in mind, treating a jerk and someone who is not a jerk the same when dealing with an altercation gives the jerk the high ground. Do that consistently, expect the non-jerk to walk. Maybe just spontaneously one day.

If you can’t identify a jerk, you have much larger problems. If you like the jerk, you’re a jerk – and if you don’t like the jerk and keep the jerk, you’re a jerk. Embrace it and stop reading here.

1d: Bad Priorities

You (hopefully) hired smart people, and while you may not show your cards, people can discern bad priorities when they see them – or worse, they can believe that it is a bad priority because your organization lacks the transparency for them to see it as good.

Tech folks generally like to feel like they are doing something of worth.

1e: Not Involving the Team in Big Decisions

This doesn’t mean that the team has to agree on everything, but if it’s a decision on how something will be done across the team, get input from the team as a whole. And if you have people who steal oxygen from meetings, make sure they don’t monopolize the time or frame things such that it’s their way or not.

1f: Lack of Growth

If you’ve hired people who don’t want to grow or help the team in greater ways, you hired wrong and you have larger problems. This is not to be confused with the Empire Builders – those that harden their position and are constantly finding ways to make themselves relevant in places where other team members might be greater assets.

1g: Influence Issues

Someone who has developed influence in your organization by hard work and perseverance is an asset, and while they will likely be resistant to changes you want to implement, if you leave them out of Big Decisions (see 1e) you may well be shooting yourself in the foot. If they don’t get upset, or suddenly stop becoming upset, they’re on their way out – which may or may not be good.

If you have someone who has accepted increasing responsibility, knows how things work that you don’t understand and has gotten in front of problems… you may not appreciate them because they’ve kept the flames from creating the tell-tale smoke signals. Unfortunately, when you smell smoke after they leave or just before they leave, it’s too late – so pay attention to how people get in front of problems.

1h: Money

Yeah, money had to make it in here somewhere but I purposefully left it down here as the last one. Why? Because if people are having trouble making ends meet they WILL look. If your tech people are having that problem, that’s a big glaring issue you will pay for if you don’t pay for.

Money isn’t as much of an issue as people make it out to be – the people who just want more money will likely leave anyway when they get a better offer, and you might be better off without them.

By the time someone starts comparing salaries, they’ve already decided to start looking. Even if you pay them more, they’re likely to leave anyway – except the unicorns. They do exist and typically negotiate more than money.

This post also made available on LinkedIn.