New post, kind of weirdly personal-feeling one. I don't know if it'll land with you, but I hope it at least gives you something to consider.

https://joshcollinsworth.com/blog/devaluing-frontend

The quiet, pervasive devaluation of frontend

I keep noticing those of us in the frontend field being treated much the same as nurses, paralegals, and executive assistants. Our work is seen as important, certainly, but just not the same as, or as important as, the “real” work.

Josh Collinsworth
@collinsworth Well written, and FWIW I have had some of the same suspicions you articulate here. In the same boat, I think, as far as wondering how much to make of those feelings.
@collinsworth ah this has been going on for decades, it's not new unfortunately. It probs started around the first "front end" js frameworks
@amber @collinsworth Totally, that’s exactly when it started for ”front-end developers” but “designers” (people who just did html/css but not backend php-or-whatever) were suffering from this before that.
@alannorbauer @collinsworth Ah it's a matter of definitions I guess. To me front-end devs *are* those that do html/css/js, and designers don't touch code at all.I've always been the former and never the later (I hate designing, tho i went to school for it)

@collinsworth I've been writing CSS / front-of-the-frontend for 25 years or so.

It's something I've battled over the years. I don't think this is anything new though, or that it's necessarily gotten any worse. I think the rise of libraries since Bootstrap forced a lot of people to not actually learn CSS, and it feels there are less practitioners (especially in Design).

Some positivity. Outside of some Python folks, no one else can say their primary programming lang is the same as 25 years ago.

@collinsworth In any case, fun read! Thanks for taking the time to put your thoughts down.
@davesnider @collinsworth and to add, not only 25+ years old but will run on any browser. That's... pretty compelling

@collinsworth The conversations I get into advocating the beauty of HTML & CSS! When implementing them myself.

Really comes to a head in the arguments over Tailwind I find...

@collinsworth that's a very nice post indeed! Although I can't write frontend because I'm blind, I'm seeing that too, through the fact that most interns in my country are tought to do mostly frontend, and sure, maybe fullstack if the managers want to really squeeze all the performance dropplets of that poor dude. So yeah, it's a problem, one we often see in our increasingly unballancing society.
@collinsworth I think this is underselling the issue in 2024, honestly. My anecdotal experience is "UI" developers have been harder hit in layoffs and lots of companies are moving towards a design system team and full-stack devs and no one in-between.
@collinsworth oh... I feel your pain. I've been dealing with that for so many years... frontend is frequently treated as something "easy", "trivial" and sometimes useless (hi there CSS, semantic HTML and accessibility). Javascript has gained some respect, but the others not so much
@collinsworth I've been denied promotions or jobs because I want to stay front-of-the-front-end instead of learning "real" web development 😒

@collinsworth Excellent post, and I've certainly felt this devaluation as well.

Ironically since most of what I do is #JavaScript tooling ("back of the frontend") I can sometimes feel a little overvalued compared to the UX/a11y/design work ("front of the frontend") that others do. I see how much more effective they and the impact they have, yet others don't consistently see the quality difference they can produce.

Want me to set up a reproducible build system and bundler toolchain for your web project? No problem!

Want me to make your site accessible to a screen reader? I'm gonna need some help, I only know enough to know that I don't know enough.

Yet people don't think of those roles as a separate, independently valuable skillset. They think one person should be able to do all of this, quality be damned.

This feels like a very similar dichotomy between the "front of the frontend" and "back of the frontend" (albeit less severe than backend vs frontend).

@collinsworth your post definitely resonated with me.

I've been a software developer for 20+ yrs and have put in my time in pretty much every part of the "the stack." But no matter where I work, I almost always end up being the only one (or one of the few) who enjoys spending time working on the front end. And I do enjoy it quite a bit.

Gradually, I've seen JS accepted as a "real language", but HTML, CSS, a11y. An afterthought. "Pixel pushing".

@collinsworth That’s a really good piece. The only thing I’d disagree with is “CSS is the only language that gets blamed when the author is bad”. You are in an unenviable gang with PHP (and back in the day, Visual Basic). Languages lots of people know how to do badly but not enough people take the time and effort to do well.

I speak as someone who has always done CSS badly.

@xurble @collinsworth I find that in CSS consistency goes a long way.

If you do CSS "badly" but always in the same ways, I bet I could dive into your codebase and get to work right away.

In contrast, it's almost impossible for me to determine a good way to write CSS.

@collinsworth I think the boring parts of frontend work have gotten too complicated. Every site needs buttons, cards, and menus, but the reusable options out there are still too hard to integrate with the rest of what we’re building (or are too hard to theme). We spend too much time reinventing the wheel, so we don’t have the energy left for the art.

Sure, css is amazing now, but it’s really hard to integrate all that new stuff with react (which is a React problem, not a css problem)

@ianwremmel @collinsworth part of that complexity in my view is design systems themself. Effectively, you are working a waterfall project while pretending to be agile. I mean, before build the 'designer' crafts every button instance, state, size, colour. Which is mad.

Build a button. Make it work. Then add the style layer as required - CSS is extensible for god's sake.

Add most importantly, devs and designers. Talk to each other, all the time. Find the gaps in each others knowledge.

@ianwremmel @collinsworth I agree, and two causes come to mind:

1. The global nature of the presentation layer has traditionally made it difficult to share discrete components (ESM, Web Components, and more recently scoped CSS and declarative shadow DOM will help)
2. The failure of Web Components, which I blame on a combination of the spec not being ready combined with Google's overzealous pushing of it. Web Components felt more like a Google side project than a proper W3 standard.

@collinsworth Bang on.

People complain about CSS yet spend hours abstracting CSS variables into design tokens, then assigning absolute values to them. Huh?

The 'i could do that' urge is strong.

@muddymoles @collinsworth if you couldn't use a pre-processor how would you do this? Repeat the absolute value everywhere?

@lukechannings @collinsworth my point - badly made - is that people may subconsciously think 'I could do that', yet assign absolute values like padding and margin in Figma which shows right out of the traps they can't. Or, derive colour values programmatically that create contrast problems across a design.

Both examples I have experienced, repeatedly. Hence, collaboration and communication is really what needs to be valued.

@muddymoles @collinsworth I get you. CSS is collaborative and social in a way that most other languages aren't.

Because everything is global, inexperienced or lazy UI devs will hack their thing until it works, and if any shared styles are involved it can quickly become whack-a-mole of !important and z-index++.

@collinsworth great article. Thanks for saying it

@collinsworth

Probably the rise of tools that offer easy drag and drop for anyone to use, thinking that the point of a website is just to look nice on the first glance.

@collinsworth I enjoyed this a lot. As a backendie™, I see similar pressures to “just get it done”, which comes out in the endless cycles about technical debt, and so on. I don’t think our $$$ overlords see quality, anywhere, as a source of competitive advantage.

Thanks for posting!

@collinsworth My previous software engineering company just laid off and transferred two-thirds of their frontend engineers after telling us in December that 1) there were too many of us and 2) sales was regularly spinning up new teams without frontend engineers because clients didn't understand the value of what we did. Of course that means sales didn't understand the value of what we did and couldn't sell it.
@thefinley And yet, nowhere will you find salespeople being laid off because developers don't understand the value of what they do.

@collinsworth Fantastic post, and I couldn’t agree more.

In my last role I was one of only two Principal FE devs compared to 19 Principal BE devs.

When layoffs hit in December we were shown the 11 roles that would be remaining for the 21 principals and it was immediately clear leadership had completely forgotten about the front-end discipline when planning these roles as there was no mention at all of FE at any point. Design system, FE tooling, all forgotten about.

While leadership did half-heartedly backtrack on this when we pointed this out to them, the writing was on the wall.

Myself and the other FE principal took voluntary redundancy and left of our own volition since it was clear that FE was undervalued (barely valued?) within the organisation.

I’ve never seen anyone state it as explicitly as you did in this post, but I agree that this bias does exist within the industry.

@collinsworth hadn't thought about this, but you're right. Thanks for writing.

@collinsworth 

> But when did speed become the main concern? And why?

And ironically the frontend built with speed doesn't even run fast XD

@collinsworth In my experience, I see a lot of BS hitting us frontend developers.

The point about visual/art things being devalued is totally true. My previous job had a higher-up who was unable to write complex frontend code, but was able to do trivial stuff and that was enough to convince themself of how easy we have it and how lazy we were.

I also find that places without proper bug triage processes start by blaming frontend, because that's who wrote <H1>Server Error</H1>

@collinsworth It's funny how much people applaud "declarative over imperative" JS code. And yet, CSS
and HTML have only ever been declarative. That's why they feel so fun and easy! But I get it, more complexity is required for the ego's needs to be sufficiently met.

@collinsworth I've seen this a lot but I also know I do the same thing to back end folks, "just pull this from the database and put it in this shape for me, how hard can that be?"

Humans tend to think that whatever we're focusing on is the important part. Sometimes turning the tables in a cheeky way can actually increase mutual understanding.