Macadamian Blog
How Designers and Developers can Work Together
One thing that we're proud of here at Macadamian is that our design and development teams work very closely with one another. Like I said in my previous post, it helps us make better products more quickly, and have more fun while doing it. But something that I didn't cover then was how we make this relationship work. Having worked with many of our designers on a variety of projects, here my advice:
1. Learn the basics of each other's domain.
I like to describe this as tolerance.
As a developer, how much design-talk can you tolerate before you no longer have a clear idea of what is going on? If you zone out as soon as you hear the word serif, you'll never understand why the default font your IDE spits out isn't a good match for your application, and your designer will waste time explaining it to you over and over. Pick up a book like Design for Non-Designers, which covers the basics of fonts and layout, and a book that covers the basics of UX design, like Don’t Make Me Think. Ask your designers lots of questions – most will be happy to explain their craft.
As a designer, do you know which browsers the project is targeting, and which of those might cause trouble for your design? If not, this can be a point of frustration for your developer as he struggles to get your beautiful gradients working in IE6. Make sure you discuss, early in the project, the technology strategy and which platforms you’ll be targeting, and find out from your development team what limitations, or opportunities, the platform will provide.
A minimal understanding of what the other team is doing is crucial to communication. It allows you to ask meaningful questions, which will get you answers sooner and help you get back to work faster.
2. Learn each others' work habits.
Let's face it: designers and developers are different groups of people. Even in a single company, there are probably customs internal to those teams that only they know about. You don't have to become an expert in everything the other team does, but it does help to know about how they like to communicate.
Find out which channel your developers are always in. Do they spend all their time on IRC? Are they constantly logged in to Skype? What about your designers? Do they do everything via email? Or is it customary for them to meet in person? Make sure you always know where to find each other.
While you're at it, figure out when and how often communication should occur. Maybe everyone in development takes a late lunch, or the design team does design reviews in the morning. Scheduling meetings at these times is inconvenient, and urgent messages sent at these times might not be answered right away.
By understanding when and where to reach your colleagues, you take scheduling and communication hassles out of the picture. This helps everyone stay focused, and keeps the work on time.
3. Learn each other’s needs.
It's naive to think that the deliverables outlined in a spec represent everything designers and developers need from one another. Just as there are "soft" requirements that don't need to be outlined in a proposal, like "the code will be maintainable" or "the design will be aesthetically pleasing", the designer-developer relationship has soft needs.
As a developer, I like to see the design as early as possible, even when it's still very rough around the edges. It gets me excited about the project, and already I can get a sense for what tools I'll want to use and how I'm going to structure the UI code.
Similarly, I've realized that most designers like having access to a live deployment, even while it's still in development. Sometimes they offer corrections, and sometimes they just find it exciting to watch their design come to life.
While it's difficult to measure the output of fuzzy requirements like these, they really help keep everyone on the same page and pushing for the same goal. Interactions like this are the secret tp that little extra pizzazz that makes a good product into a great one.
Remember, this takes time.
It's unrealistic to get all of this right on the first try. Building an understanding of context-specific needs takes a lot of interactions and a lot of experience. The key to learning how designers and developers can create great products together is just that — a learning process.
By taking it one step at a time, and striving to learn more about one another’s' domain, work habits, and needs, you'll gradually create better, more beautiful products, and you'll do it faster and more easily than ever before.