A Programmers Definition of Design

On January 14, 2012

A Programmers Definition of Design

Once upon a time, in a land far, far away  there was a programmer whose only work was to  think about coding all day long.....Sadly that doesn't hold true anymore. After reading the title of this post, you may be wondering what has a programmer got to do with designing . Isn't that supposed to be a designers(read graphic artists) concern.

You are absolutely right there, if you still program for DOS. For others, if you have to stand out from the crowd and establish yourself as a competent programmer, then you must know few important things about designing as well. Now before you start to disagree with me or even dare to think about leaving this page, let me explain what i mean by designing.

Till now, i thought designing and programming were two distinct things which can be done in isolation from each other. I couldn't have been more wrong. Designing isn't the way something looks , it is the way something works(i know you heard this already somewhere, but this time try to think deeply about this simple sentence.)

Whether programmer or not, most of us have grown up believing good design means something that looks good. Sure, that's true to a large extent, but just because a software interface looks beautiful doesn't mean it will be easy to use. Just as a  great looking game doesn't necessarily mean that it would be fun to play.

This responsibility of making a software or a game work perfectly lies on the giant shoulders of the programmer(i guess i got little bit overboard here). So making a beautiful button may not be your job, but making it work smoothly is definitely yours. Similarly, making Super Mario look realistic may not be your job, but making him perform that perfect jump over the enemy is definitely yours. 

Just like a river, every application must flow smoothly from one place to another. The flow from screen to screen should occur in a consistent manner. Each and every button in application should feel in sync with the actions performed through them. Any new type of data must be presented in progressive manner and then disappear smoothly from the users view.

For this to happen, a programmer has to come out of his programming world and for once has to think like an architect designing his own building, a story-teller telling his own story, a poet writing a great piece of poetry. Only this way can he understand how to write programs that in addition to performing the desired tasks, give an enriching experience that a user cannot forget easily. 

This is what a programmer should understand by designing. So next time you bump into that designer/graphic artist in your office tell him he is not the only one who knows designing. 

Hope you enjoyed reading this post. Your thoughts and opinions are always welcome.

Image : Phelan Riessen

share this on : twitter | facebook | google+