How to work with a designer and not die trying (as a programmer)

It takes two persons to make a website, but these two have a very difficult relationship.

Patricio Pitaluga
Aerolab Stories

--

It takes two to tango and it, definitely, takes two to make a website. Nowadays, the web development business requires collaboration of professionals from other areas, but these two, have a historically difficult relationship. I’m talking about, of course, programmers and designers.

Nowadays the line between designers and developers is a little blurry. Many designers also know some code, and a lot of programmers have a design background, but the amount of commitment that any of those two areas need, usually requires to specialize in one task or the other.

Designers sometimes think about programmers as cold square-headed nerds (even programmers think about ourselves like that, so why shouldn’t they). Developers, on the other hand, see designers as whimsical hipsters with too many artistic pretensions.

But let me tell you something, my fellow programmers: you wouldn’t want a world without designers. You wouldn’t even want a web without designers. The user experience begs for the designer touch. Have you ever used a piece software with lack of love in the interface design and thought “this was obviously designed by a programmer”? So let’s face it: the internet needs designers. So what can we do to make the most of this partnership?

Clearly Designed by a programmer

I’ve been working alongside designers in web development for almost a decade. These are a few advices that I can give to programmers. Hopefully, they will help to lubricate the coexistence with designers:

1. Respect the designer’s work.

Design is a lot of hard work. Don’t ever think about the designer’s job as a lazy game. The amount of knowledge, technical abilities and hours of dedication that a designer invests in a project, is often head to head with the amount of work that the programmer will do.

2. Don’t compete with the designer.

Think about the designer as your teammate, your sidekick, your adventure companion in the quest to find the better solution for the project needs. If the project works out well, it’s thanks to both of you. Share the success.

3. Try to participate in the full development process.

Programming is not the last part of the web development. Yes, code takes place at a particular time, but the programmer’s work shouldn’t be limited to that. A developer can give a technical frame to the full project from the first meeting with the client to the last toast. Even in a pure creative stage of the project, a programmer can add a lot of ideas to a brainstorm.

The programmer is not just a “code writer”, but a problem solver specialized in technical knowledge and logical thinking. I know, this is an utopian longing, most of the times, the programmer is called to join the project only to deal with the code when a lot of the design have already been done and approved. Even when that happens, put your effort into participating with an holistic point of view. Your code should reflect that kind of commitment and not a strictly technical interest. There’s a lot of design decisions to take when coding that only a programmer will notice and can evaluate.

4. Communicate clearly.

The most important language that a programmer must know is… English (or your native language, or both even better). Then understandable nice-to-read English, then polite and friendly English, then and only then… Javascript. The more clear you can speak about what you need from the designer, the most useful the exchange of material will be. Tell the designer what specs he should consider when designing. Tell him (or her) what things can and can’t be done or will be difficult to work out, and always explain the reasons why. Don’t be arrogant because you know stuff. Remember, that’s exactly why you are in a team in the first place. Both of you know something the other doesn’t. Make the designer your ally by making he understand what you need.

5. Trust the designer’s judgment.

Sometimes it’s hard for us to imagine how a web page will look when it’s finished, just by looking at some sketches. Designers have a trained eye to foresee that kind of things. If you are not sure about the final outcome of a design but your teammate is enthusiastic about an idea, try to trust their vision.

6. Know your role in the project and be flexible.

Programming is a satisfactory activity itself. Even if your participation in the project is small, you can be happy about it if it’s done correctly. But sometimes the project requires a little more of you. With your experience, your common-sense and creativity you will have a lot of ideas that you can add to the project other than code. If the designer seems to appreciate your opinions, then be free to share your point of view. If this particular project doesn’t allow you to add nothing but some coding, then enjoy that as well. Code is always awesome.

7. Be professional and trustworthy.

Be honest about what you know, what you don’t know and how long will take you to get something done. Don’t rush to talk about time and possibilities if you are uncertain. And if you have committed to deliver your work on a date, work your ass off to get it done. If you are overwhelmed, tell the rest of the team about it and ask for help. If something goes wrong and it was your fault, take responsibility. Be always learning how to improve your programming and maintain your code clean and organized (as much as possible). Most of the time you will be the only one capable of understanding the code, the full file organization and the scalability of the project. Take that power with a serious attitude.

8. Don’t worry about re-doing your code.

If you love coding, then why get mad if you should code some more? Don’t think about your code as written in sacred stone that should never be erased. If a design decision requires you to delete some lines of your code, then do it without complaint. Don’t be a whiner, your job is to find the best solution, no to force the situation to fit with the solution that you had already taken. Believe me, the world will be a better place without some useless code that don’t do what is required, even if is your beloved code. Delete what is no longer needed and move over. Only be sure, from start, that your work will be paid fairly or that the project worth the effort.

9. The designer will not understand the totality of your work (and he doesn’t have to)

Not that he is not smart enough, is just that the code have a level of abstraction and details that is, sometimes, unembraceable even for us. Don’t expect recognition and applause for every clever line. Surely, part of the designer’s work also goes unnoticed and you are not understanding how he took the design decisions. Think about yourself as a ninja. You will be invisible, but you’ll get the job done. A programmer is the hero that the project deserves, but not the one it needs right now.

10. Find your best partner.

Of course, if you ever find a designer (or a team of designers) that you love working with, then invest in that relationship.

I’m lucky to have found a team where the work of designers and programmers flows smoothly, and that is something that, experience has taught me, I have to appreciate very much.

Show some respect for your designer co-worker, tell him how much you appreciate his job and how necessary it is to work together in a friendly way, and above all: be humble, be nice with other people, be professional and program with passion every line.

--

--