The Seven Qualities Of Wildly Desirable Software

Cosmopolitan magazine certainly doesn't publish articles such as "Seven Hairstyles That Will Make Your Man Yawn." Wildly desirable is more like it. And so too, is it with great software. If you want your applications to be successful, you better make them wildly desirable.

My latest published research has identified seven key qualities that all applications must exhibit to be wildly desirable, with our choices based on research and inquiries on software design and architecture; assessment advisories with clients; and interviews with leading experts, including both practitioners and academics.

Forrester defines the seven qualities of software as:

The common requirements that all software applications must satisfy to be successful: user experience, availability, performance, scalability, adaptability, security, and economy.

Seven Qualities Of Wildly Desirable Apps

All seven qualities are important, but if you get the user experience (UX) wrong, nothing else matters.

The UX is the part of your application that your employees and/or customers see and use daily. You can do an exceptional job on project management, requirements gathering, data management, testing, and coding, but if the user experience is poor, your results still be mediocre — or even a complete failure.

You have to get the user experience right to create an extraordinary application, but, paradoxically, it is the one quality that most development teams are least adept at achieving. This is not because they are not genetically capable of designing great user experiences; it's often because no one ever taught them how.

Agree or disagree? Did I leave anything out?


As a User-Experience expert,

As a User-Experience expert, I want to agree with you, but I also would temper your comment a bit by suggesting that instead of focusing so much attention on the UX of a product, teams should give UX at LEAST as much attention as they would any other aspect of their product design. By that I also mean that since product teams including specialists for development, marketing, visual design, etc., that they should also include specialists for the UX design, as well.

And I cannot agree more that developers are not UX designers. As you point out, it's not a genetic failing, but a matter of training. Moreover, a developer's perspective is quite different. They actually know too much about the product to be able to think like an average user. It's near impossible to think like a developer and a UX designer at the same time. They are two VERY different and necessary perspectives.

And just like other development efforts, practitioner skill is a key factor in success. Unfortunately, too many people go into UX design without the proper training or experience which leads to mediocre results. Companies who hire these folks thinking they are going to see dramatic results are disappointed thus creating a general sense that UX is useless fluff that costs time and money. It's not. It's just that the product teams didn't know enough to identify the right UX skill set for the job.

Another reason so few products see good results from their UX efforts is that many companies add UX onto the END of the project, instead of the beginning. So, just like any other development process, timing is important. Again, if companies paid as much attention to their UX efforts as they did any other aspect of the project, they would see much better results.

My 2 cents...

Availability includes dowtime

Great post, thanks! Just a minor comment on availability and something many/most people tend to forget about:

Software fails since nobody really wants to pay for bug-free applications. This is a fact of life (or perhaps the economy). And even in bug-free applications, things still go wrong (human error, network down, power failure, ...). We can minimize the risk for human error by providing good UI, but things will still go wrong due to factors "beyond anyone's control".

An often overlooked factor for successful software is how easy it is to understand what went wrong and - more importantly - how to fix the problem. In many other industries (e.g. transportation), this is a crucial quality aspect and massive investments are made in diagnostic tools. In software we rarely even talk about it.

I don't think this is a crucial element in producing "wildly desirable software", but it is often a vital ingredient in "violently hated software". Good error handling may not get you customers, but it can help you keep them.

Another 2c ...