Some web applications are just a pleasure to use. They work extremely well, they are gorgeous, they are fast, and they almost seem to guess what you want. Gmail, Amazon, and Highrise are all good examples of such applications.
A lot of ink has been spilled on why these apps are so great: Focus on the user, tons of usability testing, heavy usages of statistics, contextual design, etc. are but a few of the reasons pointed out as drivers for success.
But even though the end user interface is an extremely important part of what makes a web application great, I believe true greatness can only be achieved if the app is also first-class on the inside.
Greatness from the inside out
Ok, so I guess the next question is: What makes a web application first-class on the inside? Here are some characteristics I believe are key to build a truly great application:
- Easy to change: Great apps are evergreen. Even if in subtle ways, they’re always improving and adapting to the latest requirements. To build a great app, you need to make sure your application can change as fast as your users’ needs.
- Easy to understand: From the inside! A great app will last for years. In order to keep it easy to change all that time, you need to consider that other developers will be working on the app. And they will need to fully understand it, if they are to keep it great!
- Robust: The app needs to work. All the time. Non-stop. Everybody squirms when Gmail is down…
- Scalable: Great apps attract a great number of users. To support all this activity, your application will need to scale. Good responsiveness is mandatory for a great app.
- Instrumented: Sometimes your great app might end up responding slowly, or worse, not responding at all… if that happens, you need to be the first to know, which means that great apps are instrumented and monitored. That’s the only way you can react and solve the problem, even before your users realize there was an issue!
- Secure: We trust great apps to keep our data secure. You need to keep that trust. Trust is a marvelous thing!
These are a few really important points to consider when building a great web app, but I’m sure there’s plenty more secrets for a web application’s inner excellence! What do you think? What makes your app shine from the inside?