Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Presentation: Making Apps That Don't Suck

Presentation: Making Apps That Don't Suck

This item in japanese

Developing apps that surprise and delight can seem like an illusive goal that is difficult to articulate or quantify. But in this latest presentation just posted on InfoQ  Mike Lee, the software engineer that worked on projects like Delicious Library,Tap Tap Revenge and the Obama ’08 iPhone app, proposes an algorithm for making better apps.

Lee starts with the assumption that an apps sucks, rather than assuming it’s great. From that starting point an engineer can determine why it is less than perfect and develop a plan to suck less. Lee presents a series of case studies to examine the differences between good and poorly executed interfaces, and to determine the annoyance factors that make it difficult to get in and out of apps. Annoying features include:

  • Splash screens that simply display a logo
  • Pop ups that point users to obvious menu items like the tutorial
  • Intermediary screens to activate unknown modes

Lee stresses that users just want to be placed directly into the app, and will turn to help and tutorials when they need to.

Bugs are a fact of life and sometimes small mistakes can lead to catastrophic results. Lee presents two case studies here and offers the analogy that like Indian Poker where everyone can see your card but you:

Your mistakes are as obvious to others as their mistakes are to you. So you should have at least one other person look at your stuff. No matter how good or experienced you are, you’re going to make mistakes.

When it comes to fixing bugs, Lee says:

Ship it today and fix it tomorrow is a terrible idea, because you only get one chance to get someone to try your app... The most obvious solution is often wrong and usually insufficient.

Another factor that contributes to user annoyance is implementation details that too often get in the way of the user experience. The job for the software engineer is to hide these implementation details. Other areas Lee covers is determining when the project is done, handling user feedback, avoiding market segmentation and how to design for everyone.

Once you have the annoyance factors worked out of the app it’s time to improve your app and make it stand out. "Make an impression that really sticks. Ship version 3.0 because you only get one chance."

Ultimately for Lee it’s about software quality. App developers need to compete in terms of the quality of their work, not by producing cheaper, low-cost products. If you do you will lose. View this spirited and popular presentation originally presented at the QCon London 2011 Conference.

Rate this Article