Focus on doing at least one thing right.Distill that thing to its essence. Industrial designer Dieter Rams advises, Less, But Better.
Whenever I've ruminated on then distilled an idea - whether in the shop or in the cubicle - the distillation is almost always stronger.
Less, but better – because it concentrates on the essential aspects, and the products are not burdened with non-essentials. Back to purity, back to simplicity.Twitter is an example of not overstepping a founding concept of a 140-character micro-blog, then focusing on delivering essentials. Simple idea. Simple execution.
— Dieter Rams, 10 Principles of “Good Design”
I have grown weary of feature-driven apps. In particular, I am weary of apps that try to be everything to everybody — more so when they miss the mark on the essentials.
Assertive Over Universal
Microsoft Word is the universal remote of application software. It's a work-horse I use almost every day because, as luck would have it, I can efficiently produce documents with it. But I'll be damned if I know what many of the icons signify on the toolbar.
|Microsoft Word 2010 Toolbar|
For developers, Nice to Have is the front door of feature-madness. Nice to Have is often a one-way ticket to frustrating software.
The most pleasurable software often seems to have an ax to grind. In the most pleasurable cases, it's a sharp ax. Should your app take sides? The folks at 37Signals think so. I suggest reading their essay Make Opinionated Software. Jason Fried, and others, make the case for assertive software:
The best software has a vision. The best software takes sides. When someone uses software, they're not just looking for features, they're looking for an approach. They're looking for a vision. Decide what your vision is and run with it.A shining example of assertive software is Ayende Rahien's open-source Document Database RavenDB.
When I set out to build RavenDB, I had a very clear idea about what I wanted to do. I wanted to build an integrated, opinionated, solution. Something that will do the right thing most of the time, and let you override that if you really want to.RavenDB is good at one thing - providing lightening fast read-models developers can bind to views. And to my good fortune, Ayende imbued RavenDB with guiding opinions - opinions that rescue us from sloppy coding. For example, RavenDB expresses an opinion about unbounded result sets. RavenDB will let you query for the mother lode, but forces you to override default behavior.
— Ayende Rahien
Ayende has well-considered professional opinions and expresses them in his software.
So my new mantra is this:
Keep it simple. Make it assertive.
- Getting Real: The smarter, faster, easier way to build a successful web application, Jason Fried, et. al., 2009.
- RavenDB in a Nutshell.