December 18, 2004
I wrote this article the better part of a year ago and forgot about it. I just noticed it was pushed live:
Actually, I don’t see any steps in there. Apparently I was also interested in the history of design at the time (which is a cool topic, really, so I guess I’m still interested). But I enjoyed rereading it, and its nice to notice that, while I would have written the article from a very different angle today, the principles are still the same. You know its been a good year when your principles are still the same at the end of it.
The article covers a number of design principles, situating them in the historical context that made the principle relevant. The principles are:
- User Knowledge Principle Figure out who your user is, what they do, and what they need.
- Feature Bloat Principle Recognize the cost of each feature you add and each exceptional use case you accommodate.
- Focus Principle Good design requires editing. Focus the design on one principle class of users.
- Abstraction Principle Keep track of conceptual model your software requires, and work at making it simpler. Reduce cognitive friction.
- Direct Manipulation Principle Enable the illusion of direct manipulation when there is a reasonable physical metaphor.
Then the article dives through four of the most important phases (suppose this is the wrong word since they often overlap, repeat, occur simulateously, etc) of software design.