"The Building of Basecamp" Review
This guy’s list of main points are completely in line with my current beliefs about how to develop great software, in particular these three, which I’ve quoted verbatim:
- Say “no” by default to any feature request. Make a feature work very hard to be implemented.
- Start everything with the screen design. The screen IS the application. The screen drives the functionality, not the other way around. The screen design is the requirements document. (I know, I know — the hair on the back of your neck just stood on end…)
- Avoid preferences. Preferences can be cop-outs to tough problems. Whenever you have the user set a preference, you’re having them make a decision (Joel Spolsky’s book is big on this too). It’s more challenging to come up with a solution, and mandate it. As a result, Basecamp requires something like four fields to be completed and it’s ready to go.