24 November 2012

Simple, Assertive Software

Do you want your app to Kick Ass & Call it Love Story? Keep it simple. And make it assertive.
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.
Dieter Rams, 10 Principles of “Good Design”
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.

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
Despite a bewildering quiver of options, settings, and features, Word delivers on the essential. If you provide users with a gazillion options, settings, and features, be sure to have the empathy to deliver the essential.

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.
Ayende Rahien
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 has well-considered professional opinions and expresses them in his software.

So my new mantra is this:
Keep it simple. Make it assertive.

REFERENCES