Why programmers should learn designing

On April 16, 2013

I know many programmers who don't know what designing is.

The sad part is they're not even interested in knowing it. Few years back, I was one of them. And I know how it feels when you know, and when you don't know, about designing. I know what difference it makes to the way you create new things.

As programmers, sometimes, we underestimate designing and don't bother with it in our applications. While sometimes, we overrate designing and spend too much time to make that perfect design without actually creating anything.

Perhaps, the right balance is somewhere between these two extremes.

But, most programmers don't bother to learn designing because:

  • They don't know its importance.
  • They only love programming, and don't have much desire to learn any other skill.
  • They don't have time to learn designing, or think it'll take too much time.
  • They think designing needs drawing skills which they can never learn.
  • They think designing is too difficult to learn.
  • They think that designing requires great attention to details, and a good taste for design, which they don't have.
But the most common reason is that they think it's not their job to design, and that's why there is no need for them to learn it. Designing is meant for artists who can draw and are responsible for the looks of an application. As programmers, they'll gain nothing by learning to design.

It's easy to find a hundred reasons for not learning designing. But that's not what this article is about. It's about finding the reason to learn designing.

So, if you want to learn designing, then there should be something in it for you. right?

Actually, there is.

Designing is the way your application works. The time a user spends using your application is all that matters to him. And in this time, he does only one thing - interacts with the design of your application.

Design is what the users sees, code is what only you can see. Design works in front of the user, code works in background and is hidden from the user. For a user, the design is the application. That's all he knows.

It doesn't matter how powerful your application is, if only few people can understand it. You have to adapt your work for the user, the user shouldn't have to adapt to yours. 

Most people don't like to spend too much time to use applications. They want to get something done, as easily as possible without giving their mind too much work to do. And to help them in doing so, you've to make sure that they get what they want in the first few screens of your application.

If you lose users in these first few screens itself, they are least likely to use your application again. And that's why design matters. If your users really matter to you, then you've to consider their needs and design the most suitable solution that works perfectly for majority of your users. I say majority of users because it's impossible to satisfy 100% users all the time.

On the other hand, if you can get your users hooked into your app by providing a smooth experience, then they are likely to return again. A good design does just that. It solves a problem in an elegant way, not just any way.

So, if you want to create things on your own, then you should probably spend time to learn designing. And you don't have to read every book on designing. Even one good book is enough to get the right approach. The approach that designers take to make a product simple and useful.

Once you get the basics right, you can continue with your work and make sure that your application follows simple designing principles.

Remember, designing is meant to support programming, not to go against it. If you get this right, you will be more friendly with a designer and respect the work he does, and the role he plays in creating user-friendly applications. You'll understand his point of view and can make an informed decision that'll work best for the product.

Some programmers argue that programmers don't need to learn designing. This may be true if you create things that interact with systems, and not with people. But, if you create anything that needs human control, then spare no effort to learn what good design is. I assure you it'll be worth your time.

share this on : twitter | facebook | google+