In a thorough and well-thought-out article published on Tuesday, Andy Rutledge listed what he considers to be the essential skills and knowledge for a web designer; this list is notable not only for what it includes — namely, a masterful distillation of just what it is that a web designer should be able to do — but also for what it explicitly excludes:
Note also that nowhere in this list do the words “Photoshop,” “Illustrator,” “Dreamweaver,” or “Fireworks” appear. As I and others have observed plenty of times before, tools do not make a designer. Anyone can learn to use Fireworks or Dreamweaver in an hour or less, but nobody can be a competent Web designer unless they possess a foundation in the things listed above. Choose your own tools and learn to use them, but don’t let the tools define your abilities; tools won’t create a place for you in the profession.
He also links, in passing, Jeff’s article from late last year on this very topic.
Meanwhile, in a comment posted on a recent article here, the commenter (Don Ulrich strikes again!) asserted that
Anyone can find things wrong with any language but learning to work within the language is the mark of a developer. Developers design applications web designers literally hang curtains .
I’d love to be able to treat this as an isolated incident, but unfortunately I can’t. It’s always existed, but recently an ugly trend of web developers denigrating and even outright insulting web designers has been coming on rather more strongly than usual. For example, a couple of posts on the 37Signals blog (Why we skip Photoshop and Web designers should do their own HTML/CSS) kicked off some fairly vicious comment threads around the web-dev world. Here are some example quotes, culled from reddit:
Some random Photoshop fanboy is invariably hired, who depends on continued employment by using the wow-factor.
(source)
Explain to me how that is helpful to good software development. I am the one maintaining the site, I want to be working with my code.
(source)
That’s like saying when you hire a guy to design you a new mansion you expect him to be able to put up all the walls himself.
Web designer != web developer.
(source)
I don’t want graphic artists messing about with HTML, that’s my job.
(source)
I could go on with the quotes for a while, but it’s depressing and you probably get the idea by now.
All of this has me thinking about a few questions that I’d like to explore:
To get started, I’d like to take a look at that first question; the other two I’ll look at over the next few days in separate articles.
If we’re going to talk about “designers” and “developers” as separate groups, I don’t think we can lay the blame for the current level of intra-industry infighting solely at the feet of either one; rather, the fault lies partially in both groups. Or, more accurately, I think the fault lies with the fact that we — both designers and developers — represent a pretty big continuum of knowledge and skills, and that those of us who are competent in the areas typically associated with one group just love to sneer and make ugly generalizations when we encounter someone from the other group who’s not quite up to our level.
We’ve all met or had to work with “designers” whose qualifications consisted of doing an online Photoshop tutorial, and we’ve all met or had to work with “developers” whose abilities just barely extended to filling out the code-generating wizards in their IDEs. Even worse: the least competent people are the ones most likely to overestimate their own abilities, leading them almost inevitably to step on the toes of someone on the other side.
Our industry is teeming with these folks, which is massively unfortunate. But even more unfortunate is the tendency in each group to generalize and form stereotypes based on caricatures of the other group’s lowest common denominator. From there it’s an easy jump to bickering and insults (e.g., designers just “hang curtains”), and each side — if pressed — will probably fall back to that old standby: “they started it!”
That sort of thing got old when we were on the playground in grade school; these days we’re not only adults but — allegedly — professionals, which means the kiddie crap needs to go.
And speaking as a developer — lacking any good definition of what that means for now, I’ll just note that it’s the title my employer put on my ID badge — it absolutely disgusts me to see these sorts of petty jabs targeted at web designers, especially when you consider how much they’ve done for us and how much we’ve resisted it.
Pop quiz number one: in January of 2008 an influential industry player released a new tool, advertised as a fully modern, state-of-the-art system which treated Web-based interaction as a first-class citizen, but it was built from the ground up to use HTML tables for layout. Did it come from:
Pop quiz number two: for most of this millennium, a group of (fill in the blank) have been steadfastly and patiently dragging this industry, including (fill in the blank), kicking and screaming into the 21st century or, failing that, at least something in the neighborhood of the published standards of 1999.
Answers: Paul Graham, hacker extraordinaire, is the man with the table fetish, and for the past six and a half years it’s been a cabal of designers who’ve carried the banner of modern technology and done their best to drag developers along for the ride.
Although it’s true that the web-design community took some time to warm up to the idea of a brave new standards-based world, that’s nothing compared to the level of heels-dug-in resistance you’ll still find today among “professional” web developers who’d rather die than learn a little CSS. And you know all those cool things the browsers are supporting these days? You know how now we’ve got a pretty solid baseline of compatible features and techniques to work with across all the major browsers? Guess who we developers have to thank for it?
A coalition of web designers who took some time out from hanging their curtains to give this industry a kick in the pants, that’s who. Yes, there were early adopters and major figures on the developer side who pitched in, but if you take a look at the progress that’s been made over the past few years you’ll find that it’s largely been the web designers who’ve taken up the cause and fought the good fight to get us where we are today.
So it’s high time we all got over our little internecine feuds and started acting like the professionals we claim to be. That means learning to work with with our colleagues, no matter where they fall on the spectrum of specialized industry knowledge. That means learning to educate each other — without looking down our noses — and concentrate on bringing everybody up to a high level instead of letting pettiness and infighting drag us down. And that means accepting the fact that whichever group we naturally fall into, we’ll always have something to learn from the folks on the other side.
I’ll freely admit that I’ve been unbelievably fortunate when it comes to working with knowledgeable people; we’ve had so many people on staff who’ve written well-received books that you can literally use a stack of them in place of a laptop stand, and so I expect people will want to dismiss what I’m saying: after all, I don’t have to work with a bunch of idiots, so it’s easy for me to just tell people to respect each other, play nice together and all that.
But you know what? None of the folks I’ve worked with were born with any sort of domain expertise, and neither was I; good web designers and developers don’t spring fully-formed from someone’s forehead like the gods of old. We all had to start out somewhere, sometime, as clueless newbies and work our way up, helped along by people who shared their experience and their knowledge. A few months ago when I explained why I don’t run ads here, I tried to explain this curious feature of our industry:
And part of the reason is the simple fact that I am where I am today because of people who shared their knowledge and experience, for free, with anyone who was willing to listen. I didn’t learn programming or web development or anything directly related to my craft from a formal process; I learned it by reading and tinkering, and by asking questions and getting answers from people who are smarter than I am. And ever since I got into the Web in earnest, I’ve consistently been astounded by the ongoing willingness of its experts to openly give away their expertise, pro bono publico in the truest sense of the phrase.
If we’re going to make progress, as an industry, this is the only way forward: no matter how much you may hate or love to complain about the Photoshop fanboy across the hall, no matter how much you may hate or love to complain about the point-and-click “programmer” in the next cubicle, you have to accept a few things:
Stay tuned over the next few days for part two of this series: Division of Labor, or, “Whose Job is This?”
Comments for this entry are closed. If you'd like to share your thoughts on this entry with me, please contact me directly.
James, among many of your posts that have enlightened and entertained me, this may be my favorite. Well done.
Feel free to edit this, but that was fucking brilliant.
Thanks for this. Going to keep it near the top of my bookmarks for a while. :)
Thanks very much. Really, really great article for a bunch of reasons… In particular I found “Can’t we all just get along?” struck a chord with me, I really think that this is a critical part of the equation. As one of the silly noobs that has been on the recieving end of advice and help from you and others, I would like to say thanks!
from: http://www.paulgraham.com/arc0.html
I had no idea GeoCities ST:TNG Slash Fiction was tuned for exploratory programming.
In addition to the notion of those least competent being most eager to oversell their competence, I find the inverse equally fascinating. That is, to quote Socrates, “I know that I am intelligent, because I know that I know nothing.”
I’ve spent the past several years admiring the hell out of designers, because they (the good ones, anyway) have mastery of skills I can only dream of. I mean, I’d like to think I’m a highly skilled programmer, but that only extends so far. I just don’t think visually, so design is completely beyond my capabilities.
I used to say things like, “I’m not a web designer, I’m a web developer. I can write the HTML/CSS for any design, but I can’t design it to begin with.” These days, I don’t even say that anymore. Yes, I know HTML, CSS and JavaScript better now than ever before, but I’m increasingly aware of how much better designers can make their visions become reality. I honestly don’t trust myself to make it work the way it was intended, so I’ve stopped trying.
That said, I spend every day reading, learning and trying new things, in a likely-futile attempt to get better at design. I don’t ever expect to be a professional designer (nor do I want to be; nothing against designers, I just really love programming), but I think if I can at least understand them better, I’ll be better at what I do, and how I interact with them.
I absolutely agree and find this business entirely tasteless and unprofessional. Everyone knows that both web designers and developers are worthless - it’s the DBAs that rule the world.
It’s already been said, but I’ll say it again: this is fucking brilliant.
I’d also point out that part of the problem stems from our education system. We are educated in disciplinary silos, where everyone around you has the same skills, the same biases and the same viewpoint, so it’s no wonder that this insularity produces group-think and an over-inflated sense of one’s own importance relative to others. Do business, marketing, design and computer science students ever get exposure to each others’ domains of expertise? In my experience, this is very rare, and it’s a glaring problem.
Well said. There’s just no need for that sort of thing, especially as it’s not going to make much sense to anyone outside either discipline. I keep telling my boss I’m a developer, but I end up spending most of my time in Photoshop discovering that hey, it’s not just hanging curtains. Not that I ever thought it was, of course.
I’ve always tried to take a hands-off attitude on design because damn, that stuff is hard.
A very interesting read!
And what of those of us who sit in the middle of that continuum? I am not the first to suggest that we need a new title - Devigner - so that when these stereotypical conversations break out, we can defend ourselves as not being part of the problem but part of the solution. Our unique status often results in us taking fire from both sides.
Ack - forgot the Markdown style restrictions - The title Devigner should have had a link to my recent post Designer + Developer = Devigner. We who are equal parts pixel pushers and code monkeys :)
Like others above, I just want to lend my “here, here!” A well written, articulate, and thoughtful response to what is indeed becoming a pervasive problem.
Hi, James,
I would say that anyone of any discipline, profession, or avocation might read [_A Mathematician’s Lament_] [http://www.maa.org/devlin/LockhartsLament.pdf] and see the same logical structure underpinning these sorts of issues. To divide web professionals into “developers” and “designers” is to create an artificial differentiation where there is no natural differentiation. This closely mimics Lockhart’s “The Standard School Mathematics Curriculum,” which recounts the artificial procedural units into which mathematics has been cut; just as it makes little to no sense to carve Algebra I as a separate endeavor from Algebra II (and the perfunctory shoe-horning of e and the logarithm), it makes little to no sense to harshly define a design as independent from the development. Maybe the distribution of labor naturally falls a little more densely into “design” or “develop” than math does into Algebra I or Algebra II, but the point stands: while compartmentalization is a useful tool, to embrace such as a reflection of fundamental relationships probably obscures reality a bit.
Maybe this helps a little.
Daniel
While the “hanging curtains” comment was probably intended as a jibe, I don’t think it’s that far from the mark. If I hung a set of curtains, they would be vile. The acid tongued developers just don’t know that their curtains are hideous!
Having (eventually) learned my limitations, I’m desperately scraping money together to pay for a really good designer to make my bootstrap company’s product beautiful.
It’s nice to see someone take the high road on this issue — good job.
Still, I think it is human nature to create conflict where there is none, and we are a very long way off from a utopian ideal. When we can get past the egos we work so tirelessly to build up, and finally realize that it really is more about the work, we might actually manage to leave the playground sandbox behind.
The reasons we can’t “get along” is because designers and programmers are different. To quantify and understand the differences takes wisdom, wisdom takes time and practice.
“Anyone can find things wrong with any language but learning to work within the language is the mark of a developer. Developers design applications web designers literally hang curtains.”
The quote was a metaphor about how each camp thinks. There are distinctions between us that make us storng. Understanding this can yield a better relationship between developer and designer.
Declarative and imperitive thought come into play. Designers are creative delightful people. They are by nature imperitive. Many designers have pointed to designing by committee as being non productive. Programmers on the other hand are declarative and work well in groups. We even have disciplines that help us do this such as Scrum. The differences are many.
Design is the work of a single vision researching influence and need combining spatial elements of their choosing to create something that connects and creates empathy and understanding from each users perspective.
Programming is the work of many voices. Programmers transcribe natural language and other means of communication to a digital medium. This is complex evolutionary work. We do not choose the spatial elements we choose the tools that make the spatial elements of the data work based on cultural need (informatics).
So then we all agree that one side or the other can’t trivialize or rationalize away the work of the other. I can’t assume I know design from reading a book or an article. It takes practice. The same can be said of programming. And XHTML.
Yeah, but…
…the problem with the “hanging curtains” comment is that it shows either a complete lack of understanding of or a complete lack of respect for what design is. Design is not just aesthetic in nature. First and foremost, design is about communication. It’s about conveying a message. It’s about making things that are useful and work well.
“Hanging curtains” is not designing, it’s decorating. Decorating is an important part of any design process, but it’s important to understand that style and aesthetics are only a very small subset of what design is.
Look at it look like: if you were a carpenter (developer), would you ever consider building a serious structure (house, skyscraper, bridge, etc.) without the expertise of an architect (designer) to help? I doubt it (unless, of course, you weren’t only a carpenter, but also a professional-level architect). You might make a doll house (personal web site) on your own, but you’d almost certainly not take on a mission-critical building without that architect in play. Just the same, an architect would probably not dare attempt to construct one of his building designs without the help of construction professionals.
The same should be true for web products, yet we constantly see job ads for “web designers” with qualifications like, “HTML, CSS, PHP, Java, and Photoshop” — none of which have anything to do with design. Where are the job ads that list things like, “communication, layout, color theory, typography, usability, interaction design skills, etc.?”
I didn’t realise this debate was still going on. A long time ago I decided I was a web site builder, and as such would always need some help with the artistic elements of the process.
I suspect a lot of the issues are because we try to label a diversity of disparate skillsets with a single job title.
I think we need to redefine and relabel, so we’re able to appreciate the full complement of skills required, and to realise that for properly built web sites it’s unlikely that one person would have 100% expertise levels in them all.
Graphic designer, html/css coder, programmer, information architect, marketer, customer service, project management, accountant, content writer…
which one of those are you calling a web designer?
James B.,
A interesting piece, and one that makes me a little sad.
I actually find myself having exactly the opposite problem - I’m currently too many hats, and I could really do with a top notch designer in the room.
I think the ‘fight’ in this case comes about due to the fact that a lot of designers and developers tell you they are going to do the same thing - make a website. What they mean by that is ambiguous - they’re talking about different aspects of the project. They shouldn’t be in competition, but they are, due to a language barrier.
If you want top-quality work, you need expertise in a range of skills - development, design, domain expertise, etc., but most importantly, communication. That ties back to your point about “can’t we all just get along?” If you want top-notch product instead of a turf war, stop complaining about the other group, and ask “what can they do that I can’t?”
Currently, I’m a one man show - domain expert, data parsing expert, sys ad, DBA, programmer, and designer on a medium sized project. I get a little support in a couple of those areas, but mostly, it’s just me. One guy can’t be great at all of that at the same time, and design is easily my worst subject. I know when it looks good, but I don’t always know how to get there on my own.
Yeah, I can build you a website. But if you want it to look really good, partner me with someone who knows how to do design the right way.
I think the “designers just hang curtains” comment is a perfect of example of a programmers mentality. Trivializing what designers do. Design is much more than they realize. I have talked with programmers who say things like “you get to play around in PhotoShop all day”. They think that what we do is all fun and games. Sure, sometimes it’s fun and everything flows in the design process. But most of the time it’s a lot of hard work. Countless hours trying different options, lots of sodas and energy drinks, late nights, etc. Sound familiar? Yeah, the process of design and programming are very similar. Both require some degree of trial and error to get things working right. Both require talent and skill to do a good job. Saying designers hang curtains is like saying programmers simply install the doorbell. We all know there is a lot more to building a house that both functions and looks good. By the way, if we agreed on everything we would have nothing to talk about. :)
huh a proxemic effect occurred since I commented last, interesting…
@Jeff - I know many programmers that are excellent architects and planners. Being an architect is NOT mutually exclusive to the practice of design. Both designer and programmer should be at a level playing field. As a programmer an inferior result is obtained when the designer becomes the director this can be fatal. I need access to the same things you do but to ask different questions about their needs. Designers and developers should be equals.
Dug the article AND the wealth of intelligent comments (wow!).
In response to your initial numbered list of questions (e.g., how did we get to this point? and so on), I just had to supply my own (slightly less diplomatic) response:
FWIW - I’m a designer and developer. I’ve held serious developer positions; I’m a fairly hardcore programmer. I’m better at “design” (call it what you will), though. I gave a talk on designer/developer relations at RailsConf last year - http://slash7.com/articles/2007/5/23/rubber-meet-road-railsconf-talk - as my own attack on this particular point.
I’m pretty sure that there isn’t actually very much real animosity between designers and developers in the real world. Its just another extension of the greater internet fuckwad theory, where anonymity allows people to be hyperbolic in their criticisms, and let’s them pat each other on the back when making fun of other groups.
I personally fall more on the developer side, much more comfortable in arrays and for loops than illustrator and css, but I have the utmost respect for designers who consistently produce better looking web pages than I could ever hope to emulate. As always, using the print analogy, its like the graphic designers and the guy who works the printing press (css and php?) - totally different skills, both totally necessary to the success of a publication.
Being a “hybrid type” myself, the more I mature at both disciplines/fields (whatever you want to call it), the more I see the similarities between doing serious design and development/programming.
Some mutual requirements:
Just a few factors by which your craft and professionalism should be measured. Anyone who understands this will have respect for any member of the “other” side who has these qualities, or at least tries sincerely to develop them.
Apropos, I can highly recommend Andy Rutledge’s Design View. Designers (beginners and “pros”) can learn a lot (in fact, I’d suggest they read every single article on that site) about what design is and developers might gain some insight into how a real designer approaches his work.