There needs to be some sort of prerequisite to make this valid.
Having been through a number of downturns in my career, you do see really talented people leaving at the worst time possible for the business. But assuming that everyone who leaves is your best talent is not such a good thing to do.
Right, it doesn't even need to be a bad environment. The situation might even be worse in a good environment.
Consider the team that has no dead weight at all. There is a normal talent distribution and everyone is productive.
Layoffs come around and the bottom 25% are let go. All that work needs to be distributed to the remaining developers. The best members of the team now have less time to work on the really hard, interesting problems because they have to pick up some of the boring work that still needs to be done. Some of them may leave because of this.
Nothing like looking at truck numbers for things that you know how to do but hate doing to motivate you to find a new job. I've left twice when we hit 2, because I knew if we hit 1 I'd feel guilty about quitting, and then resentful about staying.
It's like a bad mix of Musical Chairs and Hot Potato where nobody wins.
Right. The old adage - if you smell shit all day, check your shoe - seems to apply. If you think virtually every organization is toxic, then the problem probably lies with you.
It’s a spectrum, but yes most companies do a terrible job at prioritizing the development and well being of their employees.
Ask your boss to take a week long course that will make you significantly more productive, paid for by the company. What is their answer? 9/10 employers (maybe even 99/100) would say no.
I mean, one of the top posts right this moment on HN is about how employers are recording every single keystroke of their WFH employees.
So if you have high standards instead of being content with mediocrity, you.. have a problem? Well, that kind of thinking most certainly would encourage people who want and can do better to leave.
"This is crap" is, for a lot of people, a way to say that this is utterly mediocre (aka. not good, and not satisfying).
>So if you have high standards instead of being content with mediocrity, you.. have a problem?
The OP was questioning the assumption that the vast majority of workplaces are the kinds of toxic workplaces described by the article and some commenters. Not mere mediocrity.
The account in the article and in some of the more negative commenters didn't fit the experience of the person you replied to, and it doesn't fit mine either. From my (limited anecdotal and not universal) experience and the experiences of devs I know working in various fields, I've seen some toxic workplaces, but they weren't very common and stood out.
I recall talking to (generally younger more emotionally immature) folks who worked at places I've worked. We had good pay, really good benefits, we were on a friendly team with management keeping a light touch. I was happy. They focused on flaws, complained about things like ending free donuts on Fri as though they were living under tyranny, saw things as generally hellish, and were miserable. I've personally seen just what the OP was describing in others. It's worth recognizing that you do get out of things what you bring to them, since not recognizing it is a recipe for misery. If you think everything is toxic, chances are you're bringing something to the story that's causing that.
One of my unfinished goals from a few years ago was to interview some personal trainers to ask how they do it. How they show up over and over and listen to the same excuses from new faces. What's the trick? How do you do it?
"The future is here, it's just unevenly distributed." In a trade where fixing things is a job skill, knowing how to fix things that nobody wants to fix (yet) can be demotivating, even aggravating. Does that make one toxic, or can there be pervasive problems that takes your industry 20 years (epochs in software) to adopt?
For people leaving in a downturn that is a reasonable assumption. If the employment market is bad, then mediocre employees have no good options to leave - they might try, but they won't find anything better; but really good techs will have opportunities in any market; well, at least they had in the last 'busts'.
Anecdotally, I find the opposite to be true. Also part of being "effective" is having a large amount of system knowledge which you would build over a long time.
The problem with general advice. I would say most engineers take 1-2 years to truly grok the business, internal relationships and the whole of the technology stack you have deployed. So if you’re jumping ship every year or so like I sometimes see recommended you’re not really ever firing on all cylinders.
Once you have the big picture and have deployed multiple projects - is when you can start proactively fixing systematic issues that you’ve identified
For engineers, is it ever really worth it to understand the business?
I can see the enormous harm having no technical people who know the domain causes in my current role, but the benefits of learning it seem to be slim to none for the individual engineer. The harm is in low productivity for my employer, but they don't seem to care about retention anyway. Most do not.
A good engineer who understands the business thoroughly is I'd wager 3 times more valuable than just a good engineer who has no knowledge of the business.
I think that's primarily true for companies that don't pay their engineers enough. The companies that pay a lot of money obviously don't have problems attracting and retaining talent.
Yeah, the reason some company might experience this effect is because the company is managed in a way that makes people want to leave as soon as they have a chance. The problem isn't the employees.
It can be true to a certain extent in that you may have _some_ engineers who aren't very good sticking around in some organizations. But why would you think that is the case for most of them? You might have engineers deciding to stay because they have a family and think their job is fine.
Or maybe for organizations that have poor leadership or existing engineers, that is the case that the good engineers realize that and leave. But for really good organizations, they are extremely selective in terms of recruiting and compensate employees highly, with difficult but rewarding work, it might be the opposite -- people who weren't really cut out for it are quickly eliminated.
For me personally I eventually came to the conclusion that there was no perfect job, and my plan for personal growth is not to flit from job to job anymore trying to get higher salaries, but rather to save and work on side projects to hopefully eventually have my own business. So for that strategy it doesn't make sense to keep switching jobs.
Here, I reversed it and it sounds about as believable to me:
> The "Anti Dead Sea Effect" suggests that in any organisation, the skills/talent/efficacy of engineers is often proportional to their time in the company.
> Typically, lowly skilled engineers find it easy to gain employment elsewhere and are the first to do so. Engineers who have obsolete or weak skills will tend to leave the company, as finding employment elsewhere is not difficult. This is particularly pronounced if they have not gained incremental pay rises over their time in the company, due to their poor skills, as it can be easier to fool someone else to pay them more.
The other side of the coin is salary compression and inversion.
That’s where HR policies dictate that no one will get more than slightly above cost of living raises no matter what while at the same time having to bring new employees in at market rates.
You find a situation where the more tenured employees are getting paid less than new employees with the same skillset but without the corporate understanding.
This varies enormously by the history of the company. I've seen situations where companies are quite stable and very happy to give tiny increases to manage their costs and don't care if they lose engineers because it's not like an individual engineer is actually going to make or break the company. This tends to be true at very large organisations with mature markets. These are the sort of companies that kind of know they aren't going to increase their revenue beyond a certain point so they're focused on reducing costs. A side effect is managers hire in at high salaries because they know the increases won't be big and you end up with a shuffle of slowly inflating everyone's job title. Suddenly you're hiring senior staff out of university.
On the flip side though I've also seen senior (long serving) staff massively overpaid, because they got massive bumper promotions and pay rises during growth periods for the company, and then when things tighten and growth slows, they're still sitting on very generous pay. Particularly in 2010-2015 where staff had got big increases in 2000-2007 but all the new staff had been hired during the recession.
That’s still a problem. When the company eventually has a change of direction and lays off the overpaid (for their marketable skillset) developers and then they have to go back out on the market and find that no one wants a 45 year old ASP.Net WebForms developer.
They will end up on HN complaining about “ageism” in the industry.
At 45 myself, I can’t afford to allow myself to get comfortable at a company that isn’t using technology that keeps me marketable. If I see that starting to happen it’s time to change jobs. I never want to be beholden to the shins of a single company for my livelihood.
I would much rather be able to depend on my marketable skillset, my updated resume, and my always warm network of former managers, coworkers, and local recruiters.
These things always have a grain of truth to them, in that they describe some places some of the time, but I also think there's so many things going on in any given place it's hard to generalize.
A well-run organization will hire the right people, and then foster their development in such a way that they are productive, happy, and grow, and will compensate them sufficiently. If any of those things break down, you can run into any number of problems, and they won't necessarily take the form that seems obvious at first.
I've seen organizations take very competent people and ruin their morale and shunt them into projects that were really detrimental to them getting out, in ways that aren't obvious at the time. Or weird organizational dynamics cause changes over time that make someone look bad in ways that aren't their own fault.
There's just weird things that happen that don't simplify to simple models of "talent that is completely independent of environment and perfectly visible."
Have you ever personally had a long term career in a corporation that somehow managed the escape velocity to actually become something other than typical? i.e. typically toxic and bound to these laws?
There are no great companies left and everyone of any worth evaporates and ends up "working for themselves" and employee mentality has made most corporations into dystopian surveillance states where management rules by force of mediocrity so the ones that stay are happy to wallow in their entitlements as long as they're free to dress in rags and can afford their mortgage payments yea
Sterling Cooper Draper Pryce, the Medici, Nintendo and Apple in the early days, a lot of Canadian and probably American banks in the sixties and seventies and eighties.. Airlines before the economy model.. Lots of iconic hotels and restaurants, Ma Bell.. all kinds of companies have been great it's just that as people we think we're above it all somehow and our attitudes have brought us to a point where it's understood we're only trading time for money and we're selling ourselves short at every turn and all our corporations are merging into one megalocorp where it's just mediocrity and toxicity and even this forum is nothing but an echo chamber of the neurosis
Another problem is that CEO's don't understand what they're really in it for -- they're not in it for the mind state that comes with being a leader but only for the profits they can extract from the bargain it's obvious by their actions and their dress
In short a company that has high alignment and high autonomy the two are not mutually exclusive and indeed form the basis of what I'd call the American Way
Well there's a lot to it -- we've been duped into thinking our work is a service when it's really an investment
Once we've been paid a generous pittance we're divorced from the fruits of our labour which are then flipped into astronomic profits while we continue to slave over features and slowly suffocate in meeting rooms similar to interrogation chambers
If we actually had ownership and took our rightful due we'd be far better off
The difficult part is that academia doesn't prepare us for these realities and let's face it the whole curriculum is a joke compared to real world professional activities
It's just that every year there's a new crop of naive youngsters willing to sign their rights away for the privilege of coming in wearing a hoodie and sweatpants
How to stop that though? You'd basically have to include contract law as a gen ed or primary education course. Or some sort of, "Business/Professional Survival" course. Which then runs you into the problem of, who curated a truly representative sample of how businesses operate, and what their rhetorical agenda is in terms of what image or philosophy of business they fancy.
I mean, I was in FBLA for a while, and it did zilch for communicating what the realities of modern business were.
A fictional advertising firm from the television series "Mad Men." A "great" place for heterosexual men in suits to work, a not-so-great place for anyone else.
I suspect the average person would actually find that a much worse place to work than most modern white collar companies. You wouldn't want those main characters as your boss, especially not if you're a woman.
What irks me the most is the current crop of so called white collar is populated by people who don't have a fraction of the dress sense and don't even wear white collars or when they do it's combined with something preposterous like a fleece vest or puffer jacket
I have witnessed a vice president at a danged top five bank in Canada dressing like he was going clubbing
For most Canadian financial institutions, does 'Vice President' mean anything more than someone who works in b2b sales? They seem to be a dime a dozen.
The 1960s are long past, thank god, and we have a lot more personal freedom than workers did back then. If you wanna wear a suit, be my guest, but I’m going to stick with t shirts and my weird toe shoes. They’re more comfortable.
You're acting like the t shirt is the pinnacle of shirt technology it's literally two tubes of flimsy fabric aren't you even a little ashamed of your bare arms after all these years? Do you like that feeling of leaning in close and rubbing arm hair with your neighbour? Ever consider that bare arms might be rude on some level naw you likes what you likes I guess we should be grateful you wear toe socks most days
By the way you have zero freedom -- these companies are eating you from every angle and you're taking it on the chin
So, a fictional company, a family before capitalism was conceived, two startups that made it big but before they became big, and pretty much everything else defined by nostalgia for a time during which your fictional company was supposed to have existed.
I agree that the current crop of MBA CEOs are detrimental as a whole.
Perhaps it's just starting off with a fictional company but this really reminds me of someone being asked to list heroes and naming John McClane and the guy who said Nuts to the Nazis at the Battle of the Bulge. Which I got to give props to the second guy of course, but it feels like the viewpoint is limited and not securely tied to reality.
Touché my dude! I'm trying to describe companies that were hardcore about branding and would retain people aggressively under penalty of death for dishonor
Look it may be idealized but what makes us think that we can grow complacent all of a sudden what happened to the cold war and the arms race?
Just because we declared peace and came from a generation of acid heads doesn't mean that we're not operating in a war zone
The most dangerous weapon is intelligence and intelligence operative is another word for knowledge worker
To give another fantastical yet limited viewpoint, the extremely short period of time in human history where
A) large scale production and innovation were required
B) but globalization hadn't arrived so there was an extreme lack of supply of educated and experienced individuals to deliver the objectives of A
Produced a lot of "great" companies in the sense that they offered for both labor and knowledge workers good jobs with upward mobility, and a strong sense of self-identity and orderly progress.
As soon as point A was subsumed by corporatism (patent and copyright wars, debt servicing) and B faded away (so labor lost its seat at the table) companies have become "commoditized" - there's absolutely zero point in establishing or aboding by a corporate identity today when you may have new masters tomorrow.
Your view on this is far more negative than average. There are plenty of people who have been working at companies for a long time and are content there.
Hey CydeWeys my good fellow I appreciate your opinion very much and I'll tell you why I'm cynical
Maybe there are a few epic companies but for 80% of devs at a guess they'll grow up grow old and grow decrepit in an open concept office reeking of pizza and microwave popcorn surrounded by a bunch of distressed disrespectful and discounted directors and managers treating them like cannibalistic humanoid underground developers while preparing them to be eaten by the machine like a rabid pack of Morlocks
I wasn't put on this earth to be turned into Soylent Green for a feature factory that chews up people and spits out machine code and Alan Turing sure as hell didn't give his life so we could wear house shoes to the office
Compared to what we're missing out on the free granola tastes like bitter bile and all ever managed to do was get drunk on great quality booze I'll admit and barf up artisanal pizza and salads
Yes but only due to near 100% turnover of management and toxic coworkers in a short amount of time. It was weird the day I realized I was essentially working at a different job.
To all those people throwing doubt on this, you are highlighting a situation where there are a dozen downturns in a career. Better people last longer.
People who switch more often however ladder up on their skill sets. Taking a diverse number of approaches that change from place to place and adapting nicely to them all and maybe even bringing a few skills from elsewhere to help in their current job.
A comfortable job makes you stagnant. Movement is good. Even within company.
I too think this depends on how dysfunctional the company is and in what way it is dysfunctional.
Overall, with reasonable management, people have better idea about your skills and abilities after working with you then shortly after interview. Interview is artificial short situation. If that applies, staying makes a lot of sense because you get more challenging tasks, more autonomy, your word is trusted, you have more say in negotiations. Leaving to another company means that you have to start again less trusted, won't get those challenging tasks and generally need to prove yourself before gaining the same back. Plus yoi risk that environment in new company will be more toxic. Changing team is in the middle - you have reputation and sometimes simply need change so that you don't stagnate.
In such organization, pure talkers loose credit over time, get moved from team to team and no one wants to keep them and end up on project they themselves don't want and nobody wants and leave.
Obviously, if the company starts to be dysfunctional over some treshold or stagnates, the high quality people will leave as the above benefits get lost. If it is toxic or unchallenging right now, you are good chance another company will be better.
This assumes that skill and efficacy don't come from domain specific/company specific experience.
You can be a lousy engineer, but if it is all your lousy code and you know it line by line, you will be a heck of a lot more effective than the star engineer who has been there for just a few months and hasn't learned the codebase yet.
I'm not sure that's true. I've seen incompetent engineers working away to maintain their own "house-of-cards" systems that break easily and take forever to change. Then within a matter of weeks a competent engineer comes in and replaces the whole ball of yarn with something that fast, clean, and doesn't break.
Most often I've seen this kind of thing done with software build pipelines where most competent engineers already have an understanding of the requirements, but this can be seen in other systems as well.
The point of these house of cards systems is that there is far more incidental complexity than there is essential complexity. The requirements are not enormously complex. The problem is that the incompetent engineer is only thinking tactically within the bounds of the system as it is currently implemented, they aren't thinking strategically about how the design could be improved to require much less work.
I'm always going to cringe at Twitter's "star" engineers who spend an average of 7 months in each company. HTH do you even understand the product and contribute in that time frame? One of two things needs to be at play:
1. You were brought in to do very specific work (i.e.: migrate something to k8s).
2. You were brought in as a token due to your social media following.
Haha, it typically takes 6 months to get up to speed at a company as everyone has their own set of unique tools and infrastructure. Also at that cadence you are not vesting any stock(1 year cliff?) so that seems very strange. Having worked with high-vis engineers in the past, alot of them seem to be vanity hires, they really don't impact much change and probably stoke the egos of the upper managers/execs much like (prof. slughorn from harry potter), collecting "geniuses".
In jurassic age companies you can get up to speed quicker, there is less to wrap your head around and the onsite staff tend to use a simpler approach (manual methods etc).
If you think you are "up to speed" on a large company a week or so you are usually so incompetent you don't know what you don't know.
You can be contributing code in a week or less, but if you're getting fully up to speed on any moderately large system in under 3 months, you probably should take breaks for meals and sleep more. Or you're not getting fully up to speed and are just ignorant. It could be less for a trivial or entirely greenfield system, but then you're worrying about other things like requirements/constraints/etc.
Unless you stick to a very niche domain that you know well, there will be a massive amount of new information to learn. It takes many months to absorb it all.
It depends on the domain. If it's something complicated it might take a while to figure out the business logic of the system, especially if it's something large like an enterprise system. Also, I think a better way of putting it is that it might take that long for them to have a net positive effect on the org. As in they are contributing with minimal help from the rest of the team.
if an engineer can't make impact until 6 months later is this engineer even worth hiring? Large organizations typically take longer time to ramp up, but regardless of size I expect to make impact at least to my team within the first month of hiring.
>1. You were brought in to do very specific work (i.e.: migrate something to k8s).
That's how most work gets broken down though. Just find an entry point and start reading code. Read docs, comments, find dependencies, figure out what needs to change in light of your change.
You shouldn't need deep product and tribal knowledge to make simple changes.
In most places you don't need deep product and tribal knowledge to make small changes. You need deep product an tribal knowledge to know what small change to make. Almost anyone new at a company will have someone else telling them what the first thing they need to do is, and that person is telling you to do something that wasn't important enough for them to do themselves.
For what it's worth, the best interns/juniors I've had started out making simple changes like this. I'd break down the work and parcel it out for them every day until they had accomplished something big. Then I'd start parceling it out less and less until they just knew what they were doing.
The principle would be just nice if it were true, but it has different assumptions that don't hold in quite many situations.
To me, it appears it presumes almost something like Santa Claus existing world, where "everybody gets what he deserves" (where you "evaporate" to some place better for you) which isn't how typically the world functions.
Moreover the concept of "talent" is involved in the principle, which is not something that I would use as the name of the property that I would use for selection of people who'd work on some project.
Yeah, I can't help but detect some wishful thinking on the part of the author. If you're asserting some principle, there ought to be an objective way to validate it - so, how do you know? If it's really true that "the best people will always leave", they'll leave the next employer after they left you. So, the best people are definitionally the people who never keep any job for any appreciable amount of time? How could you possibly measure their contribution anywhere?
I've seen plenty of people in IT with mediocre skills having no problem at all finding new jobs. I've also seen talented developers stay in the same place for a long time.
I'm much more willing to believe that the quality of engineers at an organisation has more to do with the organisation itself and the sector.
I've noticed that some people hold a grudge against mediocrity that I don't entertain, and yet they don't know what to do with belligerent incompetence and so they try not to think about it, whereas I can't stop thinking about it.
Overqualified people working on a project can produce some heinous code. What I want as a team lead is to know how far I can trust people with different tasks, figure out who can be stretched in what directions, make a stab at scheduling the work out to try to minmax that equation, course correct a few times, observe outcomes and root causes and try to put safety equipment or process in the places where things start to go wrong the most.
You can get a lot of important if boring work done by 'average' or 'below average' developers - as long as they don't suffer from Dunning-Kruger.
Performance is on a bell curve (and not static). If you're trying to run your project like you only have to deal with the top 20%, well guess what, you're still going to have a bell curve. If you're in charge of any strategy and you won't acknowledge this, then you are the biggest idiot in the room, and I don't want to hear your opinions on who the second biggest idiot is.
> Overqualified people working on a project can produce some heinous code
> You can get a lot of important if boring work done by 'average' or 'below average' developers
This is why google developed the go programming language - dumb enough that people can't build overly complex abstractions, but capable enough that average engineers can churn out productive work.
The Dead Sea effect is also what you get when people are rewarded for designing a system with unknown performance properties. They get promoted and move onto another project, meanwhile lower level people stay on board and discover all the quirks, oddities, bugs, flaws, shortcomings, etc of the "well designed system", and have to do solid work to keep it running.
Of course, that's all they are viewed as doing - keeping the system running - all the glory was reaped by the evaporated developer who moved onto other teams to make similar mistakes as before(since they weren't around to experience/fix them).
I have seen this a few times. In fact one place I've worked had it so bad that this was entire MO for a "director's pet" engineer. it would not even be a fully functional product but just a proof-of-conceptish hacked together design that demos basic feature with a bunch of shortcuts. this would be just credible enough to take credit of the design and move on. I have even seen him create a bunch of confluence pages with half baked info just so that the claim could be staked.
usually this is accompanied by technically clueless management.
EDIT: a comment on that link makes the point one of the best ways to retain great developers is to surround them with other great developers. I think this hits the nail on the head.
One way we try to combat this is the way you get salary increases is mainly through promotions. Promotions are based on reasonably solid criteria and you can go up for promotion anytime you want (max every 3 months). Engineers senior to you determine whether or not you meet the criteria in a forum that is loosely based on a thesis defense. you answer questions and show your work and how it demonstrates the skills. People are either learning, executing, or teaching a skill.
People that dont get promoted get very few raises so are incentivized to leave.
The levels are essentially:
1) learning core skills under heavy supervision
2) ability to develop a feature with moderate supervision
3) ability to develop a product as it was envisioned, independently
4) ability to conceptualize a product, kick off a new product, and change direction in the middle if need be
5) ability conceptualize a portfolio of products and how they interface
6) ability to run a business unit of products
7) ability to start your own company (at this point we fund people to start their own company)
There are more detailed criteria around leadership, growing other people, contributing to recruiting, understanding, finance/accounting (P&L), following a solid methodology, contributing to the intellectual property of the company, improving the operations of the company, ability to deal with various level executives outside the company, exhibiting the values, being an expert in something etc
(This could explain why google has a hard time maintaining their old projects: Google on the resume is so so valuable that whoever doesn't rise within google leaves and gets a rise at another company.)
“So the 'less good' developers provide the business value whilst the 'better' devs get promotions and more money?“
That’s true in a lot of companies. Reliable people are kept in their positions to keep things going. Others get to do the new stuff and if that works out they look like superstars.
Here's a good example of companies and execs min-maxing their human cattle. How about you just do a good job evaluating your employees? If you're happy with them, great, if they need improvement help them. If they're doing a bad job replace them. Stop assuming the personal motivations of other people's lives with your pop-psychology nonsense.
> How about you just do a good job evaluating your employees?
Sadly, bemoaning the capriciousness and unfairness inherent to workplace politics does nothing to diminish the presence of politics in the workplace.
The in-crowd gets the good work, the promotions, the clout, and the money. Everyone else gets to maintain the balls of mud that these people crank out as stepping stones on their way to the next position. Certainly a state of affairs which is appropriate to bemoan! And then when you're done bemoaning, you can either ride the train or get run over by it, your call.
You can say the fancy guys, the "10x engineers", the "thought leaders", the people posting on Twitter all the time aren't the real, true engineers, because they don't stick around to see their efforts through. And maybe you'd even be right about that in a lot of cases. But somehow that notion doesn't seem to bother those people very much...
My general experience, at least in start-ups, has been the exact opposite. In a good company with great culture and good compensation, strong talent was usually in for the long haul, and those who don't find their place leave after a year or so.
In bad companies that's not true of course, so perhaps this can be a good measure of company quality - if their top talent are indeed good and are there for a long period of time, it's a very positive signal.
One example I can think of is Redis Labs - the core group of engineers have been with the company for almost a decade, and these guys are some of the nicest, most humble and most talented engineers I've ever met (And of course there's antirez who's in a league of his own).
A good company will appreciate talent, enable it, recognize any lack of it, and create some form of community. So it's a bad place to be a vampire, but a great place to be talented.
A bad company will fail to appreciate or enable talent, not notice vampires, and have no real community. Great place to clock in and get a paycheck, but not very fulfilling.
Talented people tend to be driven by interest at least enough that it's worth it to do things they're interested in.
The most important thing you can do during a job interview is to as best you can figure out who the talented people are and how long they've been at the company. If the most talented people are the people who have been there the longest, it's a good sign. If the people who have been there the longest don't seem to do any technical work and seem like powerpoint monkeys, it's a dire warning sign that the company is deeply dysfunctional.
In any case, the "Dead Sea Effect" is not a general truth, it's only true in dysfunctional organizations. The author of the linked post seems to be a consultant who helps failing IT organizations turn the ship around. I think his experience has led him to self-select into the dysfunctional ones.
This is something I've been mulling over for such a long time and want to resist simple answers.
But this phenomenon seems to hold true no matter the organization: A new hire for position or level X with Y years of experience will ALWAYS have a higher salary than a veteran at that organization with level X and experience Y, for Y > ~2yrs.
This is a very problematic Ayn Randian bullshit that should not be propagated and spread. Not every culture revolves around a constant race to the top. Outside of a very competitive circle that mostly consists of a few towns in the EU, but mostly small parts of the US, the rest of the world actually has the concept where a programmer or any worker finds a good place and just works there until they retire. That is not a problem. That should not be a problem.
Yes, there are people who will keep amining for their percieved top, but whatever they do, lets not ever take this concept and look at actual human beings that you see in a company and treat them as "Residue". This is behaviour that would place you firmly in the "ignore, only deal with this person if I absolutely have to" category.
I would love to work at the same company until I retire. The problem is that to actually make more money and gain skills you MUST, as a software engineer, hop jobs every 2-3 years. I wish it weren't so, but that's just how it is right now. Add to it the fact that most companies don't care to actually train or retain their talent, and you've just got more incentive to hop.
There are plenty of level 9-10's at amazon who didn't move every 2 years. Pay is around $600 - $900K? Someone can correct.
I'm not sure if this is enough for the job hoppers but retention is not terrible (despite the Amazon stories that no one lasts longer than a week and cries at their desk every day).
You are right that it takes luck or very careful strategy to be able to learn multiple fields within programming inside one single company. In my current place, I consider myself very lucky that I got the opportunity to do multiple languages (starting off as TS, to move into C# and backend), and also had the chance to do a (p)React-based ui redesign as well, so that ticks three boxes without having to move around.
But lets not forget that many companies usually do change up web stacks as well, so there might be opportunities every now and then too.
131 comments
[ 2.9 ms ] story [ 155 ms ] threadWhy is this rule (Dead Sea Effect) chosen for promotion more than all the other ones that list?
It must be because as a representative it can do the least damage (Dilberts Principle) or because... ;)
Having been through a number of downturns in my career, you do see really talented people leaving at the worst time possible for the business. But assuming that everyone who leaves is your best talent is not such a good thing to do.
Consider the team that has no dead weight at all. There is a normal talent distribution and everyone is productive.
Layoffs come around and the bottom 25% are let go. All that work needs to be distributed to the remaining developers. The best members of the team now have less time to work on the really hard, interesting problems because they have to pick up some of the boring work that still needs to be done. Some of them may leave because of this.
I've seen this happen.
It's like a bad mix of Musical Chairs and Hot Potato where nobody wins.
Ask your boss to take a week long course that will make you significantly more productive, paid for by the company. What is their answer? 9/10 employers (maybe even 99/100) would say no.
I mean, one of the top posts right this moment on HN is about how employers are recording every single keystroke of their WFH employees.
https://news.ycombinator.com/item?id=23165579
Sorry, my shoes are clean.
"This is crap" is, for a lot of people, a way to say that this is utterly mediocre (aka. not good, and not satisfying).
The OP was questioning the assumption that the vast majority of workplaces are the kinds of toxic workplaces described by the article and some commenters. Not mere mediocrity.
The account in the article and in some of the more negative commenters didn't fit the experience of the person you replied to, and it doesn't fit mine either. From my (limited anecdotal and not universal) experience and the experiences of devs I know working in various fields, I've seen some toxic workplaces, but they weren't very common and stood out.
I recall talking to (generally younger more emotionally immature) folks who worked at places I've worked. We had good pay, really good benefits, we were on a friendly team with management keeping a light touch. I was happy. They focused on flaws, complained about things like ending free donuts on Fri as though they were living under tyranny, saw things as generally hellish, and were miserable. I've personally seen just what the OP was describing in others. It's worth recognizing that you do get out of things what you bring to them, since not recognizing it is a recipe for misery. If you think everything is toxic, chances are you're bringing something to the story that's causing that.
"The future is here, it's just unevenly distributed." In a trade where fixing things is a job skill, knowing how to fix things that nobody wants to fix (yet) can be demotivating, even aggravating. Does that make one toxic, or can there be pervasive problems that takes your industry 20 years (epochs in software) to adopt?
I can see the enormous harm having no technical people who know the domain causes in my current role, but the benefits of learning it seem to be slim to none for the individual engineer. The harm is in low productivity for my employer, but they don't seem to care about retention anyway. Most do not.
What often matters is whether one is in a position to develop skills and enhance one's impact on the organization.
It can be true to a certain extent in that you may have _some_ engineers who aren't very good sticking around in some organizations. But why would you think that is the case for most of them? You might have engineers deciding to stay because they have a family and think their job is fine.
Or maybe for organizations that have poor leadership or existing engineers, that is the case that the good engineers realize that and leave. But for really good organizations, they are extremely selective in terms of recruiting and compensate employees highly, with difficult but rewarding work, it might be the opposite -- people who weren't really cut out for it are quickly eliminated.
For me personally I eventually came to the conclusion that there was no perfect job, and my plan for personal growth is not to flit from job to job anymore trying to get higher salaries, but rather to save and work on side projects to hopefully eventually have my own business. So for that strategy it doesn't make sense to keep switching jobs.
> The "Anti Dead Sea Effect" suggests that in any organisation, the skills/talent/efficacy of engineers is often proportional to their time in the company.
> Typically, lowly skilled engineers find it easy to gain employment elsewhere and are the first to do so. Engineers who have obsolete or weak skills will tend to leave the company, as finding employment elsewhere is not difficult. This is particularly pronounced if they have not gained incremental pay rises over their time in the company, due to their poor skills, as it can be easier to fool someone else to pay them more.
That’s where HR policies dictate that no one will get more than slightly above cost of living raises no matter what while at the same time having to bring new employees in at market rates.
You find a situation where the more tenured employees are getting paid less than new employees with the same skillset but without the corporate understanding.
On the flip side though I've also seen senior (long serving) staff massively overpaid, because they got massive bumper promotions and pay rises during growth periods for the company, and then when things tighten and growth slows, they're still sitting on very generous pay. Particularly in 2010-2015 where staff had got big increases in 2000-2007 but all the new staff had been hired during the recession.
They will end up on HN complaining about “ageism” in the industry.
At 45 myself, I can’t afford to allow myself to get comfortable at a company that isn’t using technology that keeps me marketable. If I see that starting to happen it’s time to change jobs. I never want to be beholden to the shins of a single company for my livelihood.
I would much rather be able to depend on my marketable skillset, my updated resume, and my always warm network of former managers, coworkers, and local recruiters.
Not really.
A well-run organization will hire the right people, and then foster their development in such a way that they are productive, happy, and grow, and will compensate them sufficiently. If any of those things break down, you can run into any number of problems, and they won't necessarily take the form that seems obvious at first.
I've seen organizations take very competent people and ruin their morale and shunt them into projects that were really detrimental to them getting out, in ways that aren't obvious at the time. Or weird organizational dynamics cause changes over time that make someone look bad in ways that aren't their own fault.
There's just weird things that happen that don't simplify to simple models of "talent that is completely independent of environment and perfectly visible."
Another problem is that CEO's don't understand what they're really in it for -- they're not in it for the mind state that comes with being a leader but only for the profits they can extract from the bargain it's obvious by their actions and their dress
In short a company that has high alignment and high autonomy the two are not mutually exclusive and indeed form the basis of what I'd call the American Way
Once we've been paid a generous pittance we're divorced from the fruits of our labour which are then flipped into astronomic profits while we continue to slave over features and slowly suffocate in meeting rooms similar to interrogation chambers
If we actually had ownership and took our rightful due we'd be far better off
The difficult part is that academia doesn't prepare us for these realities and let's face it the whole curriculum is a joke compared to real world professional activities
It's just that every year there's a new crop of naive youngsters willing to sign their rights away for the privilege of coming in wearing a hoodie and sweatpants
I mean, I was in FBLA for a while, and it did zilch for communicating what the realities of modern business were.
What?
I have witnessed a vice president at a danged top five bank in Canada dressing like he was going clubbing
You're acting like the t shirt is the pinnacle of shirt technology it's literally two tubes of flimsy fabric aren't you even a little ashamed of your bare arms after all these years? Do you like that feeling of leaning in close and rubbing arm hair with your neighbour? Ever consider that bare arms might be rude on some level naw you likes what you likes I guess we should be grateful you wear toe socks most days
By the way you have zero freedom -- these companies are eating you from every angle and you're taking it on the chin
https://www.washingtonpost.com/news/get-there/wp/2016/07/07/...
^^ contributing to falling standards since '97
I agree that the current crop of MBA CEOs are detrimental as a whole.
Perhaps it's just starting off with a fictional company but this really reminds me of someone being asked to list heroes and naming John McClane and the guy who said Nuts to the Nazis at the Battle of the Bulge. Which I got to give props to the second guy of course, but it feels like the viewpoint is limited and not securely tied to reality.
Look it may be idealized but what makes us think that we can grow complacent all of a sudden what happened to the cold war and the arms race?
Just because we declared peace and came from a generation of acid heads doesn't mean that we're not operating in a war zone
The most dangerous weapon is intelligence and intelligence operative is another word for knowledge worker
A) large scale production and innovation were required
B) but globalization hadn't arrived so there was an extreme lack of supply of educated and experienced individuals to deliver the objectives of A
Produced a lot of "great" companies in the sense that they offered for both labor and knowledge workers good jobs with upward mobility, and a strong sense of self-identity and orderly progress.
As soon as point A was subsumed by corporatism (patent and copyright wars, debt servicing) and B faded away (so labor lost its seat at the table) companies have become "commoditized" - there's absolutely zero point in establishing or aboding by a corporate identity today when you may have new masters tomorrow.
Maybe there are a few epic companies but for 80% of devs at a guess they'll grow up grow old and grow decrepit in an open concept office reeking of pizza and microwave popcorn surrounded by a bunch of distressed disrespectful and discounted directors and managers treating them like cannibalistic humanoid underground developers while preparing them to be eaten by the machine like a rabid pack of Morlocks
I wasn't put on this earth to be turned into Soylent Green for a feature factory that chews up people and spits out machine code and Alan Turing sure as hell didn't give his life so we could wear house shoes to the office
Compared to what we're missing out on the free granola tastes like bitter bile and all ever managed to do was get drunk on great quality booze I'll admit and barf up artisanal pizza and salads
Some companies just know how to treat their employees well, and they benefit from that.
People who switch more often however ladder up on their skill sets. Taking a diverse number of approaches that change from place to place and adapting nicely to them all and maybe even bringing a few skills from elsewhere to help in their current job.
A comfortable job makes you stagnant. Movement is good. Even within company.
Overall, with reasonable management, people have better idea about your skills and abilities after working with you then shortly after interview. Interview is artificial short situation. If that applies, staying makes a lot of sense because you get more challenging tasks, more autonomy, your word is trusted, you have more say in negotiations. Leaving to another company means that you have to start again less trusted, won't get those challenging tasks and generally need to prove yourself before gaining the same back. Plus yoi risk that environment in new company will be more toxic. Changing team is in the middle - you have reputation and sometimes simply need change so that you don't stagnate.
In such organization, pure talkers loose credit over time, get moved from team to team and no one wants to keep them and end up on project they themselves don't want and nobody wants and leave.
Obviously, if the company starts to be dysfunctional over some treshold or stagnates, the high quality people will leave as the above benefits get lost. If it is toxic or unchallenging right now, you are good chance another company will be better.
You can be a lousy engineer, but if it is all your lousy code and you know it line by line, you will be a heck of a lot more effective than the star engineer who has been there for just a few months and hasn't learned the codebase yet.
The point of these house of cards systems is that there is far more incidental complexity than there is essential complexity. The requirements are not enormously complex. The problem is that the incompetent engineer is only thinking tactically within the bounds of the system as it is currently implemented, they aren't thinking strategically about how the design could be improved to require much less work.
1. You were brought in to do very specific work (i.e.: migrate something to k8s).
2. You were brought in as a token due to your social media following.
Seriously, how else?
Other companies offer added benefits to retain their valuable talent.
The push among "social media stars" to declare long tenures as a negative is problematic, to say the least.
If you think you are "up to speed" on a large company a week or so you are usually so incompetent you don't know what you don't know.
That's how most work gets broken down though. Just find an entry point and start reading code. Read docs, comments, find dependencies, figure out what needs to change in light of your change.
You shouldn't need deep product and tribal knowledge to make simple changes.
He dramatically improves the processes and code which isn’t domain specific and just leaves the rest a mess.
Improve auth? Yes. Improve finance module? Yes. Build better APIs and SQL queries? Yes.
Fix the problems in the actuarial system for funerals? Nope. That’s when you leave and do it all over again.
They contribute to all the parts not specific to the product but common between many products.
To me, it appears it presumes almost something like Santa Claus existing world, where "everybody gets what he deserves" (where you "evaporate" to some place better for you) which isn't how typically the world functions.
Moreover the concept of "talent" is involved in the principle, which is not something that I would use as the name of the property that I would use for selection of people who'd work on some project.
Come to think of it, he was gone too about a month later.
I'm much more willing to believe that the quality of engineers at an organisation has more to do with the organisation itself and the sector.
Overqualified people working on a project can produce some heinous code. What I want as a team lead is to know how far I can trust people with different tasks, figure out who can be stretched in what directions, make a stab at scheduling the work out to try to minmax that equation, course correct a few times, observe outcomes and root causes and try to put safety equipment or process in the places where things start to go wrong the most.
You can get a lot of important if boring work done by 'average' or 'below average' developers - as long as they don't suffer from Dunning-Kruger.
Performance is on a bell curve (and not static). If you're trying to run your project like you only have to deal with the top 20%, well guess what, you're still going to have a bell curve. If you're in charge of any strategy and you won't acknowledge this, then you are the biggest idiot in the room, and I don't want to hear your opinions on who the second biggest idiot is.
> You can get a lot of important if boring work done by 'average' or 'below average' developers
This is why google developed the go programming language - dumb enough that people can't build overly complex abstractions, but capable enough that average engineers can churn out productive work.
Of course, that's all they are viewed as doing - keeping the system running - all the glory was reaped by the evaporated developer who moved onto other teams to make similar mistakes as before(since they weren't around to experience/fix them).
usually this is accompanied by technically clueless management.
[1]https://daedtech.com/how-to-keep-your-best-programmers/
EDIT: a comment on that link makes the point one of the best ways to retain great developers is to surround them with other great developers. I think this hits the nail on the head.
People that dont get promoted get very few raises so are incentivized to leave.
The levels are essentially:
1) learning core skills under heavy supervision
2) ability to develop a feature with moderate supervision
3) ability to develop a product as it was envisioned, independently
4) ability to conceptualize a product, kick off a new product, and change direction in the middle if need be
5) ability conceptualize a portfolio of products and how they interface
6) ability to run a business unit of products
7) ability to start your own company (at this point we fund people to start their own company)
There are more detailed criteria around leadership, growing other people, contributing to recruiting, understanding, finance/accounting (P&L), following a solid methodology, contributing to the intellectual property of the company, improving the operations of the company, ability to deal with various level executives outside the company, exhibiting the values, being an expert in something etc
(This could explain why google has a hard time maintaining their old projects: Google on the resume is so so valuable that whoever doesn't rise within google leaves and gets a rise at another company.)
I'd stay there for one year (less looks bad on a CV) get the 'promotions' and then move.
That’s true in a lot of companies. Reliable people are kept in their positions to keep things going. Others get to do the new stuff and if that works out they look like superstars.
There is some distinction between being able to kick off projects with existing products and kicking off a totally new product.
most people are working on kicking off updates to existing products.
https://github.com/dwmkerr/hacker-laws/blob/master/README.md...
Sadly, bemoaning the capriciousness and unfairness inherent to workplace politics does nothing to diminish the presence of politics in the workplace.
The in-crowd gets the good work, the promotions, the clout, and the money. Everyone else gets to maintain the balls of mud that these people crank out as stepping stones on their way to the next position. Certainly a state of affairs which is appropriate to bemoan! And then when you're done bemoaning, you can either ride the train or get run over by it, your call.
You can say the fancy guys, the "10x engineers", the "thought leaders", the people posting on Twitter all the time aren't the real, true engineers, because they don't stick around to see their efforts through. And maybe you'd even be right about that in a lot of cases. But somehow that notion doesn't seem to bother those people very much...
In bad companies that's not true of course, so perhaps this can be a good measure of company quality - if their top talent are indeed good and are there for a long period of time, it's a very positive signal.
One example I can think of is Redis Labs - the core group of engineers have been with the company for almost a decade, and these guys are some of the nicest, most humble and most talented engineers I've ever met (And of course there's antirez who's in a league of his own).
A good company will appreciate talent, enable it, recognize any lack of it, and create some form of community. So it's a bad place to be a vampire, but a great place to be talented.
A bad company will fail to appreciate or enable talent, not notice vampires, and have no real community. Great place to clock in and get a paycheck, but not very fulfilling.
Talented people tend to be driven by interest at least enough that it's worth it to do things they're interested in.
The most important thing you can do during a job interview is to as best you can figure out who the talented people are and how long they've been at the company. If the most talented people are the people who have been there the longest, it's a good sign. If the people who have been there the longest don't seem to do any technical work and seem like powerpoint monkeys, it's a dire warning sign that the company is deeply dysfunctional.
In any case, the "Dead Sea Effect" is not a general truth, it's only true in dysfunctional organizations. The author of the linked post seems to be a consultant who helps failing IT organizations turn the ship around. I think his experience has led him to self-select into the dysfunctional ones.
Turnover is far higher for bad situations.
But this phenomenon seems to hold true no matter the organization: A new hire for position or level X with Y years of experience will ALWAYS have a higher salary than a veteran at that organization with level X and experience Y, for Y > ~2yrs.
Yes, there are people who will keep amining for their percieved top, but whatever they do, lets not ever take this concept and look at actual human beings that you see in a company and treat them as "Residue". This is behaviour that would place you firmly in the "ignore, only deal with this person if I absolutely have to" category.
I'm not sure if this is enough for the job hoppers but retention is not terrible (despite the Amazon stories that no one lasts longer than a week and cries at their desk every day).
But lets not forget that many companies usually do change up web stacks as well, so there might be opportunities every now and then too.