28th February 2019
In the last few years there has been some interesting discussion in the frontend community over what it really means to work in frontend. Recently, Chris Coyier aptly coined this as The Great Divide.
In it, he primarily discusses things from the perspective of traditional frontend developers and designers and how it has become harder for them to make heads or tails of the industry when the focus has primarily shifted toward programming. Having plied their trade working on sites written with (mostly) HTML and CSS, a lot of modern web development feels alien and incredibly daunting.
As a result, we have seen an explosion of new frameworks, libraries and tooling. These abstractions pave over many of the rough edges of the frontend, but unfortunately introduce additional complexity that many designers can't understand.
From a programmer's perspective, frontend development has shifted from being something akin to the Wild West, to a saner and controlled environment. This has generally been a great success for programmers but where does it leave the designers and the traditional frontend developers?
It has only been in the last few years (and with a healthy interest in the frontend) that I've started to understand what good HTML/CSS looks like. A large part of that is from working on a team where people value that aspect of the frontend. Being able to have healthy discussions on topics like design, semantic markup and accessibility has helped me become a better frontend developer.
I think there is a lot of value in cross-disciplinary conversations and we all potentially stand to suffer if we lose this diversity of voices from the frontend discussion.
Having read around the discussion a little further, I've noticed that people don't seem to really talk about the elephant in the room. We still unfortunately treat programmers and designers as very distinct and (almost) opposing roles.
Programmers are generally considered to be the people that solve the abstract implementation details. They don't prioritise the presentation or user experience of the solution and are usually happy as long as it works correctly. I would say that programmers are generally bad at considering the big picture - for example, how the entire product will be perceived by end-users.
On the other hand, designers are considered to be the opposite of this. They focus their creativity into crafting beautiful, usable and accessible products and the end-user's experience is more highly considered. Conversely to the programmers, designers are bad at considering the little picture and generally care little for the programmer's implementation details.
I think these stereotypes really frame the discussion on the divide as they imply that both roles, and their work, are fundamentally incompatible with one another. Frontend development was originally framed as a designer's area of responsibility, so it's not surprising that they feel uncomfortable with the groundswell of frontend programmers. It begs questions like - what are my responsibilities? Should I be coding? Why are programmers making things so complicated? Why is everything different?
Personally, I don't believe it is clear cut where you stop being a designer and become a programmer and vice-versa. To me, designers are already programmers through their HTML and CSS and the design languages they create. Programmers are designers through the code they write and the systems they design.
By trying to categorise people as designers or programmers, we create a self-fulfilling prophecy that there should be a divide.
If we want to start bridging the frontend divide, we need to try and move the discussion away from being about programmers and designers. We should encourage anyone working in frontend to gain a better understanding of all its aspects and intricacies, be it design, programming and everything in between.
I think it would be great if designers had enough programming skills so that new frameworks and tooling weren't seen as impenetrable abstractions. Ideally designers would even be involved in helping to build these tools rather than letting programmers dictate their direction.
Inversely, if programmers had better design skills, they could appreciate more the work that goes into designing great user experiences. With this kind of understanding, programmers could build more ergonomic tools that designers can understand and enable them be more productive.
This could be asking for quite a lot, but it would be great if we could work towards this and help our peers to reach this mindset. In the process, we would hopefully create a more collaborative environment where we empower each other to make the frontend the best it can be.
The future should be shaped by everyone and not just people sat on one side of a fence. I hope that one day we won't need to discuss the divide anymore as we will just identify ourselves as frontend developers.