Summary
I’m a bit scared of putting this out there. I’ve been writing and reviewing it for ages. I think it has reached MVP (“Minimum Viable Post”) level. So here it is…discuss.
- Job titles for people who make the web are being discussed a lot at the moment
- The term ‘web developer’ is vague and more specific terms would be useful
- The term ‘web designer’ is probably also vague
- Web developers should do design
- Web designers should do coding
- Web designers and developers should work together – a lot!
- My experience is that people who are both good developers AND good designers are VERY rare
- My view is that software development and graphic design are very different disciplines that suit different people
- I think that the distinction between developers and designers is actually an important one that we should keep, not throw away.
“I’m a web developer”
“So, what do you do?”
“I’m a web developer.”
“Ah yeah, my [[brother|sister|uncle|friend|dad]] is a web designer”
“Umm, well. I don’t really do design. I’m a developer. ”
This is a conversation I have quite a lot and, with people outside my industry, that’s cool. The distinction isn’t always obvious and I’m happy to explain. But increasingly the term “web developer” is becoming confusing even, I find, within the industry.
I’ve read few articles lately about this topic and at WebDevConf a little while back Jon Gold did an energetic talk on the subject of how full-stack “designgineers” or “devigners” aren’t “unicorns”: mythical creatures that don’t actually exist, and how the developer/designer boundary is a divide created in times past when “operating systems were coded in C++” (or something like that – forgive my mis-quoting) that is no longer relevant.
In addition, there’s been talk in the WordPress community about the new role of CMS “implementor“. And today I was chatting to some people about WordPress “page builders” (like Make, Divi and X) and got into some gnarly discussion where I felt the term “developer” didn’t have a consistent, well-understood meaning.
The issue of job titles is becoming an increasingly big issue. It affects what we put on business cards, it affects how we advertise jobs, it affects how we sell ourselves. If we don’t understand what the roles in our industry are, how can we communicate them clearly and succinctly to others?
The whole debate has raised a few questions for me.
Questions
What does does ‘Web Developer’ mean?
Let’s put design aside for a moment and focus on development: the structuring of and writing of code of one sort or another.
And let’s also be clear: I’m a software developer who just happens to develop stuff for the web. That affects my views on all of this. And let’s be clear about that too: they are just views, not hard facts.
There’s a huge range of different areas in which “code” is used on the web:
- Document markup: HTML
- Styles: CSS
- Front-end program code: JavaScript and its libraries and frameworks
- Back-end code: your PHP or ASP or Ruby or node.js or Python or whatever
- SQL: database queries
- Automation: any scripts that may exist to maintain the website
I’m sure there are more, and already there are grey areas:
- How much dev-ops/server config is a “developer” responsible for? Is that “code”? What about .htaccess rules, for example, are they “code”?
- Is HTML and CSS “code”? It’s not programmatic. Neither is CSS – it’s primarily an expression of design.
- What about pre-processed CSS? SASS, for example, has program structures? It’s still a design language, but it’s now non-linear and has conditions, variables and loops. What is it?!
- What about understanding of protocols? Who is supposed to understand the intricacies of HTTP?
We certainly have a distinction between “front-end” developers and “back-end” developers. There is also the term “full-stack”, but I suspect that that is a scale rather than a tight definition.
For example, there are people who are expert in everything from JavaScript to SQL, but who don’t get devops or don’t have a deep understanding of programming practices . Perhaps some of those people find working with CSS and HTML a chore too? And there are people who understand back-end coding, APIs, networks, and so in in great depth, but who merely dabble in HTML, CSS and JavaScript because they have to.
“Web Developer” in itself is such a broad term for starters, before we even start introducing any other higher-level disciplines like “design”.
Where is the boundary between design/development?
There are certain areas of the website creation process where, for me, it’s not clear if they fit into design, development, or something else. Some of these places are already mentioned above.
But where else are the lines blurred? What about performance, for example? Is that a design issue? Or a development one? Or both? I think it’s the latter. But if it is both then the responsibility is split between both designers and developers. If these are different people then that has huge implications for our workflow and implementation process.
What about UI/UX? It seems to be primarily a design issue, but is UI/UX a visual or a functional issue? Is, say, catering for touch/swipe events design, or development? Of course, it’s a combination of both again. If development and design roles are split, this complicates matters. Or maybe it’s a totally separate specialist role?
Should/do designers develop?
This seems like an almost-rhetorical question. You might say “of course designers develop – I can show you LOADS of designers who write code” and I don’t doubt that at all. I totally agree that designers do develop. And, actually, I think that they should, because understanding code helps designers appreciate the limitations and opportunities that code gives them.
But being a developer is more than just writing code: it’s structuring code, understanding patterns, making code efficient and maintainable. Can and should designers do that?
Given that the role of developer could include writing SQL, crafting automation jobs, server config. Can and should designers be responsible for those things too?
I’m really not wanting to generalise. I’m sure that there are designers who can do all of those things to an expert level. But I suspect that the deeper you get into code architecture and systems stuff, the more designers tend to drop out.
Should/do developers design?
This, for some reason, seems less of a rhetorical question. I see LOADS of designers who write code but most developers I know REALLY struggle to do design well.
But I think that it’s also essential that developers understand and are involved in the design process. It will make them better developers!! And I’ve already stated in the sections above that there are lots of places where roles overlap and developers and designers, if they’re not the same people, need to work together.
An opinion
I’m actually scared to put this opinion out there. I want to make it clear that it’s an opinion. It’s not based on evidence, but it is based on other things that I’ve heard before, and on what I observe in the world and work that I do. And I’m open-minded about it. But I wonder what others think as well.
I think that really good designers don’t make good developers. And I think that really good developers don’t make good designers. I think that they are separate and quite different disciplines that suit different types of people.
Yes, of course you get “polymaths”, people who are brilliant at both. But I think they are very rare. Not “unicorns” but, perhaps, “tigers” or “rhinos” (no offence intended!). I’ve certainly never come across one.
And yes, they should, most definitely, understand what each other does and work together to complement each other’s skill sets.
And yes, there are people – lots of people – in that middle ground who do both development and design, it’s just rare that someone is really good at both…
…or, and I think this is even more crucial…someone that is quick at both, and that enjoys both.
I actually think that it’s better if people specialise in one or the other thing because they will be quicker at it and they will enjoy it more.
So while I think it’s useful to critique job descriptions, and that people in the web development community need to be better at communicating our skill sets both to each other and to the world, I also think that it’s really important not to include the job of designing as part of a developer’s role, or developing as part of a designer’s role.
I don’t think it’s safe to assume that a “web designer” writes code, or that a “web developer” does design. And, more than that, I think that the developer/designer distinction remains important.
I? Me? I’m a web developer. Well, like I said, I’m a software developer who just happens to develop stuff for the web. I’m primarily back-end. I don’t like JavaScript. I love data modelling. I know good design when I see it, but I’m not visually creative. I know how a processor works at the very lowest level and I know how compilers/interpreters work and this helps me understand things like operator precedence and bitwise operators, and it helps me write good code. When I get the chance. Which isn’t always. I know how HTTP, DNS, TCP/IP and ethernet work. And I like to think I’m pretty good with clients. I love open-source but I use a Mac. I’m fascinated by psychology and human-computer interaction and the philosophy of maths. I understand pivot tables. I sometimes drink coke and beer, but not often. I drink coffee often. I’m learning to sketch. I hate cats. And I’d like to be, but currently am not, a morning person.
Is there a name for that?