Recently at a UX conference I heard a speaker preach "designers must love developers"—that we must break the barriers and reach out to these maligned souls who develop our applications.
Designers ❤ developers, but do developers ❤ designers back?
I've often heard this "designers must love developers" slogan evangelised, but today the reverse is where the real preaching needs to be done. "Developers must love designers" is a slogan I never, ever hear and I think love for designers is sorely missing from developers in general.
I believe this lack of love stems from two things that happened during the early days of the web. Developers and engineers who had been working on "proper" software for years, sometimes decades, turned to web development for new opportunities.
Suddenly they were confronted with hordes of "web designers" flocking to the promise of easy riches. Anyone with a Dreamweaver trial from a Computer Arts CD was messing around with code and essentially cheapening their once-sacred craft.
The other was the unholy union of the print designer with the web. These were designers in the "proper" sense of the word, or so they thought, and here they were, forced to share the trenches with—ewww— software developers, the great unwashed masses of computer geeks and nerds that they had gone to art and design school to avoid. So of course they treated developers with contempt, which only made matters worse for the developer / designer relationship.
The truth is that back in those dark, early days of the web, when "love thy developer" was only being whispered, some of us were already sympathising with this “great unwashed”. Hell, by being a “Web Designer” who was willing to get my hands dirty in HTML and CSS on a daily basis I was treated with as much contempt by designers as developers were.
So much so that I took it upon myself to learn as much as I could about the heavy duty stuff, to understand what developers were dealing with, and how they worked. If we were gonna be banded together, I thought, then lets at least understand each other.
For about a year and a half I immersed myself in the world of Java, PHP, XML, SQL and a bunch of other acronyms, long enough for me to understand that it was too difficult for me, that my talents lay elsewhere. But I had achieved my goal, I understood enough to have a massive respect for what developers do.
But all this was during the aftermath of the .com collapse, when the gold rush web designers disappeared. There were no more easy riches to mine with that outdated copy of Dreamweaver and that once-cool haircut. Those of us that stuck with the web weren’t glory hunters, we loved what we were doing. We had to be passionate about it because we sure as hell couldn’t have been doing it for the money.
What's more, of the ones that were left, I was not the only one to have learned some development chops. To survive, many of my “designer” colleagues were learning, or had learned, enough development skills to really understand it, and to be able to respect the constraints and possibilities, so the way they designed improved massively!
We learned how to design solutions that took advantage of what the software could do, and worked around its failings. As the maxim goes, form was now truly following function. And this heralded the birth of Web 2.0.
Nowadays, most kids coming out of design schools have been exposed to programming in some form or another. They know what APIs do, they know the acronyms and have learned to tinker with technology to a degree that previous generations never have. They are taught to be T-shaped, to be self-reliant and inquisitive. Hell, kids coming out of art college are creating algorithmic art using tools like Processing and coding their own Arduino interactive installations! If that's not empathy for developers I don't know what is.
But no one is teaching software engineers to "love thy designer". A lot of them still believe design is just about drawing pretty pictures, and I have even heard designers be told "I could do your job, but you could never do mine", for real!
I recently spent months crafting the interface for a specific piece of software, at a stage where the software team was working on building the infrastructure for this interface. Standard sprint zero procedure. The design was well considered, with many iterations of prototypes and user testing to make an interface as perfect as it could be. Then a couple of sprints after delivering this lovingly crafted design, I was presented with the implemented software, and it looked nothing like what had taken painstaking months to design. It looked dreadful! Worried something had gone horribly wrong I asked the software engineer in charge why this was so, his reply? "I didn't like your design, so I changed it." Boom, just like that… I was stunned.
As far as I know, there are no design appreciation classes at engineering colleges and thus no way for engineers to learn about the tremendous amount of effort and passion that goes into designing something really good.
Here at ustwo™, we’re lucky that the designers take a huge interest in the development side but equally that we have a policy of hiring design savvy developers.
We have asked for and attended workshops by our developers about the tools they use, and even asked them to help us install SDKs so we can learn more. All of the designers here have learned from the software team to work in an Agile environment, and we love it!
And similarly, while we don’t ask for developers to be as well versed in Photoshop as they are in Obj-C, all of our developers respect our reasons for pixel perfection, our propensities for insisting on difficult-to-implementtransitions and persistence in wanting to improve framerates!
The fact is, great code needs great design in order to deliver a great product or service and vice versa. Developers and designers can’t create great work without each other and a little bit of empathy goes a long way.