Skip to content

Programming and Writing Advice

Version History
Date Description
Mar 28, 2020 Started.



Source. Our ideology can be described by the following guidelines:

  • Do not add new functionality unless an implementor cannot complete a real application without it.
  • It is as important to decide what a system is not as to decide what it is. Do not serve all the world’s needs; rather, make the system extensible so that additional needs can be met in an upwardly compatible fashion.
  • The only thing worse than generalizing from one example is generalizing from no examples at all.
  • If a problem is not completely understood, it is probably best to provide no solution at all.
  • If you can get 90 percent of the desired effect for 10 percent of the work, use the simpler solution.
  • Isolate complexity as much as possible.
  • Provide mechanism, rather than policy. In particular, place user interface policy in the client’s hands.

From Scheifler & Gettys: “X Window System”

Prof. John Ousterhout’s Favorite Sayings



  • The greatest performance improvement of all is when a system goes from not-working to working
  • Use your intuition to ask questions, not to answer them
  • The most important component of evolution is death
  • Facts precede concepts
  • If you don’t know what the problem was, you haven’t fixed it
  • If it hasn’t been used, it doesn’t work
  • The only thing worse than a problem that happens all the time is a problem that doesn’t happen all the time
  • The three most powerful words for building credibility are “I don’t know”
  • Coherent systems are inherently unstable

Butler W. Lampson’s Hints for Computer System Design

Performance Evaluation

Writing Tips

Last update: April 3, 2020


Back to top