Being Selfish 12 Mar 2005
16 comments Latest by ronny
There's a paper I was pointed at some time ago, called "The Selfish Class", describing a series of patterns (everything's a pattern these days, right?) that attempt to define why some software succeeds, and some software fails. It applies the ideas of Darwinism to software development, and it is surprising how many of the concepts fit.
The paper is biased towards software that is targetted for use by programmers, but with a little imagination it can be applied just as effectively to more general software applications, like Basecamp. In particular, I think applications like Basecamp and Ta-da Lists succeed (in part) because of their adherence to Works out of the Box, Low Surface-to-Volume Ratio, Gentle Learning Curve, and First One's Free.
We've all worked with software that violates one or more of these patterns, though. From the software development world you have text editors like Vim and Emacs, both of which sport anything but a Gentle Learning Curve. Operating systems like Unix and Linux don't try too hard on the Low Surface-to-Volume Ratio pattern. Yet they flourish anyway!
Still, for every product that succeeds in spite of a less-than-ideal UI, how many fail? And how about the reverse?