Personally for me - this led to burnout and I have quit last two jobs that used Agile faster than I have the 2 before that didn't use Agile. Agile is very clearly being misused to turn developers into factory line workers whose productivity can be measured by number of commits, reviews and docs they put out every two weeks. And the meetings it takes to do Sprint planning, stand-ups, reviews, demos, retros are really killing any possibility of developers having a flow of uninterrupted time to do what they need to.
And the burnout article linked in the OP makes a great point about inputs to development teams not being measured. At some places developers are left to spec out stories and others have Architects / Tech Leads do it - in either case that in itself is a large chunk of work that takes up huge amount of time that no one is rewarded for in any way!
Mostly though keeping the churn going is what gets really tiring - do most orgs have work that a) needs to be done every two weeks and b) can be done in two weeks perpetually? The pressure leads to manufacturing bite sized requirements that can be demoed in two weeks - the real impact of that work is almost always never evaluated. Combine this pressure with time crunch that prevents people from spending quality time together to ponder bigger, high impact problems and collaborate on solving those within the meeting heavy Agile process and you are never going to get anything meaningful done.
This is not to say Agile itself is bad - it takes effort and skill to use it effectively but managers seem to be taking the easy way out to create a factory line kind of setup where random requirements keep getting thrown and every two weeks you are supposed to roll out _a_ solution. The trouble is software / IT is not at all like rolling cars out on a factory line so it all falls apart.
> This is not to say Agile itself is bad - it takes effort and skill to use it effectively but managers seem to be taking the easy way out to create a factory line kind of setup where random requirements keep getting thrown and every two weeks you are supposed to roll out _a_ solution.
Scrum has outmarketed "Agile", and swallowed it up wholesale. Agile was about putting people before process, Scrum is all process, no-wonder the people feel downtrodden.
But it is bad, no-good, horrible and sucky. If you do have the skill and diligence which are necessary to implement it (in a way that doesn't horribly suck), then you don't need to formally implement Agile.
The most productive teams I worked in invariably converged on something like this:
some kind of a backlog
+ a way to know who is working on what
+ informal but frequent and active communication
I think that if you look at the formal and semi-formal methods it's Kanban that is the closest to this model. If you need to placate people who insist on using "A Method", then at least try to convince them to use Kanban.
The Toyota process says - you cannot manage a production line effectively if you don’t understand it.
Agile has become a way for people with no development experience to “manage” developers and that will always be wrong. The West’s obsession with “managerial” experience being a thing you can learn start to manage “anything” from is the origin of much of our malcontent. Management is just something you add on top of knowing how things work. It’s not valuable as an isolated skill.
Yeah same here, I quit my last job when they started the transformation to Scrum and I got a supervisory manager.
Not only does it turn developers into factory workers, but also which is my biggest source of burnout, it turns developers into some kind of dysfunctional and immature people who need help with every kind of basic communication and decision, and forces you to undergo a quasi pop psychology group therapy. That's where I get the most burnout, I'm a grown-up and a normal well rounded person. I'm healthy, I can communicate, I can work in teams. Why do I not even get the benefit of the doubt that I can function normally in a team and do my job, and immediately get thrown into this awkward depressing self-help group therapy bs.
Agile is A) vague and inspiring enough that everybody can project their desires, hopes and dreams on it and B) vague enough that it can be twisted by any authority to serve pretty much any purpose they like.
This is intrinsic to the entire movement and was from the very beginning as far as I can see.
There were some good ideas that emerged from the auspices of the movement but the movement itself never really committed itself too hard to any of them.
> And the meetings it takes to do Sprint planning, stand-ups, reviews, demos, retros are really killing any possibility of developers having a flow of uninterrupted time to do what they need to.
This is because the Scrum "masters" are not masters of the domain. In most cases, they went to a two-week class to get "certified". They have no understanding of the development process and they are not accountable to developers at all, only to upper management to whom they sell the word "agile" as a project management approach. What they are doing with all the planning/prep all the time, of course, is playing mini-waterfall in 3-6 month horizons.
> the real impact of that work is almost always never evaluated.
Because that might actually lead to reflecting on the performance of mid-managers and the scrum "masters". These groups tend to view developers as assembly line workers, they still think the "size" of a PR is indicative of its importance (think the KLOC counters of yore), and they think "key person risk" can be mitigated by eliminating said key person instead of fostering an environment that open to knowledge/experience sharing.
Those who can't do the tech get threatened by those who can and instead of focusing on their own comparative advantage and ensuring a productive environment, they focus on subjugating those who can do the tech to their every wish (fixating on things like label colors, prefixing every ticket with TAT, insisting that every ticket must be comprehensible to any random person in the company etc).
When 30 hours in a week are taken up by mandatory meetings, they then penalize people for not spending 40 hours on development. I've seen places which required keeping timesheets with 15 minute resolution.
I know there are places that are not like this, but I also know enough places that are.
Small "a" agile is perfectly fine. I worked in an organization that did "Scrum of Scrums" (aka waterfall disguised as Scrum) and my job description could have easily been "attends meetings".
Kanban paired with CI/CD is the best workflow, in my opinion. Break work down into known chunks, no estimation games, work it through a kanban board and put it in production when its done. A known side effect of doing this process is you may have people work on things that get de-prioritized and they sit there for a while and/or turn into waste. I'd rather have that known side effect than side effects like burnout, endless meetings and death march waterfall projects. Devs can still learn and hone their skills developing things that may end up as waste. Devs get nothing out of endless meetings and trying to meet arbitrary metrics.
> The pressure leads to manufacturing bite sized requirements that can be demoed in two weeks...
Yes, the whole 2 week 'sprint' thing really wears me down. I can see the value of deadlines and splitting work up, but between all the release/demo/planning overhead and the constant rush to fit things in it leaves me with a constant low-level anxiety.
3 weeks seems like a more reasonable figure to me. Or with a senior team, just having a prioritised backlog of tasks and doing them in order (sounds crazy, I know).
Is Scrum the problem? Or is that tech, which has become high status in the last 6/7 years is starting to attract the kind people that went to make a management career into more prestigious areas and they are starting to manage us in the same way they manage these other areas?
20 years ago, friends which worked in non-management positions in hr, accounting, finance, etc envied the freedom I had being low-level worker. Nowadays I just follow orders and work on tickets as they do.
I wish scrum had some support for decision making, where you'd attempt to evaluate suggested solutions based on the actual goals of the team/company, have healthy moderated debates, and in the end (by voting or manager) make a decision which is then documented, with a note on when it can be revisited the earliest.
Scrum just pretends that there are no decisions to be made, or if there is, that they are obviously simple and that everyone spontaneously just get along. In reality there are a lot of pretty damn important decisions to be made in developing and evolving software, and people have widely different ideas, and smart people are usually very stubborn as well.
I had a guy insist that a build script for a React app should absolutely be written in Ant. And nothing else. I argued with him that it's highly unusual, and that shell script or Makefile would be a better choice, pleaded with the rest of the team etc. It was massively exhausting for me and the whole team, this went on almost a whole week, and when I finally got my way on this issue, he just rage quit the team and transferred to another.
I just wish there was a manager who would be "the bad guy" and make decisions like this like the old fashioned way, it's not without benefits.
And similar incidents happen to me all the time, whenever I use SQL to solve something, use the command line, or when I simplify some code, I always get attacked by (mostly) juniors.
I just don't understand how to contribute as a senior when you have no decision power and no impact, and every decision is made in an undefined way (in reality by exhausting arguing).
In my case it was gitprime. This is a software to stack rank based on git commits. Since good developers supposedly make lots of small commits, if someone makes too few, they are bad. Also bug fixes are penalized as “code churn”.
I would love to work without these idiotic ceremonies. I get into fight with our agile coach because he insisted on making new features instead of fixing bugs because we didn't have anything new to present in demos. Stupid.
TBH every team/company I've seen that uses strict agile/scrum is surpassed by the non-agile teams eventually. There are exceptions to this for teams that have modified agile/scrum to the point they can sensibly do long-term project planning and account for short-term hickups.
Scrum works if the manager is unclear on what the team does and when. Sometimes software teams are low productivity because people straight up aren't working, sometimes it's because there are a hundred operational tasks eating up all the bandwidth, and sometimes the team members aren't prioritizing the right work. In such a world scrum gives day to day status of the work everyone is doing and they can provide feedback to the team to get the team moving faster.
It's a short-term fix that sometimes gets pushed as a panacea for all software team management problems.
> This is not to say Agile itself is bad - it takes effort and skill to use it effectively but managers seem to be taking the easy way out to create a factory line kind of setup where random requirements keep getting thrown and every two weeks you are supposed to roll out _a_ solution.
> Edit: By Agile I meant Scrum really.
The same thing would happen with any form of Agile, if it became widespread enough.
In most companies that use Scrum, managers change at least half of the rules of Scrum. In a parallel reality, you would see them change half of the rules of Kanban or Extreme Programming or whatever... and then developers would complain that (the actually practiced) Kanban or XP or whatever is not true Agile but more like the opposite of it.
The problem is that managers exist and want to keep their jobs. (Even worse, the power of a manager depends on how many managers are in the hierarchy below him or her, so even managers in the higher positions, who could in theory make the company more agile by firing the managers below them while keeping their own jobs, do not have an incentive to do so.) So whenever someone proposes Agile, managers modify it into Agile+micromanagement, to justify their jobs.
If you want to have actual Agile, you need to start without managers. If you have a hierarchy of managers who decide to implement Agile, you have already lost.
Completely agree and I left my last job for exactly this reason. Endless meetings fuelled by direction coming from above of needing to cooperate more and Agile coaches popping up.
The CTO and some early developers in the company were basically meeting in secret, deciding what new cool thing they had to run in teams (whether mob programming for hours or some new way of organising the backlog) and then all the early developers (who didn't have a formal manager title - sure, just normal developers like everyone else! Flat structure! Everyone has power!) were going back to the teams and proposing this new cool thing. The majority didn't have the heart to put them down and soon the trial would become a standard practice.
This is not Agile, this goes against the Agile philosophy of putting people first in front of process.
Agile doesn't need coaches, just make your staff read the manifesto.
If you have an Agile coach scheduling meetings nobody cares about, you're putting process in front of people.
From my experience, people are generally nice (not including myself in this group) and they won't say to your face that your job is useless. Heck, they'll even praise how good of a coach you are and ask for more meetings - while complaining in private about long meetings and leaving in record numbers.
> Personally for me - this led to burnout and I have quit last two jobs that used Agile faster than I have the 2 before that didn't use Agile.
So much this. The continuous mental stress that agile imposes is so harmful. Having to re-justify your job every morning in daily status meetings, then having to spend all day worrying about having enough to say tomorrow. Counterproductively, it prevents me from getting in the zone and getting more done, so now I have less to status report tomorrow.
Apparently it's not just me either. I know someone who is a mental health professional (Silicon Valley area) and they've mentioned seeing an increasing trend of patients who bring up agile at the workplace as a cause for the stress that leads them to go see a mental health professional.
Agile is like Communism. Sounds good in theory, but it's never actually been used successfully. And every time someone tells a story about it failing the apologists inevitably reply with, "but that wasn't real agile."
I would suggest that if something is so hard to get right, then maybe it's not such a great methodology after all.
Yes, that is the line that resonated with me as well. Twenty-five years now as a "corporate programmer" and I have watched the job go from cowboy-coder to "i"-dotter-"t" crosser.
There is way too much process now and it's not fun. Perhaps it's a sign of the industry maturing, the stakes are higher. Perhaps it's a sign that management no longer trust their devs. Perhaps one follows the other.
Regardless, I am soon to be exiting corporate and the new way is not something I will miss.
This reads to me as yet another screed by someone who has never worked outside the tech industry. Software Engineering is IMO the best, most privileged job available in the US, and I suspect in much of the world. Life-long tech workers have no idea how much worse conditions are even for “knowledge workers” in other fields.
Case in point, when we get a tired of the office grind we can publish a manifesto that slams tons of people we’ve worked with in the past (with no fear of consequences from those burned bridges), move to a resort wherever we want, and still expect to either make great pay with benefits while fully remote, or realistically start our own business with a great chance of success (and can easily raise funding to defray the risk if we want to).
I’m grateful to work in software. It’s a wonderful thing that we have so much privilege. And so of course, at a time when the world has been quite stirred up and most of our lives affected, it’s great to see many engineers have the freedom to change jobs to fit their lives better, and that they’re exercising that freedom.
But could we observe and write about all that without the anger and entitlement? For anyone who has worked in other fields, or even less in-demand jobs in tech, it just comes across as whiny and out of touch.
> privileged...resort...great pay with benefits...privilege...entitlement....whiny and out of touch
The post was written by someone who works about the management and shareholders of corporations. If privilege and entitlement are qualities of the people working on death marches at companies the DOJ said were illegally colluding to keep wages down, then what are the qualities of the heirs collecting dividends from these companies - expropriating the wealth of the surplus labor time of those creating the wealth. The system is the creation of heirs who never worked a day in your life, but you make the case of the parasites - that those actually working and creating wealth are the ones who are entitles, privileged etc.
So when you sit in endless meaningless meetings and see how the management create insurmountable obstacles that make it impossible to actually do some meaningful work while whining about deadlines and changing the requirements on a whim, you should just be thankful that you have a nice paying job? Well you can be thankful and still cry inside since if the management were competent, you could get 3x done. If you feel this several decades you die inside little by little until you do what is described in the article.
I worked in the Marines and am now a software engineer at a large tech firm.
The biggest joke in the military was danger pay, which was $7.50. $7.50 if I was working in an active warzone that day. I still stood in formations, pointlessly, for hours. I still watched people who shouldn't have been promoted get promoted over people who should. I still watched people fuck each other over. I still sat though pointless and grueling training videos. I still had 8-12 hour workdays. I still lived with the idea that my life would end early through mental or physical health issues. I could go on.
The biggest difference I have is pay and the security to try and improve the system myself. I know if I get fired for trying to do the right thing that I'll find another job, whereas in the Marines as a four year corporal with one year total combat experience I made $20k and had no career prospects should the military see that I am a problem.
I used to think like you, until I turned 40 and spent 3 years in a row, doing full SCRUM, babysitting developers while my "manager/PO/everything" does little regarding planning other than "I want this". Conclusion: I dropped to 24 hours/week and have a much better life quality now, working 3 days per week.
best most priveleged job? no social status, pay below marketing and sales execs, relearning tools every year, assumed to be replaceable, leetcode BS every year, doing incredibly hard work with little credit, the list goes on. engineering only pays off if you are a founder and manage to sell the company for a lot of money, which is a gamble. also, no protections such as unions as engineering is a white collar job. sure, there are worse jobs. but claiming that this sort of work is the best job ever is ridiculous.
That's good. Don't advocate against yourself. Other kinds of work don't have this because they take on that idealogy of working against themselves. Be privileged and demand more. The companies are perfectly capable of paying it.
>Case in point, when we get a tired of the office grind we can publish a manifesto that slams tons of people we’ve worked with in the past (with no fear of consequences from those burned bridges), move to a resort wherever we want, and still expect to either make great pay with benefits while fully remote, or realistically start our own business with a great chance of success (and can easily raise funding to defray the risk if we want to).
It's not that I disagree in principle with what you're saying, but I think you're describing the top 10% range of programmers.
Edit: and herein lies the danger in dismissing the complaints of entire swaths of people with concepts lile "privilege". It's just a socially acceptable form of prejudice that never applies to all people from the group.
Tech pays well and has benefits, beyond that it leaves a lot to be desired. Having worked “shit jobs” tech is great when it’s great but when it’s miserable it is worse than retail, construction, etc. Your self-worth and ego are closely entwined with your performance, and sometimes situations outside yourself can make it hard to perform. At least in retail you never dream about a problem or question if you are smart or good enough to do your job.
> Life-long tech workers have no idea how much worse conditions are even for “knowledge workers” in other fields.
I worked as a supermarket janitor in high school and college. Most of my work in tech has been for government contractors. Most days I feel like I'm still a janitor, only I'm coping with other people's tech debt instead of scrubbing toilets. The thing is, if scrubbing floors and toilets paid as well as coding I'd go back to pushing a mop in a heartbeat because at least janitorial work has a better-defined scope of work and definition of done than most of the development projects with which I've been involved.
> the best, most privileged job available in the US
Not quite. Actors and musicians have it better, once they've established themselves.
I'm not being facetious here - with people trying to "break in" to programming and endless auditions in the form of whiteboard interviews, I can't help but feel like we've ended up in a career with most of the downsides and few of the upsides of an entertainment career.
I agree this is a phenomenon right now, but I feel that article is vastly overcomplicating it, and not necessarily accurately.
I'd suggest simply:
- software engineers are hugely in demand
- software engineers have worked out they can work well remotely, and often prefer it for a combination of productivity and work/life balance reasons
- software engineers are voting with their feet and finding work that suits their needs - and many firms are losing talent accordingly due to not meeting the needs of those staff
I resigned yesterday, and with 20 years experience I guess I'm a senior dev. It was many factors, but management and the amount of process and the banality of the work finally did me in.
Maybe management is dysfunctional everywhere, I don't know, about to find out but mine literally just copied the email (headers and all!) from the client into the ticketing system and assigned it. Most of management has been there for decades and it has been their only job ever.
I spent more time tracking my time spent in the various systems and monthly reports than actual dev work. And the work was so mind numbingly boring.
I took the plunge and applied to half a dozen interesting job posts and that was it. I was worried about ageism, being an imposter, having to leet code, endless rounds, etc. But it wasn't that bad at all, a small take-home and a few rounds of talking about experience and now a nice pay bump and new problems to solve.
> All companies (regardless of size and paycheck) make competent developers go through grueling 4–7 rounds of interviews.
It's possible to get hired with zero interviews, you need to put yourself into a position where this is the norm.
Every single contract / freelance job I've ever taken happened without a formal interview. I never had to do a whiteboard test or explain an algorithm to someone. I never had to write 1 line of code or even talk about lower level programming things specifically for the sake of getting a job for a specific company.
All I did was talk to them over email or Zoom while we discussed what they wanted me to do for the job. Then it went straight to a statement of work / contract and that's it.
Most of these happened where the person hiring reached out to me directly. I don't use any freelance platforms or marketplaces.
Now, the debatable part here is "competent developer". I won't make any claims that I'm competent but I have done a ton of assorted gigs over the years and lots of them lasted for multiple years (and still do). For context I sent out 47 invoices in 2020.
If you hate the idea of parading around interviews and working in an office please understand you have options. Besides part time high school jobs I never worked in a non-remote position in my life.
I feel as if the article is a bit of “tea leaf reading,” but it does make sense.
> A verifiable track record is overlooked, while CVs filled with adjectives top the stack.
This is not new, but I do believe it has reached a crisis point, in tech. I’ve often posted about my own travails with this.
The most annoying thing, to me, is, despite all the hoopla about “disruption,” companies hire for conformity. They always have, but the screeching about being “disruptive” is fairly recent.
Protip: you won’t “disrupt,” if you hire people that “won’t rock the boat.” Truly innovative workplaces aren’t necessarily comfortable (especially for management).
It’s like classic waterfall companies that claim to be “agile,” because they have daily meetings.
I left Amazon a couple of weeks ago after nearly a decade. And the answer to "why" is pretty straightforward.
1- I couldn't get that SDE3 promo. If my clone had interviewed, he'd have been given an sde3 offer easily. But being on the inside requires a long checklist of requirements that I could never quite hit all of. Two other companies offered me the equivalent role immediately. With a nice pay bump.
2- Amazon won't commit to remote. It's all "between you and your manager" and "with your VPs approval", which is to say: subjet to change any time the person in that role does. Want to change teams? Best make sure that other manager and his VP will support you first. So can I really move four hours away from the office? Not really. My new employment contract has "remote" in it.
3- a growing sense that this isn't the right company for me. Too many controversies that I can't really see "our" side of. The leadership principles that I used to teach to new hires sound more and more hollow.
And when I looked at all that, and realized how good the job market is, it became a question of why would I stay?
I think this article is overlooking the most important reason for this. Most senior developers have plenty of assets and are retiring or taking a long vacation with stock/crypto/real-estate gains from the past year.
Some are rolling out their own businesses sure, but it's a terrible time to start a business now. Wages are skyrocketing, supply chains are overbooked, inflation makes it impossible to secure long contracts on predictable terms, and the passive income mania fuelled by the banks makes working on fixed income unappealing.
I don't know honestly, but the reasons to me are just a subjective view of the writer.
Some people find it comfortable working at big tech firm or enterprise and move around their layers or so. Ageism could be a thing but so there are lots of companies that pay seniors dev very well.
I think the only reason why some of these folks are leaving is because after earning more than 250k a year for many years (plus stocks) they've realized that there's not much value on working
Devs are the specialists least dependent on capital. If you're a surgeon, you need a hospital, if you're a windmill engineer, you need the windmill factory. Dev can work with all his own tools, it's so cheap you can have your own workbench (eg on Hetzner) for almost nothing. The range of firms with dev-relevant capital is very wide.
Capital is cheap, too, thanks to the times we live in (let's not go there).
Senior devs who don't need hand-holding are a rare form of labor. It's free to everyone to learn how to be a coder, it's all out there on the internet in a way that is unparalleled across subjects and in history. But we are not flooded with competent devs. It would appear the bottleneck isn't in educating people.
Finally, the WFH revelation means markets are a lot less local. It only makes sense to look for a new job when you know all this.
----
BTW, it really is a dev's market right now. It's white hot, it's been white hot for at least half a year, and nobody knows when it ends. I encourage anyone who feels even a tiny bit inclined to have a look around. Even if you don't, try to finagle a day at home each week, because the recruitment game has been turned on its head by the ability of people to chat during work hours.
I’m beginning to think of this era as the arrival of Fred Brooks formulation of the highly productive or surgeon like developer; someone who is highly trained and can be highly productive. And “senior” developer is a proxy for that; highly trained and experience with the myriad of tech and mountain of knowledge software development requires today. And as such, truly “senior” developers are highly desirable and relatively rare. Hence rising demand and salaries. Spurring many to job hop and maximize their salary.
Note I didn’t use the loaded “10x” or “rockstar” monicker intentionally, to avoid the incessant argument whether they actually exist or not. I submit the current trend as evidence they do, and are often “senior” developers.
Title inflation is in fact a thing and not all seniors are equal. And of course the typical HN reader is near the top of the curve, so maybe we don’t realize just how much truly arcane knowledge is required to do this job.
It's very worrying to me that (especially US-inspired developers) people only think of a job as doing something for someone else. I guess it's pretty different in Germany, but a company is also a community, you spent a lot of time with these people. Sure, there are some folks who like to stay at home at all times, but I feel like that's not a majority. Humans are social animals at core, so I don't understand this one-sided discussion at all. Of course the article shits on management. Management enables you to do the work you came in for. I don't know how someone doesn't understand this. It helps you focus more on the stuff you like. Sounds like your management/company culture is shit.
I quit last year because I was financially independent (actually way past the point of financial independence). There was no financial motive to keep working and the work itself felt like drudgery, no matter how much I was paid. I'll bet a lot of people quit for similar reasons.
I just don't have patience for artificial hoops and barriers to career growth set by management.
I don't want to "write more docs" or "be visible on slack" or "join some engineer guilds" or "give demos" or "mentor juniors" just for a promotion.
Just look at what I produce, is it valuable for the company? If yes, extra curriculars don't matter.
It is these bullshit hoops that make me wonder - why should I listen to anyone in management? I have only one life and I have to dance to this fools tunes? Leading me to switch jobs for a higher pay.
I know I will still have to report to a manager at the new job, but by switching, I get the promotion, I get more money and don't need to jump through artificial hoops set by a middle manager, who doesn't want me to rise as fast as I can.
Seems bogus to me. Tech workers are doing quite well financially speaking, and anecdotally I know no one (I’m 37 in medium/big tech) who started a new business the past year. The data from VC funding of companies is hardly a good measure of devs in their 30s/40s leaving their jobs to start new companies.
Also angst against capitalism is being addressed by…checks notes…starting your own company?! Seems like such an endless spew of one false narrative after another
If this hypothesis (they’re starting companies of their own) is true, why not show any data on new incorporations or number of new startups? Very doubtful of this. Funding amounts could be increasing because of more capital; valuations could be increasing due to that capital chasing fewer opportunities.
I appreciate the effort that goes into articles like this, but they always seem to be based on the unproven hypotheses of the author. I'd appreciate more it if authors would reach out to the community via, say, LinkedIn and survey developers on their seniority and reasons for resigning, then building an article around those results.
I know that resignations are up but is there the corresponding jump in startups or sole proprietorships that the author claims? In other words are people striking out on their own or are they just jumping to another company?
The tech industry is so effective at optimizing that they've managed to turn engineers into factory robots. Maybe it's just my experience but the tech industry in the late 2000s were so much more fun compared to the last 5 years.
I feel like the article talks about me. Early 30s dev, quit during the pandemic to start my own company (manylogs.com)
Not gonna lie, we have it pretty good. Great salary, flexible working hours, bonuses, job prospects etc... but it's kinda sad seeing your employer riding the internet wave while you're stuck on a leash.
If you're a senior dev, you probably can build something useful for people and make a great living out of it. The only thing you need is a laptop and some creativity.
[+] [-] blinkingled|4 years ago|reply
Personally for me - this led to burnout and I have quit last two jobs that used Agile faster than I have the 2 before that didn't use Agile. Agile is very clearly being misused to turn developers into factory line workers whose productivity can be measured by number of commits, reviews and docs they put out every two weeks. And the meetings it takes to do Sprint planning, stand-ups, reviews, demos, retros are really killing any possibility of developers having a flow of uninterrupted time to do what they need to.
And the burnout article linked in the OP makes a great point about inputs to development teams not being measured. At some places developers are left to spec out stories and others have Architects / Tech Leads do it - in either case that in itself is a large chunk of work that takes up huge amount of time that no one is rewarded for in any way!
Mostly though keeping the churn going is what gets really tiring - do most orgs have work that a) needs to be done every two weeks and b) can be done in two weeks perpetually? The pressure leads to manufacturing bite sized requirements that can be demoed in two weeks - the real impact of that work is almost always never evaluated. Combine this pressure with time crunch that prevents people from spending quality time together to ponder bigger, high impact problems and collaborate on solving those within the meeting heavy Agile process and you are never going to get anything meaningful done.
This is not to say Agile itself is bad - it takes effort and skill to use it effectively but managers seem to be taking the easy way out to create a factory line kind of setup where random requirements keep getting thrown and every two weeks you are supposed to roll out _a_ solution. The trouble is software / IT is not at all like rolling cars out on a factory line so it all falls apart.
Edit: By Agile I meant Scrum really.
[+] [-] DougBTX|4 years ago|reply
Scrum has outmarketed "Agile", and swallowed it up wholesale. Agile was about putting people before process, Scrum is all process, no-wonder the people feel downtrodden.
[+] [-] praptak|4 years ago|reply
But it is bad, no-good, horrible and sucky. If you do have the skill and diligence which are necessary to implement it (in a way that doesn't horribly suck), then you don't need to formally implement Agile.
The most productive teams I worked in invariably converged on something like this:
some kind of a backlog + a way to know who is working on what + informal but frequent and active communication
I think that if you look at the formal and semi-formal methods it's Kanban that is the closest to this model. If you need to placate people who insist on using "A Method", then at least try to convince them to use Kanban.
[+] [-] sprafa|4 years ago|reply
Agile has become a way for people with no development experience to “manage” developers and that will always be wrong. The West’s obsession with “managerial” experience being a thing you can learn start to manage “anything” from is the origin of much of our malcontent. Management is just something you add on top of knowing how things work. It’s not valuable as an isolated skill.
[+] [-] jseban|4 years ago|reply
Not only does it turn developers into factory workers, but also which is my biggest source of burnout, it turns developers into some kind of dysfunctional and immature people who need help with every kind of basic communication and decision, and forces you to undergo a quasi pop psychology group therapy. That's where I get the most burnout, I'm a grown-up and a normal well rounded person. I'm healthy, I can communicate, I can work in teams. Why do I not even get the benefit of the doubt that I can function normally in a team and do my job, and immediately get thrown into this awkward depressing self-help group therapy bs.
[+] [-] pydry|4 years ago|reply
This is intrinsic to the entire movement and was from the very beginning as far as I can see.
There were some good ideas that emerged from the auspices of the movement but the movement itself never really committed itself too hard to any of them.
[+] [-] nanis|4 years ago|reply
This is because the Scrum "masters" are not masters of the domain. In most cases, they went to a two-week class to get "certified". They have no understanding of the development process and they are not accountable to developers at all, only to upper management to whom they sell the word "agile" as a project management approach. What they are doing with all the planning/prep all the time, of course, is playing mini-waterfall in 3-6 month horizons.
> the real impact of that work is almost always never evaluated.
Because that might actually lead to reflecting on the performance of mid-managers and the scrum "masters". These groups tend to view developers as assembly line workers, they still think the "size" of a PR is indicative of its importance (think the KLOC counters of yore), and they think "key person risk" can be mitigated by eliminating said key person instead of fostering an environment that open to knowledge/experience sharing.
Those who can't do the tech get threatened by those who can and instead of focusing on their own comparative advantage and ensuring a productive environment, they focus on subjugating those who can do the tech to their every wish (fixating on things like label colors, prefixing every ticket with TAT, insisting that every ticket must be comprehensible to any random person in the company etc).
When 30 hours in a week are taken up by mandatory meetings, they then penalize people for not spending 40 hours on development. I've seen places which required keeping timesheets with 15 minute resolution.
I know there are places that are not like this, but I also know enough places that are.
[+] [-] matt_s|4 years ago|reply
Kanban paired with CI/CD is the best workflow, in my opinion. Break work down into known chunks, no estimation games, work it through a kanban board and put it in production when its done. A known side effect of doing this process is you may have people work on things that get de-prioritized and they sit there for a while and/or turn into waste. I'd rather have that known side effect than side effects like burnout, endless meetings and death march waterfall projects. Devs can still learn and hone their skills developing things that may end up as waste. Devs get nothing out of endless meetings and trying to meet arbitrary metrics.
[+] [-] zelos|4 years ago|reply
Yes, the whole 2 week 'sprint' thing really wears me down. I can see the value of deadlines and splitting work up, but between all the release/demo/planning overhead and the constant rush to fit things in it leaves me with a constant low-level anxiety.
3 weeks seems like a more reasonable figure to me. Or with a senior team, just having a prioritised backlog of tasks and doing them in order (sounds crazy, I know).
[+] [-] Tarucho|4 years ago|reply
20 years ago, friends which worked in non-management positions in hr, accounting, finance, etc envied the freedom I had being low-level worker. Nowadays I just follow orders and work on tickets as they do.
[+] [-] jseban|4 years ago|reply
Scrum just pretends that there are no decisions to be made, or if there is, that they are obviously simple and that everyone spontaneously just get along. In reality there are a lot of pretty damn important decisions to be made in developing and evolving software, and people have widely different ideas, and smart people are usually very stubborn as well.
I had a guy insist that a build script for a React app should absolutely be written in Ant. And nothing else. I argued with him that it's highly unusual, and that shell script or Makefile would be a better choice, pleaded with the rest of the team etc. It was massively exhausting for me and the whole team, this went on almost a whole week, and when I finally got my way on this issue, he just rage quit the team and transferred to another.
I just wish there was a manager who would be "the bad guy" and make decisions like this like the old fashioned way, it's not without benefits.
And similar incidents happen to me all the time, whenever I use SQL to solve something, use the command line, or when I simplify some code, I always get attacked by (mostly) juniors.
I just don't understand how to contribute as a senior when you have no decision power and no impact, and every decision is made in an undefined way (in reality by exhausting arguing).
[+] [-] benttoothpaste|4 years ago|reply
[+] [-] hsuduebc2|4 years ago|reply
[+] [-] lumost|4 years ago|reply
Scrum works if the manager is unclear on what the team does and when. Sometimes software teams are low productivity because people straight up aren't working, sometimes it's because there are a hundred operational tasks eating up all the bandwidth, and sometimes the team members aren't prioritizing the right work. In such a world scrum gives day to day status of the work everyone is doing and they can provide feedback to the team to get the team moving faster.
It's a short-term fix that sometimes gets pushed as a panacea for all software team management problems.
[+] [-] Viliam1234|4 years ago|reply
> Edit: By Agile I meant Scrum really.
The same thing would happen with any form of Agile, if it became widespread enough.
In most companies that use Scrum, managers change at least half of the rules of Scrum. In a parallel reality, you would see them change half of the rules of Kanban or Extreme Programming or whatever... and then developers would complain that (the actually practiced) Kanban or XP or whatever is not true Agile but more like the opposite of it.
The problem is that managers exist and want to keep their jobs. (Even worse, the power of a manager depends on how many managers are in the hierarchy below him or her, so even managers in the higher positions, who could in theory make the company more agile by firing the managers below them while keeping their own jobs, do not have an incentive to do so.) So whenever someone proposes Agile, managers modify it into Agile+micromanagement, to justify their jobs.
If you want to have actual Agile, you need to start without managers. If you have a hierarchy of managers who decide to implement Agile, you have already lost.
[+] [-] jokethrowaway|4 years ago|reply
This is not Agile, this goes against the Agile philosophy of putting people first in front of process.
Agile doesn't need coaches, just make your staff read the manifesto. If you have an Agile coach scheduling meetings nobody cares about, you're putting process in front of people.
From my experience, people are generally nice (not including myself in this group) and they won't say to your face that your job is useless. Heck, they'll even praise how good of a coach you are and ask for more meetings - while complaining in private about long meetings and leaving in record numbers.
[+] [-] jjav|4 years ago|reply
So much this. The continuous mental stress that agile imposes is so harmful. Having to re-justify your job every morning in daily status meetings, then having to spend all day worrying about having enough to say tomorrow. Counterproductively, it prevents me from getting in the zone and getting more done, so now I have less to status report tomorrow.
Apparently it's not just me either. I know someone who is a mental health professional (Silicon Valley area) and they've mentioned seeing an increasing trend of patients who bring up agile at the workplace as a cause for the stress that leads them to go see a mental health professional.
[+] [-] ryandvm|4 years ago|reply
I would suggest that if something is so hard to get right, then maybe it's not such a great methodology after all.
[+] [-] polskibus|4 years ago|reply
[+] [-] JKCalhoun|4 years ago|reply
Yes, that is the line that resonated with me as well. Twenty-five years now as a "corporate programmer" and I have watched the job go from cowboy-coder to "i"-dotter-"t" crosser.
There is way too much process now and it's not fun. Perhaps it's a sign of the industry maturing, the stakes are higher. Perhaps it's a sign that management no longer trust their devs. Perhaps one follows the other.
Regardless, I am soon to be exiting corporate and the new way is not something I will miss.
[+] [-] burlesona|4 years ago|reply
Case in point, when we get a tired of the office grind we can publish a manifesto that slams tons of people we’ve worked with in the past (with no fear of consequences from those burned bridges), move to a resort wherever we want, and still expect to either make great pay with benefits while fully remote, or realistically start our own business with a great chance of success (and can easily raise funding to defray the risk if we want to).
I’m grateful to work in software. It’s a wonderful thing that we have so much privilege. And so of course, at a time when the world has been quite stirred up and most of our lives affected, it’s great to see many engineers have the freedom to change jobs to fit their lives better, and that they’re exercising that freedom.
But could we observe and write about all that without the anger and entitlement? For anyone who has worked in other fields, or even less in-demand jobs in tech, it just comes across as whiny and out of touch.
[+] [-] VictorPath|4 years ago|reply
The post was written by someone who works about the management and shareholders of corporations. If privilege and entitlement are qualities of the people working on death marches at companies the DOJ said were illegally colluding to keep wages down, then what are the qualities of the heirs collecting dividends from these companies - expropriating the wealth of the surplus labor time of those creating the wealth. The system is the creation of heirs who never worked a day in your life, but you make the case of the parasites - that those actually working and creating wealth are the ones who are entitles, privileged etc.
[+] [-] alenmilk|4 years ago|reply
[+] [-] diehunde|4 years ago|reply
[1] - https://www.logicallyfallacious.com/logicalfallacies/Relativ...
[+] [-] kodah|4 years ago|reply
The biggest joke in the military was danger pay, which was $7.50. $7.50 if I was working in an active warzone that day. I still stood in formations, pointlessly, for hours. I still watched people who shouldn't have been promoted get promoted over people who should. I still watched people fuck each other over. I still sat though pointless and grueling training videos. I still had 8-12 hour workdays. I still lived with the idea that my life would end early through mental or physical health issues. I could go on.
The biggest difference I have is pay and the security to try and improve the system myself. I know if I get fired for trying to do the right thing that I'll find another job, whereas in the Marines as a four year corporal with one year total combat experience I made $20k and had no career prospects should the military see that I am a problem.
[+] [-] pelasaco|4 years ago|reply
[+] [-] b20000|4 years ago|reply
[+] [-] devwastaken|4 years ago|reply
[+] [-] twofornone|4 years ago|reply
It's not that I disagree in principle with what you're saying, but I think you're describing the top 10% range of programmers.
Edit: and herein lies the danger in dismissing the complaints of entire swaths of people with concepts lile "privilege". It's just a socially acceptable form of prejudice that never applies to all people from the group.
[+] [-] ericmcer|4 years ago|reply
[+] [-] eigengrau5150|4 years ago|reply
I worked as a supermarket janitor in high school and college. Most of my work in tech has been for government contractors. Most days I feel like I'm still a janitor, only I'm coping with other people's tech debt instead of scrubbing toilets. The thing is, if scrubbing floors and toilets paid as well as coding I'd go back to pushing a mop in a heartbeat because at least janitorial work has a better-defined scope of work and definition of done than most of the development projects with which I've been involved.
[+] [-] commandlinefan|4 years ago|reply
Not quite. Actors and musicians have it better, once they've established themselves.
I'm not being facetious here - with people trying to "break in" to programming and endless auditions in the form of whiteboard interviews, I can't help but feel like we've ended up in a career with most of the downsides and few of the upsides of an entertainment career.
[+] [-] brianmcc|4 years ago|reply
I'd suggest simply:
- software engineers are hugely in demand
- software engineers have worked out they can work well remotely, and often prefer it for a combination of productivity and work/life balance reasons
- software engineers are voting with their feet and finding work that suits their needs - and many firms are losing talent accordingly due to not meeting the needs of those staff
[+] [-] thornygreb|4 years ago|reply
Maybe management is dysfunctional everywhere, I don't know, about to find out but mine literally just copied the email (headers and all!) from the client into the ticketing system and assigned it. Most of management has been there for decades and it has been their only job ever.
I spent more time tracking my time spent in the various systems and monthly reports than actual dev work. And the work was so mind numbingly boring.
I took the plunge and applied to half a dozen interesting job posts and that was it. I was worried about ageism, being an imposter, having to leet code, endless rounds, etc. But it wasn't that bad at all, a small take-home and a few rounds of talking about experience and now a nice pay bump and new problems to solve.
[+] [-] nickjj|4 years ago|reply
> All companies (regardless of size and paycheck) make competent developers go through grueling 4–7 rounds of interviews.
It's possible to get hired with zero interviews, you need to put yourself into a position where this is the norm.
Every single contract / freelance job I've ever taken happened without a formal interview. I never had to do a whiteboard test or explain an algorithm to someone. I never had to write 1 line of code or even talk about lower level programming things specifically for the sake of getting a job for a specific company.
All I did was talk to them over email or Zoom while we discussed what they wanted me to do for the job. Then it went straight to a statement of work / contract and that's it.
Most of these happened where the person hiring reached out to me directly. I don't use any freelance platforms or marketplaces.
Now, the debatable part here is "competent developer". I won't make any claims that I'm competent but I have done a ton of assorted gigs over the years and lots of them lasted for multiple years (and still do). For context I sent out 47 invoices in 2020.
If you hate the idea of parading around interviews and working in an office please understand you have options. Besides part time high school jobs I never worked in a non-remote position in my life.
[+] [-] ChrisMarshallNY|4 years ago|reply
> A verifiable track record is overlooked, while CVs filled with adjectives top the stack.
This is not new, but I do believe it has reached a crisis point, in tech. I’ve often posted about my own travails with this.
The most annoying thing, to me, is, despite all the hoopla about “disruption,” companies hire for conformity. They always have, but the screeching about being “disruptive” is fairly recent.
Protip: you won’t “disrupt,” if you hire people that “won’t rock the boat.” Truly innovative workplaces aren’t necessarily comfortable (especially for management).
It’s like classic waterfall companies that claim to be “agile,” because they have daily meetings.
I thought this linked article was interesting: https://betterprogramming.pub/why-software-companies-often-r...
[+] [-] mabbo|4 years ago|reply
1- I couldn't get that SDE3 promo. If my clone had interviewed, he'd have been given an sde3 offer easily. But being on the inside requires a long checklist of requirements that I could never quite hit all of. Two other companies offered me the equivalent role immediately. With a nice pay bump.
2- Amazon won't commit to remote. It's all "between you and your manager" and "with your VPs approval", which is to say: subjet to change any time the person in that role does. Want to change teams? Best make sure that other manager and his VP will support you first. So can I really move four hours away from the office? Not really. My new employment contract has "remote" in it.
3- a growing sense that this isn't the right company for me. Too many controversies that I can't really see "our" side of. The leadership principles that I used to teach to new hires sound more and more hollow.
And when I looked at all that, and realized how good the job market is, it became a question of why would I stay?
[+] [-] vladimirralev|4 years ago|reply
Some are rolling out their own businesses sure, but it's a terrible time to start a business now. Wages are skyrocketing, supply chains are overbooked, inflation makes it impossible to secure long contracts on predictable terms, and the passive income mania fuelled by the banks makes working on fixed income unappealing.
[+] [-] ausudhz|4 years ago|reply
Some people find it comfortable working at big tech firm or enterprise and move around their layers or so. Ageism could be a thing but so there are lots of companies that pay seniors dev very well.
I think the only reason why some of these folks are leaving is because after earning more than 250k a year for many years (plus stocks) they've realized that there's not much value on working
[+] [-] lordnacho|4 years ago|reply
Devs are the specialists least dependent on capital. If you're a surgeon, you need a hospital, if you're a windmill engineer, you need the windmill factory. Dev can work with all his own tools, it's so cheap you can have your own workbench (eg on Hetzner) for almost nothing. The range of firms with dev-relevant capital is very wide.
Capital is cheap, too, thanks to the times we live in (let's not go there).
Senior devs who don't need hand-holding are a rare form of labor. It's free to everyone to learn how to be a coder, it's all out there on the internet in a way that is unparalleled across subjects and in history. But we are not flooded with competent devs. It would appear the bottleneck isn't in educating people.
Finally, the WFH revelation means markets are a lot less local. It only makes sense to look for a new job when you know all this.
----
BTW, it really is a dev's market right now. It's white hot, it's been white hot for at least half a year, and nobody knows when it ends. I encourage anyone who feels even a tiny bit inclined to have a look around. Even if you don't, try to finagle a day at home each week, because the recruitment game has been turned on its head by the ability of people to chat during work hours.
[+] [-] le-mark|4 years ago|reply
Note I didn’t use the loaded “10x” or “rockstar” monicker intentionally, to avoid the incessant argument whether they actually exist or not. I submit the current trend as evidence they do, and are often “senior” developers.
Title inflation is in fact a thing and not all seniors are equal. And of course the typical HN reader is near the top of the curve, so maybe we don’t realize just how much truly arcane knowledge is required to do this job.
[+] [-] RamblingCTO|4 years ago|reply
[+] [-] 2sk21|4 years ago|reply
[+] [-] nine_zeros|4 years ago|reply
I just don't have patience for artificial hoops and barriers to career growth set by management.
I don't want to "write more docs" or "be visible on slack" or "join some engineer guilds" or "give demos" or "mentor juniors" just for a promotion.
Just look at what I produce, is it valuable for the company? If yes, extra curriculars don't matter.
It is these bullshit hoops that make me wonder - why should I listen to anyone in management? I have only one life and I have to dance to this fools tunes? Leading me to switch jobs for a higher pay.
I know I will still have to report to a manager at the new job, but by switching, I get the promotion, I get more money and don't need to jump through artificial hoops set by a middle manager, who doesn't want me to rise as fast as I can.
[+] [-] dadoge|4 years ago|reply
Developers are rushing to start new companies?
Seems bogus to me. Tech workers are doing quite well financially speaking, and anecdotally I know no one (I’m 37 in medium/big tech) who started a new business the past year. The data from VC funding of companies is hardly a good measure of devs in their 30s/40s leaving their jobs to start new companies.
Also angst against capitalism is being addressed by…checks notes…starting your own company?! Seems like such an endless spew of one false narrative after another
[+] [-] peter_l_downs|4 years ago|reply
[+] [-] wrren|4 years ago|reply
[+] [-] twobitshifter|4 years ago|reply
[+] [-] president|4 years ago|reply
[+] [-] arthur_sav|4 years ago|reply
Not gonna lie, we have it pretty good. Great salary, flexible working hours, bonuses, job prospects etc... but it's kinda sad seeing your employer riding the internet wave while you're stuck on a leash.
If you're a senior dev, you probably can build something useful for people and make a great living out of it. The only thing you need is a laptop and some creativity.