Application Development: The Best Way to Avoid Usability Disasters
Software usability is a big part of the application development process, but many companies don’t bother to put the time into discovering what their customers really want, and how they will use it. Unfortunately, when it comes to software applications, if your customers don’t like using your product, they won’t want to keep using it, or they won’t buy it after they try it out. Every minute you spend developing your application will be wasted if you don’t begin with your customer. The usability of your application can be the difference between your product becoming a revenue-generating success, or a proﬁt-draining disaster.
People love quoting Steve Jobs to explain why they don’t talk to users. Well, you’re not Steve Jobs. In most cases, no matter how smart you are, your ideas of how the app should work – or what problems it addresses – are completely different from what your customers really want or need. Guessing at your customer’s requirements is a very expensive practice. Asking them can take time, but in the long run, it will increase your product’s chances of acceptance – and once you take your product to market, making changes in response to user rejection is no small undertaking.
One thing you can learn from Steve Jobs is the part about showing it to them. Not everyone can articulate their needs well, so you have to listen first, then mock something up that you think captures what they said, and show it to them. You will often find that what they meant and what they said were not the same thing, and their reaction to your mockup will help guide you to a successful design. This is a relatively quick step that can save expensive retooling time down the road.
What you need to know before you start
As you develop your application, countless design decisions will need to be made. Those decisions will help determine if your product succeeds when it hits the marketplace. That success will be driven more by the usability of the product than by any other factor. Users will decide in just a few seconds whether it will do what they need it to do, and if they like using it – or not. If not, they won’t think twice about rejecting it.
What can you do to avoid rejection? Before you begin building your app, you need to know everything about your customers, how they plan to use the product, what they expect it to do, and how they expect it to be done. Here’s a list of questions that will give you a good start.
- What is the customer doing now to solve the problem, and how do they feel about it?
- What else has the customer looked at, and how did they feel about the solutions they found? What do competitors have, or have promised them, and what are your customers’ opinions of that?
- What do they expect to pay for your product, and how do they want to pay?
- How do they prioritize the features and functions? (Categories that are helpful: must have, nice to have, or unnecessary.)
- Which of those “must have” functions are things they really use, and which ones are “checklist” items? Separate functions into categories: “buying criteria” and “using criteria.”
- How do they feel about these types of applications in general in terms of larger trends? Are people ﬁnding other ways to solve the problem lately? Is the problem less critical than it used to be?
- What similar applications excited them, and why?
- What things would make your customer say, “I have to have that,” or, “I’d never buy that”?
If you’re worried about bothering your customers with all of this up-front work, don’t be. Most people like being heard. They get excited when a feature comes out that they see as a response to their input. They gain a sense of ownership of that feature, and they will tell others how responsive you have been.
How to make sure they’ll like it when you’re finished
The most critical aspect in assuring product acceptability is building usability into your development process. Don’t leave usability decisions to your programmers, or let these decisions be made accidentally, almost as an afterthought of the development process. Following the steps below will form a good foundation to incorporating usability into your development process.
- Put a key stakeholder in charge of usability. Someone who knows the customer, and represents the customer’s interests.
- Involve a usability expert in the development process. This can be outsourced, if your budget doesn’t allow hiring someone full-time.
- Talk to actual users. See questions above.
- Organize your ﬁndings into categories, then analyze your results.
- Create a mockup of the application. Take it back to those same customers and get their feedback. Do this as inexpensively as possible: you can build a mockup using an app such as Invision, PowerPoint slides, or even sketching it on paper. This is not the time for costly coding.
- As you build your application, get it into representative users’ hands early and often. (Representative users are those most similar to your projected average users.) Follow an Agile process that maintains this flow of delivery and feedback.
- After the product is released, keep gathering user suggestions. Make it easy for them to provide feedback. Future revenue depends on how well you respond to this feedback.
If you’re thinking this sounds like a lot of work, just remember how much harder (and more expensive) it is to make changes after you’ve released your product and have gotten negative, public reviews and angry support calls. Usability, while critical to an application’s success, is just one of the many decisions that you will encounter in application development. To find out what else is involved, check out this guide to building a software application.