Simplicity vs. Power
Thursday, February 7th, 2008The ’simple’ mantra has been put forth in recent years by companies like Apple and 37 Signals.
But that doesn’t mean that all humans are perfectly rational creatures. A thread on reddit recently talked about how companies (or purchasing managers) will make decisions based on feature-lists, not the features that actually end up being used.
So your application might need to have the XML Widgets Technology © with SalesForce.com Integration (Siebold/Peoplesoft/Oracle Compatible) feature, even though chances are 95% of your users will never even use it.
Joel has talked about this before:
A lot of software developers are seduced by the old “80/20″ rule. It seems to make a lot of sense: 80% of the people use 20% of the features. So you convince yourself that you only need to implement 20% of the features, and you can still sell 80% as many copies.
Unfortunately, it’s never the same 20%. Everybody uses a different set of features.
Ok, so how does one address this?
An Open Source Case Study
Sure, it’s a lot harder to pull this off when you have to deal with a real UI and your target market isn’t programmers… but here’s how I dealt with this problem in the backup_fu rails plugin.
The only thing the user needs to touch is a 6-line configuration file. Here’s the default:
# The app_name is used as the backup filename prefix app_name: replace_me # Note: please create this bucket (whatever yours may be) externally first: s3_bucket: some-s3-bucket aws_access_key_id: --replace me with your AWS access key id-- aws_secret_access_key: --replace me with your AWS secret access key--
This gets the user just to the point of being marginally useful. They can backup their database & sync it to Amazon S3.
Modifying 4 lines in a config file doesn’t seem all that scary, does it? Of course, if you opened up this monstrosity, it might be a little more daunting.
To reveal the full power of backup_fu, one has to peruse the README to uncover the advanced configuration options available.
As you can see, I don’t 100% buy into the simplicity mantra. Yes, simple is nice for something like an iPod where the form factor dictates how limited one is when it comes to functionality.
But for a web application (or rails plugin), I believe there are often ways to keep the simple aesthetic (which is what people really like about Apple, 37 Signals), while still giving the power & flexibility of greater or more enhanced functionality.
The software program which most comes to mind here is Quicksilver:








