Here’s a question that has been talked about many times, usually resulting in both sides coming away feeling angry and misunderstood. Why can’t programmers and designers get along?
Now, obviously this isn’t always the case, there are many examples of programmers and designers working together to create beautiful products. As a web designer and entrepreneur I work with programmers quite often and the particular ones that I work with have always been great. Even if designers and developers often work together successfully, there is still the stereotype that programmers and designers can’t work together.
With some insight as a design student finishing up my senior year in a Visual Communication Design program, I believe that a large part of the fault for this problem lies within the design and development educational system through which many students get their start.
What’s wrong with the system?
The reason that I believe there is such a bad attitude between designers and developers is that—just like other prejudices—we are taught early on not to respect each others’ work, processes or discipline. A good example of this is a personal experience that I had during one of my classes. While working on an iPhone app, a student asked the professor, “How would someone go about coding this function on my app? Wouldn’t it be too complicated?” The professor responded by saying, “It doesn’t matter if it’s complex, wherever you work there will always be a programmer who can fix it.”
Throughout my schooling I have heard this kind of thing many times; that we should just design and not care about the back-end functions. This couldn’t be further from the truth, and anybody who has worked on a real-world project would know this. Yes, it is possible for developers to make things work in amazing ways, but just assuming that it can be done and not considering the timeline, project budget or personal sanity of the poor developer working on the project is wrong.
On the opposite end of the spectrum, we see just as much disdain from developers for the work that designers do. For a long time it was the norm for the developers to make the product and designers to put a “skin” on it, basically only affecting how the product looks. This is no longer the best practice, as it is becoming more commonly accepted that designers do not just provide the look of a product but can also contribute to the entire experience and interactivity of a product. The idea that designers exist only to make things “look pretty” is just as much of an insult to our discipline as is the idea that developers only exist to “make things work”.
The idea that designers and developers should work separately is a backwards way of thinking that leads to many products that complete their function but are such a pain to use that the product fails. A good case study to look at as an example of this is the newly released Windows 8. Many designers were excited, exclaiming things like “Microsoft is finally embracing design!”
And while the Metro style is certainly a step in the right direction, the operating system has received many bad reviews because it functions poorly, which to me, points to a disconnect between the form and the function of the product, which ideally should work together seamlessly. Designers, and especially user-experience designers, should be involved with programmers from the beginning of the project to help guide the product’s evolution into an easy to use, as well as functional tool.
How do we fix this?
As I mentioned earlier, one of the main reasons for the negative attitude between both parties is prejudice against the others’ discipline. Just like other forms of prejudice, this is based off of ignorance to each other’s craft. I propose that a small portion of our education should be spent learning more about the role that each side plays. In my school program, we spent a lot of time learning illustration and photography even if we didn’t intend to go into that line of work just because it is relevant to our field.
Why shouldn’t we do the same thing with learning about development? Even learning the basics of HTML and CSS — which to be fair, my program did teach — would be a step in the right direction and foster empathy towards the work that developers do. Again, looking at the opposite, I believe that developers should also take one or two design classes. With many employers in this field seeking people who know both design and development, learning a bit of both fields can only help us as professionals.
The second major way that I believe the education program is hindering our chances to grow as designers and developers is by not creating more opportunities for collaboration while still in school. During my experience in school, I never once was able to collaborate on an interactive project with someone from another discipline. Given how much we learn about group projects and the importance of working successfully within a team, one would think that we would have more opportunities to work with developers.
After speaking to several friends who are programmers, they have said that similarly, they were never able to work with designers. The idea that we shouldn’t be exposed to each other’s processes and work is ridiculous given how interwoven our professional careers will be after graduation. If you look at any other two professions that work together on a regular basis, they will nearly always have had experience working together before leaving school, or at the very least basic knowledge of the other’s work.
Having no collaboration during an interactive project is like having a house built by a contractor that refuses to speak with the electrician, it just won’t turn out well.
Throughout my schooling the only time that I worked with developers was during my own personal projects and entrepreneurial endeavors, as I was lucky enough to have several friends that are developers that were also interested in working together. Only by working together with my developer friends was I able to start a business with my fiancée called The Warehouse, which provides downloadable resources for designers. Many of my classmates do not have the good fortune to have had developer friends and they’re classwork and personal projects often suffer as a result.
How do we fix this?
The obvious way to fix this is simply to have more chances for collaboration between computer science classes and design classes. Cross-classroom projects would be a great way to teach students to work with other professions in a team environment, and they would be able to create a product that actually works! What more could a professor ask for?
Another option that I have seen successfully implemented in a couple of other schools is a designer-developer workshop that takes place over a weekend and focuses on small teams just working to create something cool. Similar to 48-hour film competitions, students get together and work straight through the weekend to create the best product they can in the given amount of time. This type of real-world collaboration is exactly the type of work that professors so often preach about the importance of but so rarely deliver on.
While there are already many designers and developers that dislike working together, the relationship between us both is rapidly getting better—if for no other reason than necessity—and I believe that it’s certainly not too late for the future, but the only way we can keep the progression that is by implementing a more sensible stance towards our education system and how we work together early-on.
What do you think?