The Unix Philosophy
This is one of the most concise and practical articles on technical philosophy I have ever read. It's an excerpt from The Art of Unix Programming (that's a full-text link; Amazon link here) and it describes an overall methodology for solving complex programming problems: keep it simple. Effective software isn't cute, it isn't clever, and it isn't hard to understand. Effective software is written such that it does precisely what it is supposed to – no more and no less. Computers are tools that help us do human work; each piece in the workflow chain should work as expected or tell us why it cannot. The human sitting at the keyboard should understand what is happening so that computer can assist him.
Being a man who has sold his soul to Microsoft, you might think this a strange recommendation. After all, isn't the Redmond Behemoth known for at least stretching (if not throttling, bludgeoning and stomping on) these rules of minimalism? Perhaps. But I think what Microsoft has done well is demonstrate to the programming community that "least astonishment" from a user point of view is something quite different from what it means to an engineer. I recommend every programmer of every stripe read The Basics of the Unix Philosophy.
Labels: Microsoft, Philosophy, Programming, Unix