Saturday, September 3, 2011

First Off The Ice Floe


Another bird metaphor for software development.

Penguins and seals have more in common than being adorable. They also live in the same parts of the world, and take part in the same ecosystem. They do not find each other adorable, however. Seals think of penguins as delicious, if feathery; penguins think of seals as terrifying predators.

Luckily, seals don't go very far onto land, and penguins can nest out of their reach. Unluckily, all the food penguins eat is in the water, with the seals. The hungry seals.

This leads to a phenomenon which to a human eye looks like all the penguins standing at the edge of the water, trying to figure out who's going in first. "Is there a seal out there? I think there's a seal out there." "I'm hungry, somebody get in the water." "YOU get in the water." "No, you go first." Eventually a penguin gets in the water, and the rest of them watch: eaten by a seal, or not? If a seal eats the first penguin they all back up. If not, soon there's an avalanche of penguins into the water.

People contemplating whether they should upgrade their software do exactly the same thing. "You gonna upgrade?" "I dunno, you done it yet?" "I hear Joe did it, and he was eaten by a seal." "What, in the middle of our office?""Uhh... I mean it crashed a lot and ate an important file. I have no idea why I said that about seals."

For developers, this means that you need to distinguish very, very carefully between beta testers and the first real users of the application. You have to be certain that people's bad beta-test experiences, when you are sending them out to be eaten by seals, do not keep everybody else from upgrading. And you have to be certain that early and noisy adopters are happy penguins, swimming tranquilly in a threat-fee ocean of delightful little fish. Even if that means giving every one a personal escort.

For end-users, it means being aware of your penguin-like behavior. Not wanting to upgrade? Can you find somebody who did it first? Can you get somebody just like you to do it first? If you've heard about bad experiences, be sure to verify them -- was it really this version of the software? Was it really the software's fault? You wouldn't want to be scared off by some seal-shaped pool float.

Managers and IT people who need other people to upgrade need to use the penguin-like behavior. Start by making sure it's really safe. Pick quiet people who won't complain much, and get them to try it first. Work out all the kinks. Be sure you can guarantee a good experience. Then send in the star penguins and get them to show everybody how great it is. If you don't manage this carefully, you risk having a bad first experience turn into mutiny and misery all around.