Tricks (Thoughts) on making friendly user interface

February 18, 2009

I always love to think in simple way. My brain is not gifted, it was not made to think about rocket science. I know it very well and never approached to cross my limit. To my limited knowledge, what I understand is very simple. We interact with a user interface of computer as we use our daily used things at home. I enter in a site or page to use as I open my fridge at home. I prefer to look my most usable content at the top like I get drinks and snacks at top of my fridge. I love to open the main door with the lock as I login with the password into a secure site. I have no doubt all of us want our home as the most secured place (Home, home, sweet home). A site is nothing not very different to me as a home. I am a user at both place. Both of these have a user interface. User Interface (UI)!! nice term. What is it? as i said before I am not that smart lets see what WIKI says: “The user interface (also known as Human Computer Interface or Man-Machine Interface (MMI)) is the aggregate of means by which people—the users—interact with the system—a particular machine, device, computer program or other complex tool.” Oops! i missed it. Did you understand? if yes, congratulations man, you are one of the gifted :)

While a User Interface is designed, a lot of thing comes under the hood of consideration. All of these directly or indirectly related to system and it’s user. A designer tried his level best to make it user friendly and hassle free. But all the big corporates as well as small software companies always in hunt for what really a user want or what will be the best thing for him. In fact the user still ignorant of what he really need. A interface can bring sound Wao!!! from user so fast but in turn to Uff! very soon. We always become wiser, more mature than yesterday. So, how do we expect of a interface well suit a user today will survive as the best choice to the user. An static environment can never last for long to a dynamically changing world.

There are many sites to hit your eyes by Google this topic. I really liked some of the entries. Liu Rui wrote about very basic thinkings before a design. If you have time, you should go through “How to Build a User Friendly Application Interface“. Joel admit a true and bold statement in his site, “A user interface is well-designed when the program behaves exactly how the user thought it would”. The ultimate user satisfaction is the first thing comes into consideration if this not link to security issue or scalability of the system.

My mom often changes the order of furniture and decoration at our flat. Obviously, this is not for placing a new piece. She never likes to continue same setup for long. We interact with same old thing but in new order. I love it. It got some new look. Old wine in new bottle. She can do it whenever she wants. But a software user have to wait till next release. My mom can be happy whenever she wants but the user not. Most possible thing about a software is “It must be changed by time” unfortunately most of the developer start coding under the hat of Constant scenario. Things turn to frustrating when you code for on going software project plans to be as the clients requirements. Version to version, you will try to get users attachment and satisfaction more than the previous one. Even you are in very dynamic development process, it will cost you 4-6 month to release a new version through planning, designing, coding, testing. There is no doubt, a user have to carry on your previous worst thing for these long period.

A real user friendly UI is nothing but a dream. A user is dream snatcher. He want his things near his hand. Grab it fast, work in rush. User varies as well as the dream. Though a patience concern may bring up some common needs. One can put those common things first and rest of the things can be customizable according to the users choice. Lets go though a bank account software UI for bank officials and account holders. What a account holder want to do after login to his online account (In most of the cases)? Checkout Balance, Transfer, Checkout Transaction history, Deposit or Withdraw. On the other hand a casher may want to see Interface for Withdraw, deposit, balance query. So, designing a interface for this two groups are completely different. Though some specific user may want to see in different way but main goal of the basic design should be satisfying most of the users. For specific users it would be very helpful if a interface is customizable. If someone want things in different way he/she may take hassle of customizing things. Massive user never want customizable things. All they want is to do it at glance and get out of the world of this stupid machine named Computer. So, should a designer run in that way? At the end of everything, “Customer is God” coz he pay for the system. You must think of him even its Sunday or not.

References:
1. http://en.wikipedia.org/wiki/User_interface
2. http://www.lrsolution.com/rss/bld_intf.html
3. http://www.joelonsoftware.com/uibook/fog0000000249.html
by: Md. Shahjalal


Feature Mode and Refactoring Mode at same time ?

October 23, 2008

Feature mode and Refactoring mode. Two frequently interchangeable mode of a Programmer. Think like eraser and pencil. A writer must know which one to use and when while correcting a essay. One of the most false idea of typical programmers is you will develop a feature and re-factor a feature in separate time. While a good programming approach combine both, but you must know which hat you have to put on. Feature hat or Refactoring hat.

While in coding, most of the time we take help from the existing code. We link our code with methods or classes of existing code. There are some cases that shows its better to refactoring an existing code than writing a new piece of code. A method of class can be reused by simple refactoring. In this point a programmer must change his mode to refactoring mode. So, he can not only rely with feature mode though coding for a feature.

It not only reduce you time and code but increase the re usability of same piece of code. Well before to end this topic, a very important thing. You must test your code after refactoring as well as think widely about the side effect of the whole change. Refactoring must be done smartly otherwise it will make system like a nightmare that you never think about in your worst time.

By: Md. Shahjalal


Follow

Get every new post delivered to your Inbox.