I am trying to list down my learnings especially the technical learnings here. It will definitely help in keeping my learnings together and refreshing them when needed. Also It may benefit others having similar issues.

Wednesday, March 17, 2010

Application Design: Simple application interface is all about conquering the complexity in the application design

Many times we have listened about simple application design. Whenever I have been through such kind of discussion, the message was purely related to the application design itself and not related to the application interface at all. Often tech designers think about making the application design simple from construction and maintenance perspective which carries a little value as compared to making the application interface simple and intuitive to use. There are some tech designers who follow a different approach (fancy) of application design and use different stacks of technologies and follow all sorts of design patterns.

This makes the application overbuilt for sure and may become hard to maintain as well. In both the approaches, the real motive of application design is missing. We are building the applications for real users and not for ourselves. I strongly believe that the key goal of application design should be usability of the application and the technology or design pattern preference. Building a simple and intuitive application interface is not an easy task. It can only be achieved if we digest all sorts of complexities within the application design and leave the application interface as simple as possible.

Let’s go further and consider few examples of simple interface applications around us today. The very first example with simplest interface comes in my mind is Google website. When we visit home page of Google, all we see are a search bar, couple of buttons and few hyperlinks. Rest of the screen is empty. Looking at the interface of Google website, one can assume that it’s simply designed with simple implementation logic, which is not true. Just thinking about the functionalities supported by this simple UI gives a picture of the complexity digested in its design. Think about how it prepares its inventory which is used in the searches. Think about its search algorithm which returns most appropriate results in fraction of seconds while it performs the searches over huge inventory of data. Think about its result presentation mechanism, its simple enough for novice users as well and it satisfies majority of its users.

Take another example of Amazon’s widely used online store. Though it’s not as simple as Google, but still it’s simple enough to be used by all categories of its users. A user visiting Amazon’s site doesn’t need any application training and also he/she ends up visiting various online help pages. Still he/she is able to fulfill his/her need at the time easily. The only reason of that success is it’s simple and intuitive enough to be used.

These are not the only examples; all popular websites can be found following similar pattern. Also this is not only applicable to a website design; it’s applicable to every design work whether it’s any kind of tool, appliance, product or even presentation.

Now let’s look at the thinking behind applications having fancy interfaces and simple designs. First reason comes in my mind is about doing some thing unique. May times, we overload the application interface by populating it with all sorts of look and feel and also over crowding it with tons of details. This is obviously achieved at the cast of application usability. Next thing is probably about the starting point itself. At many occasions we are fancied about some particular technology/behavior and we try to fit in the applications falling in the way. Learning or ambition should not derive the application design at all but it should be other way round. We should learn and adapt everything which makes the user’s life easier. Last and most important thing I think of, is about our momentarily success. While working on a design, most of the time we tend to adopt the simpler and easy to achieve approach to complete the task easily without many hurdles. Also I have experienced hard negotiations from tech designer’s side to compromise on the usability aspect of the application as it becomes challenging to achieve. If business/user community gives up the battle, we come up with simply designed/build applications with huge number of user training materials. This helps in achieving the pseudo goal and celebrating the success momentarily. All the joy is gone when we start getting user reactions.

All those applications, which were built, sacrificing the user’s experience; they may have been designed/implemented in time/before time. They might have resulted in whole lot of savings of resources (cast and effort). But all applications have failed after a little time just because if user interests. Users tend to find simpler ways to achieve their objective and so called simple designed applications failed to deliver.

The key to success is ease in usability. A user is never concerned of the application/product design and its complexity. Complexity of the application can’t be reduced at any time. A simply designed application is all about shifting the complexity on the user’s side. An application automatically becomes simple to use when all the complexities are conquered in the application design/construction itself. It’s always beneficial to pay an extra price early and write new chapters in success stories. Whenever it will be a matter of choice, I would always go for a simple application user interface than simpler application design. It would be best if I can achieve the simple application interface by having simple design in place. But I would never make user’s life challenging to make my own life simpler.

1 comment:

Both yes an no. Users will definitely use the simpler interface, but only if it isn't missing important functionality. Good interface also isn't all-redeeming. If your backend's is needlessly complex, it is not only difficult to maintain, but may also scale poorly in terms of application performance.