I was chatting with a Trader Joe's cashier Sunday. It turns out they change jobs every hour. That was a surprise to me; when I long ago worked in a grocery store, I was assigned to one position for 8 hours for every shift. Why does Trader Joe's do it? To keep things interesting: "She tells Money that the change in jobs during shifts helps to keep things interesting for employees. 'It's perfect because it breaks down your shift. You don't get tired doing one repetitive thing,' she told them." https://www.mashed.com/175743/workers-reveal-what-its-really...
If Trader Joe's can do it hour by hour, I think tech companies can do it at least every year or so.
I'm hiring right now and one of the major draws for the good people I'm talking to is the chance to do something interesting. If that's why their coming, it's unsurprising that I'll have to keep giving them that over time. For us, and for most places I've worked, I think that's doable.
It kept her there for 12 years or so.
It helped a lot in fact in doing quality work. Thinking that you will inherit things you didn't do. That some other people will inherit your work / decisions. And always learning new things / keeping best practices in mind.
It's something I've kept in mind everywhere I've been.
the same 3 core people stayed on the project for 11 years from the begging and hired and fired around weither you're a threat to their position. managers would come and go, they were helpless and held no real power in the project, until they settled for a puppet manager who would defer every decision up to them and act as a secretary.
the result was a huge pile of tech debt that only they could touch and they kept getting raises because the project couldn't afford to lose them, until the project died of it own weight.
The average tenure on many, many teams is 6 months.
Does help starve off the boredom.
If you have a good manager, maybe its fine. But if your manager needs some headcount to cut.... don't trust them.
"Here's Joe Candidate, he applied for your open position, and he has a 3 month old PIP on track to be resolved in 3 months. Accept or decline the transfer to your team?"
Ultimately, I think you're right. It's impossible to build a bureaucratic pachinko machine that will make the correct personnel decisions. You really need line managers dedicated to coaching staff, and higher-level managers coaching line managers. One-size-fits-all rules are not the optimal solution. But bad management is endemic in so many organizations that I'm sure these abuses go on all the time.
Let's say I want a new project. I can search for a new team internally, find a mutual match, sign on, start and.....keep my current salary.
Or I can search for a new team externally, find a mutual match, sign on, and get (in most cases) a significant raise and a new sign-on bonus.
Even at a company I like, there's a significant incentive to leave.
Searching costs are a lot lower internally (no leetcoding needed in most cases, hopefully) and you are more likely to be able to land something outside of your current skillset, increasing your long term compensation and job security.
> People hire at companies, bbut leave their boss.
In my anecdata thus rings true.
The perfect match would be pairing a developer that can explain some technology to a 12 year old with a developer that has the equivalent knowledge of a 12 year old (for that technology.) That would keep things interesting and build a very resilient organization.
To keep things interesting/challenging for the experts I'd have them also reach across domains (to system eng, safety, quality assurance, bids, R&D) and sometimes even overreach (blur the boundaries) while protecting them from corporate-strife. Software is far more interesting in the context of the product, the customers, actors on every critical team. I'd also have them try new techs, or find some innovation/maturity budget for 'pet peeve hunts' and we'd often end up with new tools, large-scale improvements in code, perf, readability, robustness, observability, or testing. I'm going off topic here but I'm sad that 'Slack', the book, isn't more widely read.
- 1 year doing iOS frontend/product - 1 year doing low-level iOS systems - 2 years as a PM - 1 year doing backend
I was never bored. I think giving engineers the flexibility to move around (provided they stick with one thing for a year or so) is a great way to retain folks. I can also say my efficiency during year 5 was fairly absurd (I won't necessarily say overall productivity was higher at the very end, since my interest in the company was waning, but I saved a lot of time by knowing exactly who to talk to and how systems across the stack worked).
It seems like modern management theory has gone out of its way to optimize out the impact that any one low level employee can have on the company. And that makes sense when the goal is to make money. But what you're left with is a society full of people in mind numbing dead end jobs developing psychological issues.
This seems like another thing Trader Joe's does—I've been to their stores in a few places I've lived, and while they always have a similar aesthetic, a lot of the specific decorations seemed to be unique per store with nice local details. Of course, this could still be done in a totally top-down way—hiring local consultants or something—but I wouldn't be surprised if a lot of that was done by the store employees.
> And that makes sense when the goal is to make money.
Abstractly, I expect that this isn't the best way to make money. Modern management practices seem to value legibility and control even at the expense of expected income and company resilience. This probably says something fundamental about our culture, philosophy and incentives, but I'm not sure exactly what!
It's only been a year since they were in the news for not letting people wear things that say Black Lives Matter.
And there was also the employee fired for sending a letter to the CEO about working conditions.
https://www.inc.com/suzanne-lucas/trader-joes-dan-bane-firin...
I think there was a boycott, but people move on so quickly.
Would you also insist that TJ allow employees to wear "Meat/Abortion is Murder" buttons?
> employee fired for sending a letter to the CEO about working onditions.
Allegedly. The journalist made no attempt to investigate or disprove TJ's side of the story, not even to ask the employee about it.
They did! The TJ response is right there, after the termination letter, and the way I read it, they confirmed the story beyond a reasonable doubt by producing a denial that only sounds like a defense without context.
It says, "store leadership terminated this Crew Member's employment because of the disrespect he showed towards our customers. We have never, and would never, terminate a Crew Member's employment for raising safety concerns".
Their excuse is that he was not respectful enough to the customers...by demanding management exclude people (after 3 strikes) who refuse to wear masks and are abusive. And this is not a health concern, nor did they have any problem with the other health concerns. Really??
This is how every professional defends the indefensible these days. They craft a "non-denial denial" that communicates a falsehood to people who don't have the context, and doesn't technically lie or deny anything to people who do have the context. It is truly having your cake and eating it too.
And now things are interesting again.
One of the reasons was that they wanted to "cross-train" people. They liked to have a lot of process, and tended to think of employees as "Swiss army knives," that could adapt. They had style guides, and a whole infrastructure (HR and technical), to support this. Lots of training.
Not sure how effective it was. I feel that they weren't as productive as I'd like, but they were really good engineers. I had a lot of respect for them (which doesn't mean that I didn't want to strangle some of them; from time to time).
Much of the administrative work related to educational and research program management is handled by the tenured faculty, and we get rotated regularly through administrative positions. In the sixteen years I've been there, I have, like most of my colleagues, served on a dozen or more committees and have managed programs for periods of several years each. The result of this process is that faculty members tend to become, over time, reasonably competent administrators with a broad understanding of how the university functions, and that in turn helps the university—a large, necessarily complex bureaucracy—to function reasonably well.
We also have a small professional administrative staff, and they also get rotated through positions every few years. They must keep really good documentation of what they do, as staff members are usually able to get up to speed on their new jobs very quickly.
More seriously, your observation is brilliant (and almost makes me wish I hadn't just accepted a new role). Because the software field contains such a breadth of things to know and breadth of potential applications, it's hard to get very far without having the kind of mind that is motivated by some level of intrinsic interest, and that can be a currency in its own right.
Surprise! Your team is shutting down and being moved to New York! Go back to the dating pool!
FB is a company that is successful in spite of all its internal failures.
In the case where people were objecting to being re-shuffled, did they get to pick where they went? Or were they just told? a little agency can help a lot.
In the second year, we had a survey where devs could say what their preference was: (a) team/specific devs (b) topic (c) none
That worked pretty well.
There's just a complete mismatch in how much the company I work for values the experience and skill I gain over time and how much everyone else values it. Over time recruiters come to me with opportunities to make more money, they try to convince me to leave. It's such an obvious disparity I can't help but stop caring about the job I'm doing when it's only real utility to me is that I don't have to put in any effort to keep having it.
Yikes! That's my current situation in a nutshell. My biggest concern is that I don't want to risk jumping ship and landing at a toxic company/team, or landing in a bad work culture.
Don't get me wrong, I've got a nice vision about what I want to do where I am, but I can't get the money to carry it out, so I'm in that "no to low effort" stage.
In my experience there’s almost always something toxic about a workplace, it’s finding one you can live with for a few months or years that’s the trick.
Because it's a form of systematic corruption, maybe the biggest kind of corruption in the White Collar world.
The objective is to 'do a good job' , not the minimum, in every endeavour.
Doing the 'bare minimum' to keep a job is actually generally far under-performing, as most companies won't generally let people go.
It's how entire industries stagnate and sink.
When internal participants spend most of their time fighting over the surpluses, it's over.
This applies to companies as whole as well of course, i.e. the $1B government contracts that should only be $500M etc. etc..
Do a good job. If there's a better fit elsewhere, that's fine too.
In a world like that, the people who just "do a good job" are characterized by some level of stubbornness coupled with an ability to navigate this kind of environment. Should that really be the key skill that matters? Is not being sufficiently stubborn "a form of systematic corruption"? That seems like a fundamentally uncharitable perspective that also provides no real solution. When that's how you see the situation, what can you do about it?
My experience has been that changing environment and process to actively trust people and, crucially, clearly signal that trust improves things far more than blaming people. If you expect people to phone it in, they probably will; if you can establish real trust instead, they'll go out of their way to make something work.
Yes if business priorities change I could end up out the door, and that happened once, but no hard feelings. I quit all my other jobs anyway and there was nothing malicious either way.
The clothes on my back, and those if my children, the house we live in, the car we drive all were paid for by my employers. Yes it was a transaction, but a beneficial one on both sides. It’s all good.
You're also selling yourself short. You paid for all that stuff. Your employer paid for the work you did, and probably took more whenever they could; through on-call, off hours work, etc...
I try to comp my time, but I know I put in more then I'm compensated for, even when I was technically "hourly". I'm fine with that, but I expect to take back when I need it.
Why is it a character weakness? Why is it bad for you?
By putting in low to average effort and switching jobs often, I doubled my salary in 5 years. All the while, I've had tons of time for vacations, hobbies, and having a life outside of work. And I've never gotten a single negative performance review. All my 1 on 1 feedback from managers has been glowing.
If a company could use half the labor to get twice the profit, they'd do it in a heartbeat. That's the purest essence of capitalism. Why should I behave differently? The guy on my team who works nights and weekends to get assignments done gets paid the same as I do. He's just more miserable for it.
Sounds like you're talking about the extra time that some places seem to expect. If that's what we're talking about - I totally agree that it's not worth it.
Edit: if I could double my output and know that my salary would double too, I'd do it in a heartbeat. But I've never found a company with a comp structure that can actually achieve that. It's far more effective to just go on autopilot for a year or two, then get a 30% raise at a new job. Rinse and repeat.
I don't think the formula is particularly linear. Double value produced means double the salary is likely the wrong equation, but it is right in principle.
If you work hard you will be developing a lot more relevant skills than floating along. This makes you more valuable. Not everyone recognizes, or is willing to pay for that extra value in salary or promotions. But some people will, and some people are.
In the event you strike out on your own as a freelancer or your own business, working in that manner becomes your lifeblood that will make or break you.
I get more reward and fulfillment from my hobbies and personal relationships than I'll ever get from creating another CRUD app for ${boring_business}. Half effort leaves me more energy for those things, and half effort still gives me more than enough experience and talking points to nail my next interview and demonstrate value to hiring managers.
> In the event you strike out on your own as a freelancer or your own business
I have no intentions to do this, but if I ever did, then as my own boss my performance would be directly tied to what I earn. So yes, I'd have a much different approach.
I didn't say that.
I said they should 'do a good job'.
As should the other company staffers, execs and the company as a whole.
It's difficult to measure employee productivity. Sometimes, managers don't care. Sometimes employees make every effort to hide their lack of productivity.
Despite that we might think of companies as 'evil' - most of them are not. We're all human, none of us like laying people off or firing them. It also comes with negative political consequences i.e. the person you fired may never be a good reference in the future. The manager may have negative incentive to let people go, as their 'worth' is founded on headcount. And truly the vast majority of employers just don't want to layoff or fire if that don't have to.
What this means is that there is quite a lot of 'grey' in the system, and there's a lot of goodwill assumed by all parties.
Everybody is saying that they want to do 'remote work' and at the same time signalling that they may 'want to do the least, because technically, I'm getting paid for that?' - in a situation wherein there is quite a lot of 'trust' expected?
How do we expect employers to 'trust' workers in a 'very noisy productivity assessment channel' with this kind of approach?
It just won't work.
There isn't enough time in the world to be looking over each other's shoulders like that (I particularly don't like Amazon's approach for example).
So the onus is on us to 'do a good job'. It doesn't mean 'break your back' - it means try to do what is expected, keep your chin up, grind through it.
I feel that if people could see the big picture, and see that mountains are climbed one step at a time, that morale across the board would be higher. 'Passion and inspiration' are nice, but fleeting, whereas 'grinding' through the issues is how most things ultimately get done. In this way, they might be more personally incented to 'fix that bug' or 'get that build out'.
Things like that teach me that corporate "good will" is an elaborate show. You are an expense to them, a necessary expense to achieve a certain output. You are paid your market value, not penny more. If they can pay you half your salary to get the same output, they will. If they can lay your team off and get significant cost benefits, they will. You are disposable. That doesn't mean they're bad people, they're just doing what any self-serving profit-seeking bureaucracy would do.
Thus the relationship between an employer and an employee is always transactional, and any feeling otherwise is an illusion. It's not evil - it just is.
The only asterisk to all of this is if you're at a more community-focused organization like a non profit. But the vast majority of companies that employ HN readers are not that.
First - you're mixing streams here.
This is not 'amoral'.
This is just people trading services.
It's not 'amoral' of you to not keep the plumber on when he's done.
Second - companies actually do avoid layoffs. Most companies could layoff 10% right now and not skip a beat. Especially white collar. Google could dump 1/2 it's staff and be just fine.
Most companies have slack and generally avoid doing layoffs unless there's a special situation.
"the relationship between an employer and an employee is always transactional, and any feeling otherwise is an illusion."
Generally, this is the case, yes, why on earth would anyone think it's anything else?
Why on earth would a company employ people otherwise?
But again, once people are employed, they're not doing to drop them instantly.
It's all besides the point, in any case, one should be aspiring to 'Do A Good Job'.
> Most companies have slack and generally avoid doing layoffs unless there's a special situation.
You're just making arbitrary claims here - the fact that companies can and do lay people off without notice and, sometimes, without severance, still confirms the nature of what I'm saying. It's all feel good until it isn't.
> why on earth would anyone think it's anything else?
I don't know; ask the others in this thread. There are plenty of people here claiming that they owe their company things (time, emotional investment) that go beyond the scope of their employment contract simply because it's "nice."
> once people are employed, they're not doing to drop them instantly.
This is simply not the case. Or, rather, it can be the case so easily and at any time that it's foolish to assume otherwise.
I've seen far too many corporate moves that were driven by executives looking to goose the stock price to believe that. You can argue that it's the executive's job to goose the stock price, and thus they "have to" lay off people in order to avoid taking as much of a financial hit in a recession or whatever, but that just gets us back to the original position: the company has a minimum amount of loyalty to me, and, in return, I have a minimum amount of loyalty to the company.
In the face of a major recession, execs are not laying off to 'goose the stock' they are adjusting to the situation.
Of course it does happen, but in the grand scheme of corporate development across all industries, it's not hugely common.
There is a difference between 'loyalty' and 'doing a good job'.
It's not expected that companies will keep contractors for the long term, but they still would be expected to 'do a good job'.
And of course companies do not lay off talented people unless they have to - that makes no sense.
Even the most darkly cynical and Machiavellian Execs will try to keep talent if they can, otherwise, they can't make money. So more appropriately, employees will at least be held onto to the extent that they materially create value.
But again, even in that context 'Do A Good Job'.
Honestly, if even it's a crap company, it still makes sense to 'Do A Good Job'. Even in the face of grind.
The only time I think it makes sense to 'not' do a good job, is where it would be truly utterly futile or illegal etc..
If someone is in a bad situation, they can eventually move on to where their 'good work' is more appreciated / better compensated.
Loyalty isn't a huge requirement, but doing good work is.
My current employer, fortunately, does. Even before COVID, they were flexible w.r.t. work from home, and the management is more than willing to let you do your thing as long as you're delivering results. I will, and have, repaid that flexibility by going above and beyond in handling issues that weren't strictly my responsibility, working late on more than one occasion to ensure that deliverables got out the door in time.
However, I have had the misfortune for working for less understanding management. I've had management say, with a straight face in a team meeting, "If you're working from home, you ain't working." I've worked for management that openly ridiculed employees who had to take time off for family medical emergencies. You can be sure that, in those situations, I clocked out exactly when I considered my shift over.
The former is the employer's problem and as far as the latter, I assume in this discussion that the employee isn't committing borderline or outright fraud with respect to the job description laid out in the contract. Considering how many people get hired to do flex work like security guards or to deprive competitors of talent, plenty of employers are aware of this dynamic.
However, my goodwill only goes as far as "at will" employment protects me, which isn't very much.
Something tells me that the commenters in this thread who are defending the idea of working hard just for the good fuzzy feelings have never been through a bad layoff.
If those sound like awfully specific examples, they are. Each one of them actually happened to someone I know.
Nobody has that objective except the very passionate. A company will happily do a shitty job if it will still get paid. See IBM. See Facebook and Google on customer support.
> Doing the 'bare minimum' to keep a job is actually generally far under-performing
My manager hasn’t seemed to notice that I work a 1/3 of what I used to now.
This is very cynical and pretty much wrong.
I would put that attitude probably in the bottom 20%. I think most people want to do a good job.
It's also kind of toxic because unfortunately it spreads.
'Doing a good job' frankly, often does not even mean working harder, from a lower-performing perspective it usually just means actually paying more attention and being more conscientious.
And yes - in a large corporate situation, it's very often sometimes to feel the impact, be recognized etc. etc. - but that shouldn't dissuade from basic professionalism.
If you're truly only 1/3 as productive, your manager surely notices, but there's probably little they can do about it. It may not be to their benefit to even try to fix it.
This is what I mean by systematic decline - this is how bridges never get built, and they go 10x over budget.
This is why NASA spends $200 Billion on only a few launches.
It's why Ford/GM can't innovate.
What Space X and Tesla are doing is in some ways spectacular, but in other ways, they are just doing what they are supposed to, and they can, because people are just doing their jobs.
Life is a giant Prisoner's Dilemma. We can all spend our time trying to do the minimum, or even taking the cream off the top while nobody is looking, in which case, when everyone starts doing that it all comes down - or - we can try to be consistently conscientious.
I'd buy that most people want to do a good job. I doubt very much that many care much about doing so, beyond what's necessary or what they expect to gain them greater compensation, at the job they do to earn money to pay the bills. Everyone I know with even a little of that "spark" has had it extinguished by experience. Usually before they're 30. Most reserve their good work for things that pay little or nothing. They care a lot more about that.
For real, If there is any single problem with the world its people doing too much. The oceans didn't fill with plastic from people sleeping in. The air didn't fill with CO2 because people clocked out early on Fridays.
Take a step back and look at life. Why should it even be work? Do birds sow seeds? Are monkeys bad programmers? Or, are they just monkeys?
So many, especially systematic problems would be much better resolved when people did their jobs a little better.
Montreal just built a rail line for $500M that may likely become redundant. That's bad, it matters. It's mostly a leadership / management problem of course.
The basic structure of small consistent pay bumps was extremely effective when people stayed at companies for decades. Work twice as hard and make 2 percent more for the next 30 years, that’s a big bump. Pensions pushed that out so even people nearing retirement still had reason to care.
I am not recommending people do the minimum, just acknowledging how people respond to incentives.
So I’m basically just vegetating until I quit.
That's an extreme example, but even in a "good" system, management is notoriously blind to the actual value of an engineer. In a perfect system, performance could be measured empirically and compensation would be based on that. But no one on earth has figured that out yet, and something tells me they never will.
Imagine a world in which it's very difficult to assess performance, because that's often the reality.
How does this system flourish if everyone is doing the minimum / least?
It doesn't. It fails.
'Do A Good Job'.
That the performance reviews say are a secondary factor.
If you all stop doing good work, it will fall apart quickly and you will all be poor.
I'm replying late, but wow, this is a gem of an argument.
Really? The economic incentives that create this lucrative field in the first place are all gonna collapse if devs realize they don't need to bust ass at their job anymore? It's amazing that you think the individual work ethic of engineers is the only thing holding the tech economy together.
To give an example, at one of my previous jobs, for several years in a row I was noted by my managers as being a high performer and someone who would be ready for leadership. Despite this, I got an average (you did good but that's it) performance rating, because only a few people could get the higher rating. The first year I had just joined so I was excluded by default, the second/third year other people ranked higher and because that rating only went to about 2 people, I missed out. When after this my manager approached me about a lead role, which was extra responsibility but no extra pay, I was pretty much done.
When I was in my 20s-30s I hated people who seemed like they checked out, but I understand that a lot more now. Again, I'll do a good job regardless and if I don't get rewarded for that, I'll find the door and go elsewhere, but I completely understand why people who don't have that luxury or drive would rather keep their heads down and just go through the motions.
So you 'did a good job' and the company maybe indicated there was a future for you, but they couldn't fulfill it. That's not hugely nice.
But can you fathom for a minute that it seems your peers were doing 'An Even Better Job' and perhaps better suited for advancement? At least in the eyes of the company?
Put on your 'Management Hat' for a moment and understand that maybe it's unfortunate you thought there was an opportunity where there was not, but that those kinds of indications are fleeting anyhow.
Someone thought they were going to Lead the League in Scoring until it turns out they didn't.
At very least, despite the companies misrepresentation, a lack of professional maturity for young devs. to assume that 'hope' is a guarantee of anything. When you're a manager, you're a manager, before that, it's all talk.
This scenario isn't even a 2 out of 10 in terms of the mistreatment or misappropriation of employees - it's just a mostly normal thing that happens in noisy channels.
Maybe they were thinking of advancing you - someone else came along. That's life.
I'm glad you seem to want to 'Do A Good Job' regardless, but it should be noted that you're not comped for future prospects of advancement. So in this situation just 'Doing A Good Job' would be an expectation of the job. Not some thing you do on the condition of some future event.
If you are mistreated, obviously, that's not good, and it's the company leadership 'Not Doing a Good Job' but I don't see a strong indication of anything other than normal operations here.
Trust and loyalty are 2 way streets, the social contract has been broken by corporations
What’s the alternative, against their will employment? That sounds like it would suck all around.
This is universally how people with actual leverage (i.e. high performing athletes, Fortune 500 C-level execs, etc) get paid.
There is generally surplus value in any exchange of goods or services that benefits both parties.
Some people insist that if the employer captures it, they have stolen it from the employee, and others think that if the employee captures it, they have stolen it from the employer.
The fact is, it's up for grabs, and what I think is salient morally, is that neither party created it alone.
(I'm making an assumption here that you're not big on Marxism, I guess—maybe you do agree with both propositions)
"If I make a penny my boss makes a dime, that's why I shit on company time."
And, pretty much all of those deviations from theory end up going against workers and in favor of employers. Labor markets aren't truly free because most people can't afford to just quit their job one day, then walk across the street to their former employer's competitor and negotiate a more suitable contract. Health insurance is so expensive that most people probably couldn't afford the amount of coverage they need without the subsidy their employer provides. Meanwhile, employers get away with stuff like union busting, just like Amazon is accused of doing, because "punishable by fine" really means "perfectly legal, as long as you have enough money," so that regulatory fines get treated like just another "cost of doing business."
Is it any wonder the only narrative about the employer/employee relationship we ever hear is the one that's favorable to the more powerful side?
Second - professionals have incredible power and market wages are what they are. Most corporations do not profit in some exceptionally linear way beyond employees.
The 'Giant Lie' is that corporations are some magical entities that collect magic surpluses and shareholders and owners run off or private jets.
The vast majority of companies are not hugely profitable, and most small and mid-sized one's are not. Especially not in some disproportionately 'non linear' way.
Stock prices may be crazy - and those who trade stocks may or may not be making bank - but that's a very odd historical situation we have where shares are trading at absurd levesl relative to profits. That's a market 'dysfunction that may or may not be around for a while that some people managed to make money from, like Bitcoin, it's just a Ponzi-ish thing that has happened.
Corporations are not drowning in profits, and White Collar employees soak up the vast majority of corporate spending.
FYI everything I'm saying applies to mostly white collar professionals, for unskilled labour it's a different story.
First - side point - I didn't indicate that people should be outputting 'maximum work quality effort'. Just 'Doing A Good Job'.
Second - more salient - yes, comp is a big factor, I understand that, but it's a little bit of a marginal issue among professionals.
For workers who can reasonably negotiate a salary beyond the prevailing labour wage, it should be assumed they have market value commensurate on some level with their value.
Corporations are not some vast powerful entities that absorb all the surpluses for their shareholders. It's risky for them.
I would argue that White Collar professionals are in fact absorbing most of the surpluses.
Google could lay off 1/2 it's staff and still make just as much money.
Your point becomes much more relevant when the power asymmetry is stark, when employees have no differentiable skills or power like Amazon employees.
For them, yes, it's a different discussion around regulations, unions etc. and only when those basics are satisfied would it be fair to implore workers to consistently 'Do A Good Job'. But for processionals, it should be a matter of very basic integrity.
Employees are never paid for the marginal value they provide, because for among other reasons, there’s no such thing. You could come up with an infinite number of different ways to calculate that, which could all produce a different value. An employee is either paid something close to the equilibrium price for the labour they’re offering, or something close to the average equilibrium price of all employed union members, if they’re a union member.
Fighting over surpluses is a very healthy dynamic, it’s a mechanism for individuals and organisations to understand the importance of each other’s contribution, produce price signals and improve the efficiency of the system. Instead pretending that a salary negotiated 10 years ago still matches the value of my contribution produces all sorts of distortions (eg productive employees being blocked in less productive organisations).
Isn’t doing the minimum exactly the same as the company paying workers the least amount they can get away with?
I just hope it doesn't mean HN is transforming into Reddit, with all the zero sum game people scaring and demotivating each other.
Then like the cops in the prisoners game you are tricking yourself at playing the zero sum game because of trust issues.
I personally have not seen much correlation between pay working hard and getting pay raises, it seems about as likely as getting one for doing the minimum, and the effort to dollars ratio is usually not worth while. I don't want to put in 50% more effort only to get a 5-10% raise. Plus, as stated before, switching jobs results in much bigger pay increases making the raises irrelevant.
The best cure for stagnation I've found is to take long breaks and get into something else.
No, but lack thereof can certainly cause it.
When there's no real reward, what's the point of putting in the extra work and taking risks? Two things that quickly break stagnation.
Have I given up potential pay bumps by not going external? Sure, probably. But I have enough to be comfortable and my company has treated me well, both monetarily and in facilitating these kinds of changes when I've wanted them.
I am in the same shoe of feeling stagnating this year and trying to figure out how to get out of it. The boringness and familiarness just drags along ...
I really don't care all that much about how I'm being paid, I'm pretty easy about it. But it nonetheless played a direct factor in quitting two jobs because I felt I was being woefully underpaid (which I objectively was; although I guess you'll have to my word for it) and efforts to bring it up to a more standard level were being frustrated to such a degree I felt that a lot of "extra effort" I had put in to the job just wasn't being appreciated at all.
1) Three years of lesser performance from the new employee as they climb that curve
2) The very real risk that your new hire will not be successful, or if they are successful, will not achieve the same level of performance.
Also, I invite you to challenge what you consider "stagnation". It is not possible to continue linear improvement in a given role: good employees achieve mastery, and while they will still be improving that might not be evident to their managers who are looking only at work outputs. If a company does not want employees who are masters at their task, but rather want people to move up or move out (counter-productive as that might be), then it is literally middle management's job to find new roles for successful engineers, and I suppose fire the previously successful engineer if they're not up to the task. Complaining about an engineer "stagnating" in the same role after they've mastered it is just lazy thinking and lazy management.
The way you do this is interview elsewhere, get an offer for 40% more, and _then_ tell your manager that you have an offer for 40% more and that you'd really like to stay but they'd really have to do something about compensation. You'll get more than 5% then (but likely less than 40%). It's annoying that you have to invest the time for this, but it does provide data to your current company that your market rate is in fact what you think it is.
- If am a resource critical enough for the company to match an external offer and keep me because of the work I do and not because I'm threatening to leave, why don't they act on it diligently and offer benefits accordinly (relevant pay raises, shares and etc.)?
- The moment the company becomes aware that I'm considering to leave for some place else, I'm a potential replacement, if a good candidate or a layoff comes along.
If I'm interviewing some place else, when I put my notice, I've made up my mind, I won't stay around long term.
It's not about being critical. Even as a more or less interchangeable programmer, if you've shown that you're actually any good then you're worth keeping.
> - The moment the company becomes aware that I'm considering to leave for some place else, I'm a potential replacement, if a good candidate or a layoff comes along.
If the company/team/project is growing then there's no reason to drop someone, and if it starts shrinking then you're better off being the first out.
Only once you have deep knowledge of the systems you work with does it really make sense to give you work like a complex redesign of a group of components in an online system. And you then have a responsibility to help new team members learn. You do more code reviews, and more consulting on projects for which you are not a primary contributor. And you get ugly projects that are related to your area of demonstrated "expertise". Is that "slowing down"? Or are you just doing different kinds of stuff? And is it because the engineer stagnated, or that the organization created a morass around them?
Which makes the line chart even worse. Pay is flat but the demands of the job are not.
Truth is, losing a tenured engineer carries a MUCH larger cost than HR and some managers seem to understand-- these engineers understand the nuances behind why certain decisions were made, what kinds of things tend to work and don't, minutiae of various systems that simply will never get documented, etc. Not to mention the influence they can carry in the org.
You're not wrong that a lot of engineers stagnate after a few years... but it's a big logical jump to put that blame on them rather than the org they're joining.
That said, I like to always call out that there are "developers" and there are "engineers". The majority of software roles call for the former and these tend to be more "replaceable". It's harder to say that for the latter where they are involved in more strategic technical decisions.
The experience gained with years in roles like these isn't just in the use of computer tools, but in how to approach and solve proprietary domain problems with constraints that often aren't obvious. Knowing the pitfalls or conventions inherent in complex or regulated domains like automobile or pharmaceutical safety takes time to learn, making those with such experience more valuable to retain.
Stagnate is also a way of saying got good at the job.
I mean after a couple of years at a place an engineer might be the person that know the systems best in the whole world if they are no commodity. It takes year to gain the experience and inside out knowledge of a complex system.
To me it feels like I get a mental picture over a system after some time where I can smell where bugs comes from and very fast decide were functionality should be inserted. Up to that point things are just a hassle and then it clicks and becomes a breeze.
Then I switch jobs to get a pay raise and the grind begins again ...
I remember that in my peak webdev years in 2008, you built webapps by designing the HTML, converting it to templates, filling in data with Django or Rails, and then adding judicious interactivity with JQuery. By 2011 the world had moved on to Angular and SPAs, and you built webapps as a single HTML page and large JS bundle with a bunch of components that you'd fetch data for over AJAX. By 2013 the world moved on to React, and you had all these tools (Gulp, Grunt, Bower, NPM, etc.) to automate packaging and code-reuse. In 2015 people were still using React and more mature versions of these tools, but what changed was the economic reality that you could make lots of money as a webdev, and the industry itself was maturing with demand for new apps dying out.
I'm witnessing this with my team at work too. We have an "old guard" of leadership that joined the team in its peak years in 2018/2019, and learned (and often wrote) the tech stack as it existed then. Now our team is colliding with infrastructure efforts that started elsewhere in the company and were too immature to use last year, but are now starting to bear fruition and get widespread adoption throughout the org. People who were experts in the old way of doing things find that their skills and projects are now largely irrelevant.
Exactly, and it is a shame. Stability and building on the shoulders of giants is how progress is made. Not by rewriting everything all the time.
Luckily I don't work on frontend UI stuff. I learned UNIX, kernels, cryptography, TCP/IP, SQL and similar technologies in the late 80s to early 90s. While all of these areas have evolved and progressed, it's been a gradual incremental change year to year. A textbook on any of these topics from 1990 is still recognizably relevant, even where details have changed over the decades.
I've observed similar technology shifts with backend code (where MySQL was hot in 2003, PostGres in 2006, MongoDB in 2009, Cassandra in 2011, PostGres again in 2015, and now there's this huge explosion of storage solutions) and in platforms (where we were all about the web in 2007, all about mobile in 2010, all about blockchain in 2013, all about smartwatches & VR in 2015, and all about Ethereum & smart contracts in 2018).
That's exactly the same web-dev mindset, only applied to backend code. I find it remarkable that you take a half-life of 12 months to be a given, rather than a screaming red flag.
Yes, the world changes, and code needs to change along with it, but it doesn't change that much. Replacing 50% of your codebase every 12 months, year after year, indicates to me that the organization is just replacing poorly architected code with different poorly architected code, not better code. The codebase is on a random walk, and any forward progress it makes is due to chance and evolutionary pressure, rather than reason and design.
Turnover is definitely not uniform and a 12 month architecture lifespan is not, in my experience, either normal or healthy.
My experience has been that paradigms and tools can move fast and are relatively straightforward to pick up. Deep understanding of the underlying problem domain and the systems underneath the abstractions is harder to pick up, but the concepts move more slowly.
I actually had a personality test where this was one of the things it measured. In my case, I think it did so accurately.
It is common knowledge that the average developer leaves after the 2 year mark. When that happens, everyone else is left holding the bag and they become the new experts.
Companies are full of self created abandonware.
Another person leaves and it is now two extra things that the vet has to become the expert on. Then three, then four and on and on. Next thing you know, your vet isn't getting any work done because they are holding too many bags. As the expert, they are in too many meetings trying to keep other people productive. They are pulled into too many critical issues and they are trying to mentor new developers in your ever revolving door of new people.
But they are unproductive
No. They are keeping your company afloat and you aren't compensating them for it.
Yet they can't just throw them away, because their peers are not confident enough to support the conclusion that there's nothing of value in there. A litany of "How can we be sure that XXXX" are thrown at the expert to clear, creating continuous inertia.
The choice becomes to keep holding the bags eternally, or go elsewhere they can start fresh.
Is it really junk or are we lacking in time/money/tribal knowledge to understand how it deeply works?
I like to think that I am a Very Good Engineer™ but I am sure that I would produce a similar piece of "junk" if I was under the same lack of requirements, training and time.
who wrote this garbage???
> git blame
oh crap, it was me 2 years ago!> are we lacking time/money/tribal knowledge to understand how it deeply works?
This is a serious issue when a system becomes complex enough.
For instance you work there for 4 years, became the most versed into the system, and have a hunch that the manual process to validate all submissions to some system could be wildly simplified.
But then random managers come to ask “are you 100% sure there won’t be hidden issues ?”, and by definition the answer is “no”. And since you’re the only one on the proposition, you have to bear the risk alone if you push it through. You could, but it is hardly worth it (diminishing rewards at your level, heavy bashing in case of troubles).
And there’s ton of other subtle and not so subtle situations where you have some knowledge, you could do something, but you don’t have any backing to make it worth it because others just don’t know. So stuff keeps piling in.
TBF not all companies work like that, but you also don’t end up a lone expert in places where these kind of issues are solved early and organically.
This is why teams creating a billion microservices because it is the pattern of the day gets me a little angry. It is just another unused thing to watch out for.
I think OP was talking not about code quality but code value. A lot of legacy systems are maintained simply because we don't know for sure that there's not something that relies on them, or that they won't be needed later. The expert wants to discard them, but everyone else insists on keeping them around just in case. That adds burden on the expert.
Obviously it's not great to have companies hanging on by the thread of a single person's knowledge over 10 years, but I feel like at a lot of companies (especially smaller companies), this is the reality.
Exactly.
There are many small companies that will be far more impacted be one of their 2 developers leaving than they would be by the owner being hit by a bus, but they'll still balk at raising salaries.
From what I’ve observed, the reason for this is not that people intrinsically lose the motivation to do great work.
Rather, often they realize that the company’s ability to reward their performance doesn’t scale with their effort.
Company’s have to delicately balance incentivizing performance of newer employees vs. risking alienating older employees who probably have a lower base rate but are key to the company’s daily operation.
The schelling point eventually settles to an environment where people surge for a few months and coast while doing the minimum amount of work.
This is especially true in a smaller company where cash flow may be constrained. Though the smaller companies often have more flexibility to offer non-monetary rewards like an overblown title or growth opportunities.
The “optimal” strategy for the company is to overpromise rewards to new hires to get them to do most of the challenging work while doling out minor incentives when needed once employees are indoctrinated and somewhat burnt out.
I’ve seen it time and time again, start somewhere new and start with very few meetings and you can really deliver.
I'm curious if you grill the lawyer on some abstract topic from their undergrad courses (possibly 20 years ago) and make them write it perfectly on a whiteboard? Meaning, the same way software developers get interviewed?
Or do you look at the lawyer's professional experience and hire based on that?
It's easy to hire people when you make it easy, it's difficult when you put up artificial barriers to prevent the hiring.
The impact of new hires can still be great when it comes from bringing fresh ideas and perspective (e.g processes, tech knowledge) and that obviously fades as everyone with a long tenure at the company has used the same tech.
Why bother spend time learning anything not applicable at your next role?
Or, another explanation, you are mistaking cause and effect.
Maybe the people figure out they could be earning so much more somewhere else but they are unlikely to get the kind of raise at their current place, so they get disillusioned and demotivated?
And then they change the job getting the significant raise, further reinforcing the behavior. Now they join another company fully expecting the same thing to happen in 2 years.
I think many people come into a job for a specific project(s) during which there is a ramp up period of understanding the requirements, limitations, team, how the company works, getting to know people (6-8 months).
Then after working on that project, delivering it, iterating on it, tuning it, working through potential production support issues and some scaling items...in many cases the vast majority of the work is done (2-3 years).
At that point, a few things happen because this developer is ready for a new project or new challenge, as are most of the people who were involved with that project.
Their options are:
- Find a new project at the company and restart the learning period as they transition in a potentially lateral move. If this happens, it's unlikely the company is going to give them a sudden compensation boost when in the eyes of management they're continuing to do their existing job.
- Seek training related to some advanced problem that they solved to become the company's expert on the subject, in which case the company will likely pay for the training but not a subsequent boost in compensation (because in their eyes...they just paid for the training)
- See how well they have marketed themselves to find out if the company has recognized their talent to promote them into a higher level position with an equivalent pay bump or potentially managing a team. The only problems is that you can only promote so many people, so this person will be the exception and not the rule.
- Update their resume with the newly acquired skills and have somebody else pay them market rates to start a new project at a different company, using their current job as leverage to get a significant bump in compensation. Meanwhile, you'll be paying new market rates to hire the replacement.
It's no secret why people often just jump jobs. You've finished one project and you're going to transition to a new one anyway, getting a fresh start can be a good choice. Additionally, no matter how much people like their situation in one job they will end up building up frustrations with certain people and/or management over time. As long as those people are still around, it will increase their likelyhood of leaving.
But ultimately, you're looking at the likely timing of concluding one project and then exploring options for what's next. IMO, that coincides with your timeline.
I join a company, work hard the first year to get a promotion and do the fun stuff, after that, I relax and stick around to vest most of the stocks and leave around the 2nd/3rd year.
I have seen so called "architects" at big co that had been there for decades bringing absolutely no value to the table. And always asked myself why would the the company retain, promote and pay these guys big bucks. Nonsense.
I call them : the legacy guys.
The only thing I can think of is that the "legacy guys" retain the memory of all the legacy stuff, and the ability for them to maintain that piece of legacy/core/monolith piece of software that no one dares to touch.
I guess that's valuable for the company, but not certainly for the employee.
They stagnate exactly because by working on that legacy stuff they can rarely learn new tech, thus they wont be able to find a job at that level anywhere outside their current company.
They are stuck.
Always hard to tell.
Instead, most companies reward no one and wonder why the good ones leave or burn out ("weird, they don't contribute at the same level anymore").
Even if you're right - 100% of the time, about 100% of people - the value of having the one guy who remembers why it was done this way and how it was fixed last time it broke available to look at it when it needs looked at is priceless.
Companies need to give engineers the opportunity at a clean slate. Let them shed responsibilities and pretend they're just a very competent new hire with the freedom to start working on whatever they want to. If it's a larger company, you can usually transfer to another team somewhere, but you still get pinged about stuff you never want to spend time on again.
http://www.theallianceframework.com/about-the-book.html
Thinking about my career (and others) this way has helped me remove a fair bit of stress when making job, role or project changes.
Have you looked into why?
The one job where I stayed over 10 years was the one where my expertise was highly respected (large degree of decision-making autonomy, no micromanagement via agile) and I was able to fluidly change projects every 2-4 years. The pay wasn't that great but it never mattered because the job was so rewarding.
Most other jobs just micromanage one to death and stagnate career, so a couple years of that kind of abuse is all one can take before moving on to the next deathmarch.
I fully recognize that some of this is my fault and possibly poor boundaries and time management. But it's easier to just leave every few years and also more lucrative. So there's zero incentive for me to stop this from happening.
If I pitch this to my CTO, he will agree that using my knowledge to build things better and faster aligns with business goals.
Only middle management rationalizes theories such as you proposed. Middle management sometimes just forgets what is the goal of their job and instead focuses only on their actions (self obsession), ego and the presentation of success. An example of middle management self-obsession is your use and throw mentality. Middle management does this because they don't actually listen to their reports. Managers think they are on another dimension and don't need to hear anything from anyone.
A really competent middle manager would know that senior engineers, especially ones with tribal knowledge are the real 10x engineers in practice. Not because they type fast, not because they are hungry and energetic but because they can process situations and circumstances faster in their head to yield results.
If I were a middle manager, I would do my utmost to retain trustworthy people around me. It's almost a no brainer productivity boost.
It is similarly easy to envision an environment engineered to encourage engineers to produce their best work 3 months into a role; Give new engineers one really exciting, well defined, small greenfield project, after that move them into a legacy maintenance role, never give bonuses, raises, etc. I know I'd get burned out pretty quick; my best work would be very early on.
It is harder to envision a systemic change to encourage engineers to always have produced their best work yesterday. I'm not suggesting its easy; by far, the easiest and most common course of action is exactly the environment the parent commentator engineered, where engineers peak a couple years in. But, don't be fooled; the engineering division absolutely suffers in this environment, and it is possible to do better.
AFAIK in US is typical to change SWE job every few years (those 2-3 years indeed). Those who succeed in doing this consistently (I'm not implying one should, or not) ganerally end up with a high salary, a higher position, and more satisfaction (assuming that change give them satisfaction).
Parent's observation may be a reasonable explanation when looked into context - the time to move on arrives after 2-3 years, and if there's no strong incentive, devs will start to feal uneasy, and move on.
This is not specific to engineering positions, it is a pretty common fixed policy in many industries.
it's shocking the number of developers I've seen left standed in their carrer progression (to quit eventully) due to overhiring and ending up siloed away somewhere
but I guess that's just kind of the way it goes working for other people though
This is like saying, "Making people drive slower will reduce total number of accidents. So lets just reduce all speed limits to 25 miles an hour. It's only the obvious solution right?".
This kind of lazy thinking is called incompetence, because finding really good balanced solutions is actually work. This work involves observing problems, understanding root causes, piloting and experimenting, bringing other mangers, skips and CXOs into alignment, executing retention deftly while keeping reports happy. But this is too much work for managers (but of course too much work for engineers is never too much work).
What a joke! No wonder SWEs complain so much about management.
Explains why this mentality exists. Middle management cannot see the impact.
Recruiting and onboarding a new engineer takes months and the lost productivity is at least 100K when you factor in engineering hours spent interviewing, recruiter fees, months for new dev to learn code base, etc.
In a company where HR or Finance runs tech, you’ll get one set of outcomes. Those outcomes are likely different than if tech runs tech. It’s not shocking to me that Google and Netflix get the results that they do; in those companies, HR/Finance isn’t running tech.
If not, you are forever going to be stuck in the cycle of hiring and attrition.
And blindly accepting things as it is, is the root cause of corporate decay.
If you want a high performance team that cares about management and the job, management will have to return the favor. If corporate structures prevent managers from doing this, managers need to band together and fight HR or whoever is far behind the curve.
Sorry, you are representing your company to the ICs. If you, a middle manager, can't talk to the powers-that-be to change the system, your reports will lose their trust towards you.
You need to have a realistic view of how things work to make progress, and managers banding together is comically unrealistic.
Fair. That's about as long as it takes me to realise "nothing fundamental is going to change", so I tend to start losing motivation at this point.
Thankfully I'm a contractor so that's about when I exit anyway. Everybody wins!
A senior developer on the other hand might say they didn't do much because they think "it was just small things that I've done before". You really have to look at the commits.
Companies have been bankrupted because of the "let's just get two new ones"-mentality, not seeing that the lead time for developers to become relatively productive by knowing the ins and outs of large codebases is very, very long (for backend development, frontend is more cookie cutter).
Curious if you could elaborate on how you came to this conclusion? According to ONET [1] there are 819k lawyers in the U.S. but 1.469MM software programmers.
If you come from a software background I wonder if it’s easier to spot an incompetent programmer than an incompetent attorney which could bias the heuristic. Or do you think there’s something else at play that makes the proportion of competent software developers inherently much lower? E.g., there’s no “bar exam” for programmers to ensure a basic level of competence
Thanks for sharing this, I think you are probably "right" even though what you said is not an easy/popular thing to say.
What is your observed sample size on this? Could you elaborate on how you see people stagnate, and why you think this might be?
> so I pay them less, regardless of whatever objective measure of impact may exist.
Ah, the classic "blame the person you hired for being bored with a low paid, dead end, high churn rate job", most excellent.
I was in Amazon and Google, I never saw a case where the developer stagnant before the product/management went into stagnant.
Developers just write code, and they just accumulate more knowledgeable and skills with the stuff they work on. How can they stagnant is something not obvious to me at all...
By your reasoning do you agree with Amazon’s explicit 4 years and out model?
Imagine if academia tried this.
The original assertion was that relationships tend to break down in year four, meaning that they aren't likely to make it to marriage in the typical case. Marriage data is only relevant to the outliers who married early, and as far as that goes they could all be found in that 20% quite easily, I'm sure. The data provided is not sufficient to know.
I’m not disputing that humans get together and break up all the time.
It’s unclear that monogamous relationships breakup “at very high rates” due to boredom either. There are many reasons relationships falter, boredom being but one of them.
A monogamous relationship is usually, especially when not arranged, established well before marriage. Divorce rates that hinge on years of marriage and not years of relationship does not provide us with any useful information here.
And why this strange obsession with arranged relationships?
I'm not sure where you find obsession with arranged marriages? The original comment excluded arranged relationships, presumably because people in arranged relationships maintain a relationship for different reasons than those in voluntary relationships. But if you really want to understand his intent, I'm not sure why you're asking me?
Arranged marriages have a lower divorce rate but a higher separation rate; suggesting cultural prohibitions against divorce and not a higher success rate. It's odd to keep culling those types of relationships out.
Ok, that was awesome. Guilty as charged.
After observing this I don't really mind hiring people to work for 2-3 years and then have them move on to another role, and most people I hire I do so with the expectation that I'll get a good two years of work and not much more.
A very small percentage of people continue to improve over the long term, and those people I am happy to continue increasing their pay, but I don't really go out of my way to retain employees and I don't think it's particularly worth it to do so.
This blog post mentions a kind of impact based compensation structure, and while I can respect the idea behind it, I am skeptical that they've managed to find a deterministic and impartial way of measuring "impact". I don't presume to have such a system so I pay based on what I observe in the market and let the market decide what the value is of software developers. For example, I genuinely don't know if software developers have more of an impact than the product designers, or the legal department even though I pay software developers much much more. What I do know is that it's much easier for me to hire a competent lawyer or UX designer than it is to hire a competent software developer and there are many more competent lawyers and designers out there... so I pay them less, regardless of whatever objective measure of impact may exist.