Joel writes:
Making simple, 20% products is an excellent bootstrapping strategy ... What works for bootstrapping, I believe, will not work as a good long term strategy...
Alec writes:
Why do hot-tubs come with sound systems? People buy features. You may not need all those features. You may never use all those features. But you can take comfort in the fact that they’re there, knowing that you got value for your money.
We all know the "Less is More" strategy being popularized by 37signals.
Some very smart observations about the merits of both more features and less features. How can these smart people have conflicting opinions about which is better, less or more?
Something's missing.
It's the experience level of the user. And that changes over time. Newbie users LOVE simple products because they're not intimidating. They're easy to get started. They're cheaper to buy. When your needs are modest, a simple tool seems like a Godsend. When your needs are complex, simple tools look like toys and feel like chains holding you back.
Simple products (in this context, meaning less features) are not unilaterally better than complex products (in this context, meaning more features). Nor are complex products unilaterally better than simple ones. It all depends on where your users are in their own understanding and needs, related to whatever problem your product solves. Beginner users with simple needs love simple products. Sophisticated users with advanced needs view simple products as limiting and frustrating.
The important thing to remember is that beginner users eventually become advanced users. Oh oh. Now what do you do if all you have is ONE product that is either simple or advanced?!
(By the way, complexity and feature count can be decoupled with good design, but that's another topic altogether.)
Personally, I view a user's needs as a kind of evolution. The needs start off simple until the current product is mastered, and then users often want more features as they feel the need to excercise more finite control or power over their tool. If you give them this, then the tool no longer resembles the original "simple, elegant" design you first had, and you've simply traded beginner users for advanced ones (instead of adding new users).
What's a software designer to do? Hmm, the words "one size fits all" seem to be whirling around my brain - like somehow they may be responsible for this conundrum.
Personally, I believe the best solution is to stop trying to design a single user experience that is exactly the same for the beginner user as for the advanced user. Once again, in trying to please everyone, you risk pleasing no-one. Know your audience! If you must please users at varying levels of sophistication, the best strategy I've come across is to either split your product's user interface into "modes" where the user can select their own level of needs (don't ask a user how sophisticated they are: they'll always say "advanced"), or even consider splitting your users across different physical products that serve basic or advanced needs. In other words, the user experience should be like a highway on a journey of learning. Give people a couple of different entry points and let them merge wherever they feel is appropriate. Then let them grow up with the product and show them that when they're ready, you've got the next step covered too.
As with all good things however, there is a cost. Having separate user interfaces, or separate products, requires more planning and design, and more development effort - but wait... You're getting more customers out of the deal right? And quite possibly even happier, more loyal ones too because you've more closely aligned your user experience with their current needs. Seems like everyone wins to me.
Many people might argue that it's too expensive to segment users based on sophistication levels for a single product, or to have multiple products for different levels. However, there is no arguing the fact that niche players in many product categories are stealing customers away from general purpose players in those spaces. In fact, one could argue that the general purpose approach only works as long as the space is not big enough to support those separate niches, and only as long as the barriers to entry in that space are so high that niche vendors can't get in the game and take away those customers. For most software related fields today, the barriers entry are low, the markets are big (meaning they will support segmentation).
So if customers are being presented with a choice of products from different vendors at varying sophistication levels anyway, why not have those product choices under the same vendor's roof, and blended to look like they all come from the same family? Maybe ease the transition from beginner products to advanced ones?
Why do "enterprise" vendors ONLY make big, complex software? Why do "Agile" vendors only make small, simple products? Once a company builds up an expertise in a particular domain, why not offer a choice?
I believe that in most cases, it's because the teams building the software also grow up with the product and gain more and more experience and sophistication in their own domain, that they leave beginner users behind as they project their own advanced understanding onto the product's user interface. This process continues until they've left some users behind and have created a barrier for new users to jump on board.
We need a "leave no user behind" philosophy in product design!
Recent Comments