Hints and Principles for Computer System Design
- Butler Lampson
In addition to the full version there is a short version (about half as long), at the Related link. The View link is to the version on ArXiv.
This new version of my 1983 paper suggests the goals you might have for your system—Simple, Timely, Efficient, Adaptable, Dependable, Yummy (STEADY)—and effective techniques for achieving them—Approximate, Incremental, Divide & Conquer (AID). It gives a few principles for system design that are more than just hints, and many examples of how to apply the hints and principles.