Now, after redefining this blogs directions I want to start with a small article that outlines the essentials of user interface design. Despite the common preconception among developers, user interface design is not about fancy graphics, its about how your software works for the user.

I think the basic concepts are really easy, you just need to take them serious. But let us first think a few minutes about the motive, about why you should spend your rare time on that topic:


Why should I Even Care?

Well as a hobby and open-source developer, when I develop a website, a desktop application or maybe a game I do this for two purposes:

Personal Education

I want to learn something from that project. Well user interface design is obviously something you can learn and gain experience in. But that alone ends in itself. There is a more important purpose:

For the User

I want some people to use my software! I want them to use my applications, I want them to play my games, I want them to visit my website and I want you to read this article (As you are currently reading it seems to work out).

And what is really most important to me: I want them to actually like using my software. They should feel well. And when they feel well they will more likely recommend your product to friends.

But there is also a non personal motive for spending time on user interface design:

Quality

Even the best software can look and feel like crap when it’s user interface is poorly designed. Of course the reverse is also true. The best user interface is useless when the software under the hood is not working as expected.

To provide good software quality you need both: A well written backend and a fairly designed frontend.

Okay, I care. Now what can I do?

I think the most important aspect has already been said. Care about. Basic user interface design is not hard at all, but you have to care. And there are some essential aspects you should always keep in mind:

Integration

You cannot develop frontend and backend separately. They need to work together, new requirements for the frontend may require new features for the backend and new backend features have to be incorporated into the frontend.

Target Audience

You always have be aware of your target audience. What kind of person may use your software? Professional developers have different expectations than teenagers searching for games.

Experience and Expectations

Are your users willing to invest time to learn how to use your application (such as professional photo editing or CAD software). Or do you target people that don’t even want to think about how to use your software, they just want to use it (such as many instant messaging or social networking tools).

Consistency and Structure

I think that these are the most important aspects for software targeted at professional users, but it is very important for every other user interface design as well.

Consistency

In order to get along in your application, the user has to get an image of how your user interface works. It is easy to violate this image when some functionality is out of place, which can give the user the feeling that your application works illogical.

To maintain the image you should always watch the consistency of your interface. Stick with one color scheme, use consistent labeling, have buttons of similar functionality always at the same place throughout your application.

Structure

The structuring of your user interface should reflect the functionality for the user, not the implementation structure. Buttons, menus and links that provide similar functionality should be grouped together in a way that makes sense for the user.

Simplicity

Nobody likes to do more than he needs to. Simplicity is the art of providing the user with just what fits his needs in the right situation. This can be pretty tough for complex applications, but it is a key to good user interfaces for software that should be used by common computer users.

How to make an user interface simple?

The essential part is that you ask yourself the following question: “What may the user want to do here?”. If you know what your users want, you can give them the right controls to use and nothing more.

You should start where the users starts: At the application startup (Alternatively the front page of a website): What does a user want to do with your software at whole. Give him the opportunity to do so without searching for the right buttons and menus.

Of course you rarely can provide all the functionality within one-click reach. But you can lead the user through the interface to always have the wanted tools right under his nose.

Conclusion

This all sounds pretty easy in theory. But as always: In reality life tends to be more complicated. And user interface design is not an exception here. But I think I listed a set of basic tools to improve user interfaces in the right way.

Upcoming blog posts will get more practical and provide simple tips to improve a user interface right away. Promise! 

And now up to you

Are there any other essential aspects that you may want to add?

Do you see problems within these suggestions?

Does this not apply to you project?

Do you see ways to improve you user interface thanks to this article?

Please tell me!