Designer == Coder

lots of folks have been talking about how designers need to learn how to code. i agree, but also: should developers learn design principles?

There should always be a little cross-training in every industry. It improves communication and mutual respect. A serious UI/UX designer isn’t trying to just make something “pretty.” More like, “pretty awesome.” (Heh!) But experts should be left to do what they do best: design experiences or code the backend. Very few can do both equally well. One of the complications is that on the web, there are no decent design tools. On the Web, design is CSS. The code is the design control. Instead of a paint bucket with red as the color, you have to create or specify an HTML object and give it this property:

background: #c00000;

And in order to “paint” on an HTML canvas, a designer needs to know some code to get it done. I don’t think anyone should expect a UX designer to code advanced queries and JavaScript. But he should be able to clearly describe the user’s needs and expectations, and understand the capabilities and limitations of every technology — just as an established print designer knows some paper types have better color reproduction than others.

When I interned at the Naples Daily News in 2006, I designed newspaper layouts as a copy editor. The layout software we used was code-based. Every headline, byline, photo caption and article text had to be set with special codes not unlike HTML. I had an epiphany later on, thinking back on this experience while I was dabbling in advanced CSS: Programs like QuarkXPress and InDesign merely removed the coding aspect from design. It replaced markup with buttons and toolboxes.

Today, when I “design” a website, I often think in desktop-publishing terms: image boxes, text boxes, headlines, paragraph styles, all of which have either CSS or HTML equivalents. A “div” for example can be practically anything, either a text or an image frame, depending on the CSS. Similarly, when I draw a box in InDesign, almost anything I can imagine can be placed inside of it. Because I understand how a CMS works, I can also imagine divs and other objects as “placeholders” for dynamic data, like a list of headlines.

It is therefore not hard to imagine better design tools built for the web that are as powerful as InDesign is for print. In fact, Adobe Muse strives to offer this very thing. All it’s missing is the ability to integrate with content management systems, which can’t be too far away. After all, InDesign itself has XML import/export capabilities and can do simple data-driven documents out of the box (a glorified mail-merge), but even more is possible with InDesign plugins.

In other words, someday soon, designers can get back to strictly designing* and coders back to coding.

*Of course, another roadblock is browser compliance with HTML and CSS specifications. Browsers need to be as predictable as a PDF reader. A document creator should be able to use standard tools and create something that he is reasonably certain will be represented the same way across all browsers, operating systems and devices, just like today’s PDFs.

One thought on “Designer == Coder”

  1. Well said! One of my hobbies since I no longer participate in society (work) is looking into the vast area of web development technologies especially those in the web application arena for desktop and smart phones. The tools are migrating more and more to eliminating ( really just hiding) the code aspect and allowing the designer/developer to concentrate on the problem. Unfortunately, these tend to create some significant bloat to the foot print of the application. This is what some coders resent as it lends to difficult maintenance and changes outside of the IDE environment. So this requires a commitment to some development stack (WebMatrix, Visual Studio, iWeb, Dashcode etc.) which goes against the “open” grains.

    Modern web development practices have blurred the boundaries of the typical designer/developer paradigm. Most enterprises are not going to fund separate positions to maintain this separation and therefore, that is why we are seeing this blending of talents. It makes it a challenge for those “old plumbers” to grasp the concept of building satisfying human interfaces as well as install the pipes and todays designers are interested in developing kick-ass interfaces without code. The programming paradigm in my day was very distinct in that designers/developers did the analysis and design and producing technical specifications which in turn are used by the programmers to develop a physical implementation. That no longer exists in this day of design-on-the-fly and agile methodologies.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s