Can Designers and Developers Work Together?
Last night I was involved in a very interesting discussion about design and development. I serve on an advisory board to the Graphic Design department at our local technical college. I was asked to join the board because they wanted a programmer's perspective. Throughout my career I've observed a tenuous relationship between designers and developers. It reminds me a little bit like cooks and waiters at a restaurant. If the costumer isn't satisfied, the cooks blame the waiters for lousy service, and the waiters blame the cooks for lousy food. Likewise, cooks might get the feeling that waiters just make their lives difficult. While waiters might think that if the cooks were a little better, they could make a lot more money. In technology developers often feel like designers really complicate things, while designers might dismiss programmers as not capable of implementing their concepts. Also, I've seen cases where programmers simply tell designers 'it can't be done' without even trying to implement a certain concept. I've also seen designers come up with some very uninformed concepts.
Another interesting dynamic between designers and developers is that for some reason it's very unusual to find a person who is good at both. It seems like designers are 'right-brained' and programmers are 'left-brained', and there's few and far between. If this is true, then there is little choice but for us all to figure out how to achieve a good working relationship.
I might be in a good position to offer such advice because, although I am a programmer, I consider myself a designer. The truth is that I wanted to be a designer, but my visual skills are not great (even after earning a degree in Studio Art!). I feel like I can empathize with designers. I know how important the details are to them. I really appreciate good design, and I especially appreciate working with people who are good designers.
So here is my advice to programmers: Let your designers know that you will do your very best to bring their concepts to reality. Understand that they have probably been encouraged to think outside the box, and that this is often how great innovation happens. The thing I like about working with good designers is that they will make me become a better programmer. I've often seen a design and wondered to myself, "how the heck am I going to do that?". If you are pushed out of your comfort zone, and you can come through in the end, you will appreciate the designer for helping you become better at your own craft.
And my advice to designers: Make an effort to learn about the box that developers are often forced to live within. Building applications that work well in various browsers and devices has become astronomically difficult over the years, and the harsh reality is that it's not realistic to believe that any concept can be brought to reality (especially when we all have to deal with tight budgets and deadlines). Also, striving for simplicity will endear you, not only to programmers, but also to the people who matter most, the end users.
Apparently, DBAs and Storage Admins also have a complicated relationship, according to this artice.