Tuesday, December 12, 2006

Simplicity Ain't So Simple, Part III: Don't Add Features You Can't Support


Making software simpler for end users is incredibly important, but sometimes simplifying your software means making things simpler for you, the developer.  And the best way you can do that is to avoid adding any feature that would bury you in support costs.

I'll give you an example: a number of FeedDemon customers have asked for an integrated blog publishing tool, which certainly sounds like a good idea. 

Source: Simplicity Ain't So Simple, Part III: Don't Add Features You Can't Support
Originally published on Tue, 12 Dec 2006 17:12:19 GMT by Nick Bradbury

As a developer myself, I have to say HUZZAH! (Why is that not in spell check?)

I do use FeedDemon. I love a good 95-99% of it. No software, even the stuff I write for myself, ever hits 100% in the 'love' category. Why? A couple of thoughts.

Ask any 10 users on what a piece of software needs to do, and you will get 10 different views. Hopefully you will find some common themes, but no matter what someone will be disappointed. There are times it seems that half your users a function work way A, half want way B. Of course A & B are polar opposites. So now we either piss off half the clients or add options. Add the option then all the users complain there is too many options. Bang head here. I could make a mint on selling those posters to programmers.

Programming for all levels of expertise is tough. Make it too simple and you loose the experts. Make to too tough and the newbies will give up. Adding both adds complexity, and makes it tougher to maintain and enhance down the road. Sometimes you can find a 'just right' middle ground, but too often that leaves a bad taste in everyone's mouth. Users have a nasty tendancy to want to use an app they way THEY work, not they way the PROGRAMMER works. Might inconsiderate in my opinion ;).

Let us not forget the limitations of our systems and conventions. Really cool, and useful, user interfaces are sometimes poo-pooed because they are 'too different' and viewed as too difficult to use. Never mind if the learning curve is worth the effort - kill the uniqueness. Why am I reminded of the Borg? Sometimes really slick user interfaces are just not doable given other requirements. Sometimes the 'typical' machine just does not have the horsepower to do what is needed. Sometimes the operating system throws up roadblocks.

Finally the user requirements keep shifting. The slick (and useful) UI of today is tomorrow's crap that gets in the user's way. Expert users will find new (and many times surprising ) ways of using your software that you never dreamed of. Other companies start supplying data that is a natural fit to your app. Sometimes your data would be a great fit for another app. Maybe your app data would make sense on a cell phone. Or PDA. Let's not even go into the infinte possibilities of Web 2.0 mashups.

As for FeedDemon, my main pain point is the "Blog This" feature, somewhat mentioned in the above post. I have no problem launching the blogging software of my choice. In fact I prefer that over using some weird, to me, software that Nick would provide. However I always have trouble finding the option. I want it on a particular view on the right click. However it is on the 'Send To' menu on an icon. I understand WHY it works the way it does, but it does not help when I want to blog about something I just read. The problem exists between chair & keyboard, not with the software. However until that little bit of knowledge finally leaks into my brain, I will have frustrations with FeedDemon.

Truth is all software development is a serious of trade-offs. Even with infinite time it is unlikely perfect software would emerge. You need to get something into the hands of the user. Many times something that is 70-80% (or less) of what the user needs is better than nothing. Search for 'good enough software' and you will find plenty of articles that discuss this.

No comments: