Okay. I don't really wanna start a fight today. But at some point we're gonna talk about how the last 10 years has seen software developers pushing for premature promotion into Senior or Staff titles. And one of the ways they try to demonstrate that they deserve these promotions is by doing unnecessary "Arkiteksure".
https://phpc.social/@afilina/113153763726491625
🇺🇦 Anna Filina (@[email protected])

Attached: 1 image Almost every day, I see microservices that should have definitely not been microservices. Almost every time, it's a big bad of mud with extra complexity. You can't just split things into random smaller things, slap HTTP in between and call it architecture. In almost every case, cleaning up a monolith would have yielded better outcomes.

PHP Community on Mastodon

There are a few spicy things here. So I want to unpack a few things just so folks don't misunderstand me. (You can feel free to be mad as long as it's about the right thing)

First, I said "premature promotion". I know a lot of people are going to wonder what that means. I'll try to state it clearly and directly. Before the bottom fell out of the market, devs could make a lot of money by getting raises and promotions. Part of the way to get that was by raising your level by any means necessary.

I believe we have been seeing an overinflation of levels/titles for a while now. This is mostly because devs were in high demand. They agitate to be "Senior" after only a few years of working. For better or worse, many companies have been making this concession in order to retain people. (whether it actually worked is another convo). But the knock on effects have been severe. "Staff" title has come into vogue as the new "Senior". And the expectations of Senior have been greatly decreased.
The word "premature" is meant to convey that many devs are reaching higher levels without the actual experience and expertise necessary to inhabit those levels effectively. We see the outcomes in so many ways. Slow bloated apps are pervasive; Data breaches have become normalized; Interviews are centered around specific frameworks rather than foundational knowledge. All of this come from similar root causes in my opinion. Our industry grew too big way too fast. And we didn't train anybody.

Now, it's important for me to address the flip side of this coin so I can be really clear. There are many other factors at play here. This isn't meant to "blame" devs for any of the larger harms we see in the tech space. That's a related but separate discussion.

Also, I'm not judging people for seeking higher compensation. For most kinds of software tech, seeing workers extract more of the profits they are generating takes precedence over any concerns about quality. In my opinion.

So, I'm only raising this in hopes that the dev community can start to see and discuss honestly how our individual choices can have impact in the larger system that we inhabit. The system is dysfunctional for many reasons that are outside of our control. But we can still have some self-awareness and humility about the parts that we do control.

If we want to that is. We can also decide that we're okay with all of this. I just don't want people to say they never heard it.

But I want to bring it back to the core issue I started with. What does it mean for a dev to have the required experience and expertise? When do you "deserve" to be Senior? Who decides?

Those are good questions. The answers are not as simple and straightforward as we might wish. In a lot of cases, the people deciding who gets raises and promotions are also not competent make these decisions.

The reality is that most of the time, we get to set our own standards for whether we're doing a good job. And that matters a lot. It's a lot of power and a lot of responsibility. But many of us don't really understand it that way.
@polotek I feel this. I'm 6 years into my professional career at this point, which I think is the *average* time people become senior. But I definitely don't feel like I'm senior level quite yet. I'm getting there, but jobs I see are all for seniors and I'm uncomfortable applying for them.
@HobbieJ that probably means that you are better qualified than somebody who feels that they should be senior.
@HobbieJ @polotek for comparison, in academia, the early career stage ends usually around 4-5 years after a doctorate, which itself takes around 3-4 years of full time research work after your Master's degree. For example in the Swiss system, 4 years after a doctorate you become a "Scientist" - not a "Staff" or a "Senior" one, just a plain "Scientist".
@polotek Covid seemed to make a mess of this distinction as well, as places started competing for talent without paying current staff more by simply lowering the bar for a title for new hires. Senior roles would go from 8-10 years of experience to “5 would be nice”.

@polotek

IMHO, before you can have any kind of serious discussions about individual choices and the system, you have to acknowledge that the vast majority of companies have decided they're ok with it.

Whether it being paying more for external hires than proven internal achievement, more focused on the next quarter's earnings report than a 5 year growth plan, or putting managements whims above customer needs, companies make these decisions first, and the rest falls in line or moves on.

@GregNilsen I don't think it has to happen "before". I think people should get really comfortable with having multiple conversations whenever they feel like it.

@polotek Yeah, I feel like a big part of this can blame "business" in general -- the shrinking of expertise as a thing business values means the only way for people to get raises and “advance" their careers is to job hop.

There's no incentive to work at something for a long time and become an expert at it, and to then pass your experience on to those lower down the ladder. Institutional knowledge has no value to an industry that lays people off for a one-quarter boost.

@polotek Yep. I think a big part of that is employers looking to placate workers with the job title so they could squeeze more value out of them without paying them more. Much like the push for AI developers, it's all about cutting costs.

The few companies that see the light and are still willing to pay what it actually costs to develop software are able to make good products.

@louis Louis man. I really don't wanna be a dick. But it feels like any time I hear from you, it's you really misunderstanding what I'm talking about. And it's starting to feel pretty frustrating. I think we have a very different way of viewing the world. Rather than find myself arguing with you, I think it's better if I don't engage. I just wanted to let you know where we stand.

@polotek Sorry if this was unclear, but I was agreeing/concurring with what you wrote, not trying to argue against it.

I'll try to be more mindful of my wording in the future.

@louis you might feel like you're agreeing. But your framing is not like mine. I don't think we agree. That's why I said I'm resisting the urge to argue.

You're not doing anything wrong. This is mostly about me. It can be tough to dig deeper on these nuances until we're speaking the same language.

@polotek Did the industry grow to big or to lucrative? It seems like the incentives just go so skewed (in part because hiring was hard)
@McNeely I understand what you mean, but I would frame it differently. Hiring wasn't that hard. What happened was that the industry expanded a great deal. It's hard to quantify because we weren't really tracking where we were before. But I think the field of tech expanded more than 10x maybe.
@polotek a point Alan Kay made a couple of decades ago as well.

@andrei_chiffa Yeah I mean this is the elitist version of this take. But I don't really subscribe to it. The fact is that Shakespeare is overrated and shouldn't be taking up so much cultural room. In the same way, I think relaxing the credentialism around "computer science" has allowed us to create a much wider range of value from software.

But just like tv/movies, the level of quality is going to vary greatly. And we need to decide how to contend with that reality.

@polotek oh yeah, totally. I think the “you need to be good enough for it” attitude was what killed Smalltalk in the same way it is killing Haskell today. And if anything I am looking forwards to coding LLMs allowing even more perspectives to come into the software.

But your original comment definitely brought this quote to my mind.

"Our industry grew too big way too fast. And we didn't train anybody."

this encapsulates most of the United States labor environment since the 1980s because unions demanded, fought for and won those concessions before the Reaganomics attacks on labor.

@polotek

@polotek I hear this from those I’ve mentored: “How many months until I’m senior?” Back in my day it was “How many years.”

But that adjective means salary power so no surprise people ask after it.

@polotek how does this related to the split between "big tech" and the rest of the industry? If you are working for a startup with 20 or so employees there is not a lot of room for titles even though the most junior position could come with the responsibility to "do whatever it takes"; big tech has all sort of pathological practices such as stack ranking, OKRs, bloated process and technology, ...
@polotek "juniors" on the other hand report that the bottom has fallen out of the hiring market, the last person anyone wants to hire in fall 2024 is a graduate from a bootcamp or run of the mill CS program; entry level positions now look for a "senior" they aren't willing to put effort into developing people (which "senior" people would do in a healthy organization)
@UP8 for what it's worth, most of my experience is in startups. This is absolutely happening there as well. Startups get away with it for longer by just not having a career ladder at all. But as soon as they do, they feel the same pressure.
@polotek in platoon-sized startups you get the role based on when you entered not on being good at the job; eng teams can get some stuff done even if the eng. manager doesn’t know how long the build takes or has a meeting and tells you about a bunch of conventions we follow and we also do code review but then when you look at the code those conventions aren’t followed even though is the job of the manager that process is in place, followed and changed if it doesn’t work
@UP8 I love when people shit on managers all the way up until something is happening that they think should be fixed. Managers can't make people follow conventions. Their only levers are firing people and not giving people promotions. Engineers don't get fired that often. And most of the time, they are willing to take the promotion risk to not to do things they don't wanna do.

@polotek I think that's a pessimistic view; in 2024 "voice" seems to be missing from most people's version of https://en.wikipedia.org/wiki/Exit,_Voice,_and_Loyalty

My current manager really does look at my code and send things back he doesn't believe in; certainly our code doesn't reflect all our ideals (test coverage is great for security code, poor for React where a "simple" test seems to take 4 sec to run) but there is not the complete disconnect from reality I've seen in many places.

Exit, Voice, and Loyalty - Wikipedia

@UP8 it doesn't have anything to do with being pessimistic. And it's not about what your manager does or does not do. It's about what you do. If your manager asks you to fix the code, and you don't agree, what do you expect to happen?
@polotek other areas seem so much more mature; they are building a building out my window and they have enough sense of schedule that they can schedule the rental of a big-ass crane when they need it; there are various structures such as trade unions, occupational licensing, etc.; I've seen places in industries such as food service and grocery stores where management cultivates espirit de corps and others that don't; just setting a good example is powerful
@UP8 do you know what unions are for? And why they exist? I'm just not sure what world you're describing.
@polotek unions do a few different things; the trade unions (and various unions in Hollywood) not only stick up for members but also train them and also stand for their professionalism (go to the union hall and get as many grips as you need) Unions get good pensions and job security for experienced teachers but don't do a lot for the emotional stress; in the software field there are no unions but things would be different if there were
@polotek the cases that bother me are where the manager tells me I can't fix the code and we have to soldier on; there was that time I put in a ticket about my 40 minute build and had to explain how this helps the customer and I said "the customer would have had the product 6 months ago if I had a 5 minutes build"; i did get it to 20 minutes and managed to ship two major revisions despite this
@UP8 if you just want to talk about what bothers you personally, that's fine. But you don't really need me for that. Like I said, people love to shit on managers.
Yup! I wrote about this in a bit more detail a few months back
Job titles are bullshit · Jamie Tanna | Software Engineer

When is a Senior Engineer not a Senior Engineer, no standardisation across the industry, and other reasons job titles are frustrating.

Jamie Tanna | Software Engineer