What's a rat race?
I think I've heard this term for the first time in 2003, when I've joined a company with more than a few programmers on board for the very first time. The shortest definition I can come up with is:
The rat race is a dysfunctional (work) environment where people who are supposed to cooperate (in order to reach common goals), compete fiercely (for a scarce privilege/benefit/promotion) instead. Consequently, the importance of a personal accomplishment (aka who gets the laurels) is much higher than the group achievement's one.
Sounds terrible, doesn't it? One could associate it with all kinds of toxic & egoistical behaviors: ratting each other, lying, claiming all merit, rejecting to help others, etc. The company I worked for was applying the "up-or-out" model, which tends to reinforce such anti-social behaviors. Fortunately, I ended up working with a decent bunch of people with high ethical standards - we DID compete (all the time), but it was all fair and square.
The high stakes did motivate us (to succeed, to achieve, to be more effective, to make a client happier), but didn't drive us utterly crazy. And it was a great time - I learned a lot & that was fulfilling. Wherever (a company, a project) I transferred to in few consecutive years, ... the environment was pretty similar. Fellow engineers were competing - for more money, for more exciting projects, for more significant challenges, for ... glory (respect & recognition of associates).
Grit. Ambition. A desire to impress others.
The rivalry was fuel for their (personal, but not only) growth.
Fast forward ten years.
The job market is broken. Companies are struggling to acquire ANY new talent, getting more job offers is not an issue (unless you get excessively greedy). Typically, you really need to suck big-time or get involved in some inter-personal drama to get fired (and yes, COVID-19 was some kind of a twist here, but to a limited degree and very temporal).
It's not just the job market issue, though, I'm afraid. The latest generations of software engineers are taught to value team-play, equality/equity, humbleness, respect to other people's opinions, etc. above anything else. When leadership is even mentioned, it's "servant leadership" - removing impediments, serving the team, etc. It's all great, beneficial and it makes perfect sense ... as long as you don't go overboard with it (which is so typical for the Murrican people ...).
Modern engineers are advised ...
- to remain quiet (because someone else may feel "harangued")
- to not form strong opinions (because some "may not be comfortable with them")
- to not get out of line (because it may intimidate the shy ones)
- to hide their individualism in a pocket, because it's probably their overgrown ego (which is ofc sometimes the case)
In general - rivalry is discouraged because it could make someone feel bad. Or cause stress (yikes!).
As a result ... engineers simply don't have to be competitive anymore.
Have you noticed that in the teams you were working with/in recently? How many of your fellow team-mates truly wanted to push further every day? To raise the bar, show the tiger's claw, prove that their kung-fu is better than anyone else's?
I mean - companies are obviously very competitive, but software developers they hire (unfortunately) still tend to find themselves too detached from having an actual impact on the company's economic standpoint. At most, they are "auto-competitive": they set themselves tech-related, resume-driven goals ("to try X, to use Y") that genuinely prove nothing (but may look good in CV ... from a future employer's standpoint).
In the end, it's common to ... promote mediocrity. In the name of solidarity or because this is how you secure the headcount numbers (and stay on the market).
It makes me miss the ol' good days ;P I wouldn't mind having some "rat race" (a healthy one) back ...
P.S. The competitiveness I find missing is NOT about the crude pressure to "go faster" (which is ofc present all the time). More features, more changes, more user stories - it's the business competitiveness, it doesn't necessarily make us better engineers (especially when we're forced to sacrifice too much for a short-sighted temporal velocity).
P.S.S. Competitiveness doesn't have to mean we're losing our pragmatism - it's not about "gold plating" (endless fine-tuning) or optimizing below the threshold of profitability.