Keeping good employees is the key to long term success
You need lots of Caris
Next week I'm going to be giving a guest lecture at the University of Michigan. My topic will be the game industry and software development requirements to be part of it. But it got me thinking about other issues involved in running a successful software company.
Probably the key, in my view, to having a successful company is retaining good employees. It may seem obvious but let me get more specific: Everyone in any industry knows that there are various kinds of people out there. Some people, like Joel on Software, go specifically for the "super stars". Stardock has its share of coding gods. I'd put our top developers against the top developers at any company anywhere in terms of knowledge and productivity.
But I don't want a shop full of "super stars". Or I should say, being a coding god is only part of the story. I'll take a good software developer who is loyal, easy to get along with, and reliable over a "super star" who is arrogant, acts like a primo Dona, and flakey. And I bet those of you reading this have run into your share of guys (they always seem to be guys) who think they are god's gift to the world.
At our office, we have a term for the type of employee people should be trying to keep. Code-name: Cari. In honor of the avatar of good, long term, loyal, productive, self-starting, easy to get along with software developer. She won't claim to be a coding god. But she also, day in and day out delivers the goods. She wrote most of the lines of code in Galactic Civilizations. It is people like her that need to be representative of the average person at a successful software company. If you can find a handful of unpretentious software gods, which fortunately for us we have, that's great. But over the long run, retention matters. Many of these super stars suffer wanderlust (and in my limited experience end up screwed as they get older and their skills are too scattered and their resume too all over the place). So it's often hard to keep those super stars for various reasons. But the people who stay, they become an invaluable asset over time because they know how things work at the company. They know the procedures. They're in their groove.
Which is why, I think, the successful long term company that's larger than a dozen or so people needs to make sure they have not just super stars but also plenty of Cari's. It is the Cari's of the world that make software companies successful over the long haul.