I work at $FANG, every one of our org's big projects go off the rails at the end of the project and there's always a mad rush at the end to push developers to solve all the failures of project management in their off hours before the arbitrary deadline arrives.
After every single project, the org comes together to do a retrospective and ask "What can devs do differently next time to keep this from happening again". People leading the project take no action items, management doesn't hold themselves accountable at all, nor product for late changing requirements. And so, the cycle repeats next time.
I led and effort one time, after a big bug made it to production after one of those crunches that painted the picture of the root cause being a huge complicated project being handed off to offshore junior devs with no supervision, and then the junior devs managing it being completely switched twice in the 8 month project with no handover, nor introspection by leadership. My manager's manager killed the document and wouldn't allow publication until I removed any action items that would constrain management.
And thus, the cycle continues to repeat, balanced on the backs of developers.
So much of the world, especially the world we see today around corporate leadership and national politics makes much more sense once you realize this fundamental law:
People who desire infinite power only want it because it gives them the power to avoid consequences, not because they want both the power and the consequences.
The people who believe that with great power comes great consequences are exactly the people who don't want great power because they don't want the weight of those consequences. The only people who see that bargain and think "sign me up!" are the ones who intend to drop the consequences on the floor.
Of course the reason it works this way is that it works. As much as we'd like accountability to happen on the basis of principle, it actually happens on the basis of practicality. Either the engineers organize their power and demand a new relationship with management, or projects start going so poorly that necessity demands a better working relationship, or nothing changes. There is no 'things get better out from wisdom alone' option; the people who benefit from improvements have to force the hand of the people who can implement them. I don't know if this looks like a union or something else but my guess is that in large part it's something else, for instance a sophisticated attempt at building a professional organization that can spread simple standards which organizations can clearly measure themselves against.
I think the reasons this hasn't happened is (a) tech has moved too fast for anyone to actually be able to credibly say how things should be done for longer than a year or two, and (b) attempts at professional organizations borrowed too much from slower-moving physical engineering and so didn't adapt to (a). But I do think it can be done and would benefit the industry greatly (at the cost of slowing things down in the short term). It requires a very 'agile' sense of standards, though.. If standards mean imposing big constraints on development, nobody will pay attention to them.
You forgot c) we're in a culture where people jump ship every 3-5 years. There's no incentive to learn from mistakes that you don't talk about at the next company, nor any care for the long term health of the current company.
>a sophisticated attempt at building a professional organization that can spread simple standards which organizations can clearly measure themselves against.
We have that as a form of IEEE, but it really doesn't come up much if you're not already neck deep in the organization.
Speaking as someone in the US, I've worked at multiple companies (some startups, some small businesses, some larger) that have either outright imploded or had mass department-level layoffs inside that 1-2 year timeframe. Some of them I would have stayed at longer than 1-2 years if I had the choice. I'm not claiming it's universal by any means, but there is a lot of volatility at US businesses in my personal experience.
And as usual, the employees get blamed. Maybe people wouldn't jump ship if companies didn't lay people off with reckless abandon, or hire sociopathic bosses to manage people, or screw them out of raises, or overwork them, or lie during the interview process.
The little people are going to do what they need to do to survive. If these multi-billion or even multi-trillion dollar companies feel some type of way about it, well, they're the ones with all the power, not us. They're more than welcome to change the culture at any time.
It "works" only on a certain timescale. We don't have sufficient incentives and penalties to make things fail quickly. A relevant example in the tech world is data breaches. If data breaches resulted in a thorough public audit and financial/criminal penalties for the managers who pushed for speed over safety, they would no longer "work".
> If standards mean imposing big constraints on development, nobody will pay attention to them.
Unless there are penalties for not doing so.
> tech has moved too fast for anyone to actually be able to credibly say how things should be done for longer than a year or two
But that's just it. If things are moving so fast that you can't say how things should be done, then that tells you that the first thing that should be done is to slow everything way down.
Has union labor resulted in measurable improvement in production outcomes in any industry they’re found in? I don’t think going from “managers are unaccountable for failure” to “nobody is accountable for failure” is a good thing.
I think introducing more competition at higher levels may be better than eliminating it below. This should be happening because I’m pretty sure most PMs could be replaced by an LLM.
How about we transition from “managers are unaccountable for failure” to “managers are accountable for every failure by default and are sued and have houses confiscated within two months of a case being open”? That must include CEOs as well though, not just some bootlicker PMs.
Executives are generally incompetent everywhere and of course they'll introduce a reality distortion field where none of them are ever accountable. That should be obvious to anyone. Question is why do all working people keep allowing it to happen. But the answer to that is also known and quite depressing, too.
While I too doubt that unions would be a net negative and I might even suspect interference by paid malicious actors to discourage people to unionize and thus never have power, I can't agree with your skepticism that PMs cannot be replaced by LLMs.
Most PMs I've ever met had zero clue what they are doing. And no it's not only N=1 sample, same anecdote is heard from many, many other people.
But sadly enough, undeniable human incompetence there is not even the biggest problem. The "we will never make more reasonable deadline" is.
Most managers, not just PMs, are an objective net negative. As any ruling class always does, they get complacent and think that just putting their foot down is going to magically change reality.
Highly irrelevant. Not my role as an individual contributor to hone and fine-tune their job description.
Fact on the ground is that they usually optimize the entirely wrong indicators and never ever optimize for avoiding future problems.
In my consulting and contracting stints I made it a habit to write down what crisis is looming on the horizon and making bets with my wife which one is going to arrive first. A fun little game.
Watching train wrecks in slow motion stopped being fun with time.
What PM's job is is above my pay grade. I want them to enable me and the team, not be a mouth piece of people with zero understanding of product _and_ of engineering. They are just there to ask you how is stuff going.
I agree wholeheartedly that collective action is how we stop balancing poor management on the backs of engineers, but good luck getting other engineers to see it that way. There's heaps of propaganda out there telling engineers that if they join a union their high salary will go away, even though unions have never been shown to reduce wages.
I've worked places that refuse to fire low performers and its hard for it to not be toxic. I'm not saying this outcome is a forgone conclusion of unions, but my union experience is that poor performers take even longer to get rid of and I'm not sure I would be interested in that sort of environment again. This is more of an implementation problem than philosophical, but theoretically good and practically bad is still just bad.
You don't have to fire "low performers" you just have to be realistic about their skillsets and use them that way.
If you see an engineer is out of his depth then change his position, no need to fire them since like others have pointed out, that can have severe consequences in their personal lives and most of the time they can still be useful if they get more adequate work.
Until healthcare and housing aren't tied to employment, making it easier to fire people will always be the monstrous position. If you want firing people with abandon to be socially acceptable then you need a public safety net. Until that's in place, I'm always going to be on the side of labor organizations demanding dignity than the people destroying lives.
I don't like unions because one bad hire can destroy a whole team, and the option to remove that hire is worth more than any benefit a union can give me.
I also think people here misunderstand what unions do. Unions are inherently conservative (small c) institutions that aim to protect the status quo. Improving processes is not a fundamental goal to unions. We saw this with the ILA that fought to essentially ban automation in the ports that would drastically increase efficiency because of the belief that this would reduce union jobs. It's foolish to think software unions wouldn't end up becoming like this.
> I don't like unions because one bad hire can destroy a whole team, and the option to remove that hire is worth more than any benefit a union can give me.
In MANY other countries there is already WAY more regulations regarding layoffs and firing employees that has nothing to do with unions.
In Germany there is a probationary period in which you can just fire somebody for no reason basically. That time can be like half a year (in my case) and in most cases it becomes clear if the new hire fits your team or doesn't.
All unrelated to unions though. The big unions in Germany for example have a lot of power and if you are just a simple welder for example you'd have no chance getting anything done without a union.
When your scope is Europe ... The US is not the exception in the world, it's Europe which is.
The US has a dynamic job market where it's easy to lose your job, but easy to find another one. In Europe, and that's true for most EU countries, it's really hard to lose your job, but it's also really hard to get one for the very reason it's hard to get fired - and when you get a job, you will have to compromise on compensation and other benefits. It's not black and white here. While the European market is appealing to some people, the US market is preferable to others.
> It's not black and white here. While the European market is appealing to some people, the US market is preferable to others.
I agree with that, it's a very individual topic. I'd say for high paying "high performance" jobs the US model definitely has an advantage but for low-wage jobs it's quite the opposite.
Counterpoint: Denmark has something called Flexcurity: "flexible" + "security". Basically, it means you can hire and fire more easily than traditional socialist market economies. There is a good social safety net, but it is (somewhat) time constrained to pressure people to return to work quickly.
Did they vote left? And that's the same left pushing over and over the Chat Control? That's an interesting twist if it turns out it's not always the right wing trying to undermine privacy rights.
She is the European Commission president, that's unrelated.
But that made me curious, and answering my own question, it's this guy https://en.wikipedia.org/wiki/Peter_Hummelgaard who is indeed a Social Democrat .. So much about workers rights, funny ...
I'd rather have the protections for my working conditions than worrying about whether my co-workers are contributing enough to the company's bottom line but maybe that makes me an outlier here.
My hunch is that software engineers are averse to unions because they correctly perceive that unions are a wide angle away from the type of professional organization that would be most beneficial to them. The industry is sufficiently different that the normal union model is just not very good and has a 'square leg round hole' feeling.
For instance by and large the role of organizing to not to get more money but rather to reduce indignities... Wasted work, lack of forethought, bad management, arbitrary layoffs, etc. So it is much more about governing management with good practices than about keeping wages up; at least for now wages are generally high anyway.
there are also reasons to dedend jobs/wages in the face of e.g. outsourcing... But it's almost like a separate problem. Maybe there needs to be both a union and a uncoupled professional standard or something?
what type of professional organization is most beneficial? Standards are already out there, but they need a union or government regulation to be enforced. Devs who want real change need to pick their medicine, or continue to let the industry stagnate.
>the role of organizing to not to get more money but rather to reduce indignities
agreed. And I think that's why it's going to really start taking hold as we enter year 4 of mass layoffs in the US (because outsourcing). Alongside overwork from the "survivors" and abusive PIPs to keep people on edge.
> year 4 of mass layoffs in the US (because outsourcing)
A lot of the layoffs appear to be about conserving cash for investment in AI. In many cases the jobs that are cut are not backfilled by workers in the US or abroad.
It's wild to claim that the industry is stagnating. By any objective measure the industry is larger, more influential, and more innovative than ever before. Perhaps the problems that people are complaining about here just don't matter very much?
I take it you have a good reputation and a network then. It is getting increasingly difficult to get hired lately, even as a senior. At least in the EU.
Pick any measure you like: total employment, revenue, patents, new venture formation, products shipped, etc. There are fluctuations from year to year due to the business cycle but overall the trend is up.
Guess that's why gamedev is the one region where this is really starting to gain momentum. High salaries were already not a thing, and tend to mean nothing if you're laid off after 3 years of development for the release of a new game.
Though I think Gen Z in general will be making waves in the coming years. They can't even get a foot in the door, so why should they care about "high salaries"?
I don't think unions are the right thing here, you just need to get together as a team and talk with your higher ups, that's a far smaller scope than where unions normally come in.
But I totally agree, I think people are too compliant and fear banding together to have influence on higher ups. I'd argue in most places the engineers have far more power than they realize since they are in high demand due to shortages of qualified personnel. (at least in many countries in Europe)
There are tons of factors in play though that I believe contribute to this like some employees being friends with their higher ups not wanting to hurt their careers, not wanting the tough discussions, the repercussions if management says "no" etc..
"Just". Come on, man, you know better than that. I too like my sci-fi to be over the top unrealistic.
Truth is, nobody ever thinks about their rights before it's too late. The paycheck shows up on time every month and people just don't want to rock the boat. Not to mention all the opportunists that will tell on you immediately to gain the favor of the upper class.
These things are well-known and apparently nothing ever changes before the guillotines start working. I don't think anything will ever improve in our area. Nobody is bothered. The people who are have zero power. And so it goes.
The "just" was more in the sense that it technically is not that hard to get together, there is nothing directly preventing that.
I honestly think it's just people who don't mind these problems and are fine working under those conditions, or they just quit once they are too annoyed. Change is way harder just than just leaving, I think that's also part of the reason why this keeps going on.
Absolutely not, barely anyone is okay with it -- only the most naive and fresh of young workforce, and then not even half of them by my observations chatting with many people 20+ years younger than me. It's just that people have too much at stake to risk it. Families, mortgage, basic respectful existence even. Nobody wants to live under a bridge.
It's extremely sad. I did not want to live in such times but oh well, good thing anyone asked us, right?
People aren't going to try to wrest control from management because some project is going off the rails. No one has any particular faith their coworkers will run anything better, and the pay checks show up regardless.
How about licensure and liability instead? That’s the sword of Damocles hanging over the heads of the rest of the engineering world. Sure it’s a guild system with a new name, but if the bridge collapses, somebody is going to be in a courtroom.
Customers are free to demand that software vendors take liability for certain defects or failures as part of contract negotiation. There's no need for governments to get involved.
For software that's actually safety critical, like avionics, there are already sufficient regulatory controls.
A union might help improve wages and working conditions in some organizations (although I personally wouldn't want one). But there is zero chance that a union could ever achieve widespread improvement in software architecture, methodologies, or project management. We don't have much consensus on the right way to do things, and what worked well in one circumstance often causes disaster in another.
For one project I got so far as to include in the project proposal some outcomes that showed whether or not it was a success: quote from the PM “if it doesn’t do that then we should not have bothered building this”. They objected to even including something so obviously required in the plan.
Waste of my bloody time. Project completed, taking twice as many devs for twice as long, great success, PM promoted. Doesn’t do that basic thing that was the entire point of it. Nobody has ever cared.
Edit to explain why I care: there was a very nice third party utility/helper for our users. We built our own version because “only we can do amazing direct integration with the actual service, which will make it far more useful”. Now we have to support our worse in-house tool, but we never did any amazing direct integration and I guarantee we never will.
Glad to hear that $FANG has similar incompetency as every other mid-tier software shop I've ever worked in. Your project progression sounds like any of them. Here I was thinking that $FANG's highly-paid developers and project management processes were actually better than average.
Reminds me of the military. Senior leaders often have no real idea of what is happening on the ground because the information funneled upward doesn't fit into painting a rosy report. The middle officer ranks don't want to know the truth because it impacts their careers. How can executives even hope to lead their organizations this way?
Well the US has lost every military conflict it's entered for the past 70 years. Since there's been no internal pressure to change methodology, maybe the US military doesn't view winning as necessary.
Those past 70 years weren't about winning. It was about making sure the enemies lost more out of it. The US is large and relatively stable and hasn't had to face extended war on its soil since the Civil War 170 years ago. There's no true skin in the game for those who start these wars.
Those might be the only ones? Desert Storm being the one that I'd probably call out, Just Cause was just so small.
One minor win, every major operation being a loss doesn't change the conclusion though imo.
I think it's also instructive to look at each of these operations and note that the two that were won were small, had clear objectives, and were executed quickly to meet those objectives and had no scope creep.
Iraq had one of the largest militaries in the world at the time of Desert Storm. They had tons and tons of arms and equipment and a huge standing army to counter the persistent threat (and/or to provide their own threat) of resumed hostilities with Iran (that war was still pretty recent when Desert Storm took place)
I would agree that the US is notably terrible at occupations and getting involved in civil wars, at least since WWII, but Desert Storm was pretty much an unqualified slam-dunk take-a-victory-lap success against one of the top armies in the world that wasn’t an ally or a nuclear state—carried out on the other side of the planet from the US, to boot. Like I think Iraq was ranked top-10 at the time by many ways of reckoning military strength, and that wasn’t enough to effectively resist the US effort at all, really.
If that war seems small, it’s only possible for it to seem that way from the victor’s perspective, and only because we did such an amazingly good job of totally destroying Iraq’s substantial capacity to fight in a matter of weeks. In terms of deployed and engaged men and materiel it was really big, just fast because it was so very one-sided, and “cheap” in terms of casualties on the US side for the same reason.
Is it middle management that has no accountability, or executive? Middle and line managers are nearly as targeted by layoff culling as ICs these days in FAANG. The broad processes they're passing down to ICs generally start with someone at director level or higher.
I've seen plenty of incredible engineers let go because of "performance issues" that were just poor project management and goal posts that moved so fast waymo should study them to improve their self-driving capabilities.
Shit rolls downhill and there's a lot more fuss when an engineer calls out risks, piss-poor planning, etc. than any actual introspection on why the risks weren't caught sooner or why the planning was piss-poor.
In my experience it is the constant shifting of goal posts due to execs chasing the next shiny thing, or demanding a feature that they saw somewhere, or heard from client (singular, not plural)
> For how much power they have over team organization and processes, software middle management has nearly no accountability for outcomes.
Can we also address the fact that “software spend” is distributed disproportionately to management at all levels and people who actually write the software are nickel and dimed. You’d save billions in spend and boost productivity massively if the management is bare bones and is held accountable like the rest of the folks.
that's how the inner sanctum engineering in Apple worked, just like you proposed, at least from 15 years ago to within the last 10 years. i could have been in a very lucky time window to have had that luxury, but it had been an Apple mandate to not have deep hierarchies at least in engineering.
perhaps that was involved, but one thing clearly purposeful was people were seriously filtered for particular skills and personality (apple fit it was called back then), which created groups where individuals had unique skills and collectively the group members would naturally want to collaborate. it worked great.
(as an aside, this contrasts diametrically with Amazon, where i worked for a year for healthcare, not needing to because of Apple years' savings, but after a genomics startup i had joined ran out of funding, and wanting a new challenge; there skilled engineering types were presumed to be fungible assets for (not kidding) at least 7 layers of do-nothing bureaucrats making huge salaries...they could survive because sales on the amazon store extract something like the 30% royalty to amazon)
If you think our ability to measure developer productivity is bad, look into what we can do to measure manager productivity.
TL;DR your realistic options are snake oil that doesn’t work, or nothing.
Keep that in mind next time anyone’s talking about managing through metrics & data or whatever bullshit. All that stuff’s kayfabe, companies mostly run on vibes outside a very-few things.
Yes and no. The compensation is a lot, but you're not necessarily able to just quit on a dime even if you live humbly. Interviewing takes weeks now and weeks more just to find a proper replacement. And salaries can fund you for months, bu t not years (let alone if you have a fammily)
I'll also say the obvious here in Sinclair's quote about salaries: you can indeed pay for someone's self respect.
This would imply most of these types of positions are filled with less competent people willing to package and sell their self respect alongside their time?
(Thus commanding a rate similar to a more competent person who doesn’t package it to sell.)
Joke is, most of these homes aren't worth anywhere close to their paper value.
Cy Porter's home inspection videos... jeez. How these "builders" are still in business is mind-blowing to me (as a German). Here? Some of that shit he shows would lead to criminal charges for fraud.
There is an old Russian joke, that goes like this:
A man approaches a girl and asks, "Would you sleep with me for $1 million?”
She responds, “Yes, of course!”
Excited, he then asks, “What about for $1?”
She indignantly replies, “Who do you think I am?”
To which he responds, “We already established who you are; now we’re just discussing the price.”
I think it fits there. There is surprising amount of people believing that they have some Values, but just to a point when they were offered to sell them for a right price.
There's a high switching cost with substantial information asymmetry. Good places are hard to find in some absolute sense and it's hard to evaluate whether a new team is actually going to be good or not. And even if you do find a good team, there's no guarantee it'll last past the next reorg.
serious answer - you find a team with a good direct manager who handles all the upward interactions themselves, and then you basically work for that manager, rather than for the company.
^ This. Not at FAANG, but I am too familiar with this.
This is why software projects fail. We lowly developers always take the blame and management skates. The lack of accountability among decision makers is why things like the UK Post Office scandals happen.
Heads need to be put on pikes. Start with John Roberts, Adam Crozier, Moya Greene, and Paula Vennells.
Where I now work, in the government, all the devs are required to be part project managers. It’s a huge breath of fresh air. The devs are in all the customer meetings, assist in requirements gathering, and directly coach the customers as necessary to keep pushing the work towards completion.
This came about because our work isn’t too diverse but the requirements are wildly diverse and many of the customers have no idea how to achieve the proper level of readiness. I do management in an enterprise API project for a large organization.
I was a developer for a bioinformatics software startup in which the very essential 'data import' workflow wasn't defined until the release was in the 'testing' phase.
Did they go off the rails at the end, or deadlines force acknowledging that the project is not where folks want it to be?
That said, I think I would agree with your main concern, there. If they question is "why did the devs make it so that project management didn't work?" Seems silly not to acknowledge why/how project management should have seen the evidence earlier.
After every single project, the org comes together to do a retrospective and ask "What can devs do differently next time to keep this from happening again". People leading the project take no action items, management doesn't hold themselves accountable at all, nor product for late changing requirements. And so, the cycle repeats next time.
I led and effort one time, after a big bug made it to production after one of those crunches that painted the picture of the root cause being a huge complicated project being handed off to offshore junior devs with no supervision, and then the junior devs managing it being completely switched twice in the 8 month project with no handover, nor introspection by leadership. My manager's manager killed the document and wouldn't allow publication until I removed any action items that would constrain management.
And thus, the cycle continues to repeat, balanced on the backs of developers.