Why Design is Important for Software Developers (and more…)
Written by: Michał Ciuruś
When I decided I wanted to become a programmer I knew who I had to become: an introverted geek, closed in his basement, seeing 11101010 everywhere, without any sense of style and creativity.
When I started studying computer science I noticed that the stereotypes are very much far from the truth.
When I started working I was sure that it’s completely broken.
Programmers are actually required to be very easy to communicate with and be very creative in all sorts of fields — not only computer science.
It’s very common that developers have to talk to clients directly. Translate business rules, negotiate — basically be a project manager.
It’s even more common that developers are asked on advice on user interface and user experience. Not something they teach you at Programming 101 at your university, huh?
Scientist / Designer / Manager = Software Developer
UI in programming was not always the focus. Actually, for a long time, it was very, very simple: just lines of text called the command line. There wasn’t very much to design and programming was mostly about coding. Obviously, interfaces today are much more complicated and elegant — it’s one of the biggest factors in retaining a client. Just look at the very page you’re browsing at and ask yourself: would you read this article, if Medium didn’t have such pretty design?
UI is very strongly coupled with code, so it’s only natural that programmers need to be UI/UX savvy — or is it ? Shouldn’t designers be in charge and programmers should only copy from designs they receive? Let’s see:
• UI is strongly coupled to code — Every UI framework has specific guidelines and best practices. It’s the developer that’s master of that knowledge. Most of the times the developer will have to keep an open mind when implementing a design to make sure it follows the standards. Maybe there’s a better, fresh approach being discussed in the community? That’s where creativity comes into play — developers are expected to give advice on interface design. Do not ever be afraid to talk with your designer and discuss a change.
• Not everything is explicit — programs have a lot of states. It’s not efficient to include all the states in the design. It’s up to the programmer to forsee all possible states and come up with the best solution. This requires a good UI/UX taste.
• Animations — Designers can’t be expected to design all possible animations in a project. Developers should be aware of latest hip animations they can use in the project. It requires a very good sense of style — it’s very easy to over-animate.
• “Hey, do you have a second?” — Let’s be honest, if you run to your designer with every problem you have and interrupt them they’re going to hate you. Don’t be afraid to ask, but most importantly don’t be afraid to experiment and improvise!
• No designs — Sometimes you’ll be expected to create designs on the fly! What if the designer is having a blast on Maui and you have to deliver that new screen tomorrow. It does happen.
• People will ask you for your advice — It will happen. You are the master of your domain, you have to have a strong opinion. It’s a sign of a good senior developer, that doesn’t need any supervision.
Keep yourself in the loop
Here are some tips that’ll help you in keeping your UI/UX instinct sharp:
• Graphic Editor Programs — You have to learn to use at least on graphic editor program. It’ll allow you to measure pixels, colours and extract assets.
• Keep yourself in the loop — Browse designer communities, like Dribble. It’ll keep nice ideas and animations in your head.
• Try other programs — Download apps even if they don’t interest you — it’s a very good idea to see what fresh ideas you can draw inspiration from.
• Be active in the community — Sign up for newsletters, use Twitter, or Reddit to find out the newest libraries.
• Read books — There are a lot of good books on UI design
It doesn’t come free! You have to spend a lot of time fixing margins, colours, and animations… until you learn to get it “right”. Trust me, it’s very much worth the time. It keeps the client happy, project nice and fresh and prevents designers to be overloaded with mundane tasks.
If coupled with project management skills, it’ll make you a very popular developer.