"Almost anything in software can be implemented, sold, and even used given enough determination. There is nothing a mere scientist can say that will stand against the flood of a hundred million dollars. But there is one quality that cannot be purchased in this way — and that is reliability. The price of reliability is the pursuit of the utmost simplicity." -- C.A.R Hoare
The central design principle of our products is simple & useful. From this fundamental principle, other principles unfold.
Simplicity is everywhere essential, but perhaps nowhere more necessary than on software. Because software is so abstract, and its workings can be carried so very far by powerful computers, it remains a hotbed of complexity.
Many of us spend perhaps a majority of our waking life interacting with software. Much of this software is exceedingly complex, which detracts from our quality of life. Simple software would instead enhance our lives, by making our interactions with software more enjoyable, more effective, and perhaps shorter.
Simplicity is hard for two reasons:
We are aware of both the challenge and temptation that stand in the way of simplicity. We embrace the challenge and openly resist the temptation.
Our bet is that useful products can still be simple; not only that, but that perhaps a sure path to a very useful product lies through simplicity. This is a contrarian bet.
Simplicity and usefulness are seemingly opposite on the surface, but can actually bring the best of each other. Therein lies the challenge of building great products.
The two questions we constantly ask ourselves are: is it very simple? Is it very useful? If so, we’re on the right path.