Saturday, July 3, 2010

Software Development as Calvinball

"The only permanent rule in Calvinball is that you can't play it the same way twice!"

Calvinball, created by Bill Watterson in his comic strip Calvin and Hobbes (http://en.wikipedia.org/wiki/Calvin_and_Hobbes), involves combining aspects of many different games into a single chaotic game.

In many ways, software development resembles Calvinball, even when, and perhaps especially when, it is being done well. This leads to many discussions regarding the best ecosystem for software development. The best environment for software development depends on the current activities and the current participants.

For example, sometimes software development is like chess. It requires intense, uninterrupted concentration. During these periods, it is inappropriate to ask the developer to do anything that would be inappropriate to ask a chess player to do. It would be ludicrous to set a phone next to a chess player and ask him to answer it several times an hour (on the first ring!). It would also not make sense to play the game in a cubicle next to various sales people and purchasing agents who must spend much of their time on the phone and in conversation.

At a chess tournament, when a game ends, the players quietly leave the playing area and go elsewhere to converse and await their next game. They don't celebrate and disrupt the other people who are still engrossed in their games.

At other times, software development is like charades (http://en.wikipedia.org/wiki/Charades). The success of the task is dependent on spontaneous contributions from many individuals. The environment is boisterous and restrictions are kept to a minimum.

To maximize the effectiveness of a software development team, cultural norms and workspaces must be developed to allow the various aspects of software development to coexist as harmoniously as possible.

No comments: