How Software Companies Die
By Orson Scott Card
Windows Sources, March 1995, p. 208
You can domesticate programmers the way beekeepers tame bees.
The environment that nurtures creative programmers kills management
and marketing types--and vice versa. Programming is the Great
Game. It consumes you, body and soul. When you're caught up in
it, nothing else matters. When you emerge into daylight, you
might well discover that you're a hundred pounds overweight,
your underwear is older than the average first grader, and
judging from the number of pizza boxes lying around, it must be
spring already. But you don't care, because your program runs,
and the code is fast and clever and tight. You won. You're aware
that some people think you're a nerd. So what? They're not
players. They've never jousted with Windows or gone hand to hand
with DOS. To them C++ is a decent grade, almost a B--not a
language. They barely exist. Like soldiers or artists, you don't
care about the opinions of civilians. You're building something
intricate and fine. They'll never understand it.
Beekeeping
----------
Here's the secret that every successful software company is
based on: You can domesticate programmers the way beekeepers
tame bees. You can't exactly communicate with them, but you can
get them to swarm in one place and when they're not looking,
you can carry off the honey. You keep these bees from stinging
by paying them money. More money than they know what to do with.
But that's less than you might think. You see, all these
programmers keep hearing their fathers' voices in their heads
saying "When are you going to join the real world?" All you have
to pay them is enough money that they can answer (also in their
heads) "Geez, Dad, I'm making more than you." On average, this
is cheap. And you get them to stay in the hive by giving them
other coders to swarm with. The only person whose praise matters
is another programmer. Less talented programmers will idolize
them; evenly matched ones will challenge and goad one another;
and if you want to get a good swarm, you make sure that you have
at least one certified genius coder that they can all look up
to, even if he glances at other people's code only long enough
to sneer at it. He's a Player, thinks the junior programmer. He
looked at my code. That is enough. If a software company provides
such a hive, the coders will give up sleep, love, health, and
clean laundry, while the company keeps the bulk of the money.
Out of Control
--------------
Here's the problem that ends up killing company after company.
All successful software companies had, as their dominant
personality, a leader who nurtured programmers. But no company
can keep such a leader forever. Either he cashes out, or he
brings in management types who end up driving him out, or he
changes and becomes a management type himself. One way or another,
marketers get control. But... control of what? Instead of finding
assembly lines of productive workers, they quickly discover that
their product is produced by utterly unpredictable, uncooperative,
disobedient, and worst of all, unattractive people who resist
all attempts at management. Put them on a time clock, dress them
in suits, and they become sullen and start sabotaging the product.
Worst of all, you can sense that they are making fun of you with
every word they say.
Smoked Out
----------
The shock is greater for the coder, though. He suddenly finds
that alien creatures control his life. Meetings, Schedules,
Reports. And now someone demands that he plan all his programming
and then stick to the plan, never improving, never tweaking,
and never, never touching some other team's code. The lousy
young programmer who once worshiped him is now his tyrannical
boss, a position he got because he played golf with some sphincter
in a suit. The hive has been ruined. The best coders leave. And
the marketers, comfortable now because they're surrounded by
power neckties and they have things under control, are baffled
that each new iteration of their software loses market share as
the code bloats and the bugs proliferate. Got to get some better
packaging. Yeah, that's it.