Counter Intuitive Rules for Software Success
|
|
Clay Shirky wrote way back in 1996 "In Praise of Evolvable Systems" which casts some light on how such a poorly designed system (i.e. WWW, HTTP, HTML ) came to rule the world. Shirky lists down a few rules about evolvable systems which jogged my memory. There are a couple of counter-intuitive rules that I've also encountered elsewhere and it might be interesting to compile them all.
So here's a bunch of counter-intuitive rules for software success:
- "Only solutions that produce partial results when partially implemented can succeed" - Clay Shirky
- "It is more important for the implementation to be simple than the interface" - Richard Gabriel
- "Program Less. There are lots of things we can program, but just because we can doesn't mean we should" - Ward Cunningham
- "Applications should be federated not integrated" - Vinod Khosla
- "The social aspects of the language dominate the technological aspects of the language" - William Grosso
- "The observation that ninety percent of the aggravation in programming projects comes at the end. Therefore, the way to get rid of most of the aggravation is to chop off the end" - Jerry Weinberg
The commonality of the quotes above seem to be a focus on pragamatics and community. In other words you don't need to build the perfect system, rather build the system that partially fulfills the needs of today and nurture the growth of the community by making extensibility easily accessible.
Many of the rules seem to make sense, why then did I call them "counter-intuitive"? Well I didn't have a better term to describe them, nevertheless I'm pretty sure that it's counter to what you would learn in a academic setting!

