What the author describes is that the manager manipulated the consensus building in the team, by adding friends to the team so he can start ignoring them. Consensus building is a key part of any organization and doing this is not ethical.
Then, what you describe: reducing technical debt is a nice to have? life is too short to care about quality? That's pretty much, in your own words "the coward way": "checking out mentally".
Building consensus is just one management style. It is by no means the only one, or even the only effective one. It's not unethical to manage in a different fashion. The people being managed don't like it, but that doesn't make it unethical. Just find a better job.
Checking out and doing what you're told is a rational response, one that management would not be opposed to seeing. You're still getting paid the same, but are having your responsibilities taken away. Most other people are overworked and underpaid, you're getting underworked and overpaid. So why complain?
Being able to come into work, do a job, and go home without having to be worried about the outcome of your efforts, to have someone else on the hook for it, that would be looked at by a lot of people as a luxury. But devs all seem to have this ego that keeps them from being able to appreciate the reprieve.
Yes. Check out mentally. Do your job and go home at 5 and do all those other things in your life that you've been neglecting because you were putting that energy into your job. Spend time with your wife and kids, date if you're single. Work on your hobbies. Enjoy it because that's not going to last forever either.
What I see from many of your comments, and why I think you're getting so much opposition, is that you are suggesting we should be satisfied simply being programmers while many people here on Hacker News want to be more than that.
The reality may be that many of us are just programmers and that the real struggle isn't with the project management but with our refusal to accept our role. I can't argue with that. We can't all be architects; someone has to lay the bricks and you can spare yourself some trouble, and even find some satisfaction, by accepting that from time to time someone will tell you to lay the bricks the other way. But I wouldn't demean people for wanting to do more.
Personally, I don't find programming very fulfilling. I don't get satisfaction from producing a sufficient quantity of code, but from solving sufficiently challenging problems. Coding a means-to-an-end for me, just a medium to express my thoughts and ideas like pen and paper to an artist. When my job became more about bullet-point features and timelines than the problems the system was supposed to solve I struggled. A lot. In fact I started looking for new problems to solve in lieu of the ones I had been working on, like why the project was struggling and how to convince the project managers they were just digging us deeper into technical debt.
Fortunately I'm being moved to another team as part of a restructuring in our organization and had the opportunity to explain my perspective to my new manager, who suggested I could be put on more of a leadership track. Will it happen? Will it be better? I don't know, but trying means I can see if my current employer wants to see what else I can offer and help me grow or if they just want me to sit down, shut up, and spit out some code.
Getting plenty of upvotes too. If I find I'm not controversial enough, I'll dig around for something more interesting to say.
> you are suggesting we should be satisfied simply being programmers
I'm doing nothing of the sort. What I'm saying is that you shouldn't let your job become your identity. Dream big, but realize that the best company to be the receptacle for those dreams is the company you build yourself. This was a hard lesson for me to learn, but ultimately it makes everybody happier; you, your SO, the company you currently work for, the people you're working with on the side.
My go-to saying for this is "Don't fall in love with something that can't love you back."
Thanks for your clarifying where you're coming from. I read comments like
> All good things eventually come to an end, and you need to be ready for the inevitable.
> You're just not in a position to be able to change how people think about things. Your skillset is not with people, it's with code.
> You're still getting paid the same, but are having your responsibilities taken away. Most other people are overworked and underpaid, you're getting underworked and overpaid. So why complain?
and it sounds like 'The professional world sucks. Deal with it.'
But with a bit of context I think they can be read in a way that should resonate with more people here, perhaps 'The professional world sucks. If you think you're ready to go out and tackle that problem then get out there and do it.'
I'm not interested in resonating. I want to challenge people's beliefs. I don't care for platitudes. I want to dive down into the subtleties and tease out complex truths.
I don't think the professional world sucks. I think it's awesome. I spent much of my twenties doing construction work. That world sucks. The professional world sucks only so long as you lack professionalism.
Once you learn professionalism then the professional world stops being able to hold you. I have been Office Space-ing my work life down to where I can do pretty much whatever I want with my work time.
I have been cultivating business contacts for some time now, creating a network of clients so that I can make my jump into the business world. The professionalism you learn in corporate jobs is invaluable there.
Every day brings with it a more relaxed approach, more return on my efforts, more ease in learning new things.
Developers are missing out on the unique opportunities that the professional world offers by focusing on non-issues like whether their bosses will allow them to pay down technical debt. How utterly silly from my perspective! If it's that important to you, just man up and do it, damn the consequences!
Let's face it, you are going to spend the majority of your life at work. Is money the only thing you care about? If so, why not doing something else? Nobody gets rich being a checked out employee.
You not only get paid with money, you get also paid with experience. That experience has a market value.
If your resume reads: "mindless checked out employee in tyrannic sweatshop using 15 years old tech", your market value will be lower than "engaged employee in innovative company using cutting edge tech". So if money matters to you, you should care about investing your career in experiences that lead to a higher market value.
It seems to me that checking out mentally is only an option if you're doing mindless, repetitive work. But as Fred Brooks put it, "The programmer, like the poet, works only slightly removed from pure thought-stuff." So is it even possible for programmers to check out mentally without seriously degrading the quality of their work?
> "The programmer, like the poet, works only slightly removed from pure thought-stuff."
I don't agree with this. Programming does not start from scratch. You are always building on someone else's work. Sure, there's the hardware and software you're building on top of, but there's also methodologies and philosophies that other people came up with that you're using too, even if it's only subconscious. It's not the same all-encompassing mental marathon that writing good poetry is. Or, at least, it doesn't have to be.
My work quality went up when I stopped caring about things I really shouldn't have been caring about. I now feel that the biggest source of problems in codebases comes not from so-called technical debt, but from programmers incessantly biting off more than they can chew.
I can care about doing a good job and keeping a tight ship without having to care about company politics. A job is what you make of it. As far as I'm concerned, I'm not breaking rocks apart with a hammer for 16 hours a day, and I have some bargaining power to make my lifestyle better, so why complain? I don't understand people that have to turn work into some grand quest to make the world better. I think these sorts end up making more unhappiness than they do happiness.
A job you love is a great thing. But that job is only going to last as long as the economics work, or the company wants it to last, or if you're doing the business end as well as the technical end. Once it's gone, just find another job and work out ways to love it.
Nobody can task you to do a bad job. You do that yourself. You may find excuses for doing a bad job, but you chose to do it, they didn't hold a gun to your head.
If I find that I absolutely have to either cut corners or let the deadline slip, I let the deadline slip. I refuse to knowingly release crappy work, you can fire me for it, I don't care. But long before that deadline, I will have explored the options for changing the scope of the project so such a decision isn't necessary.
"Just find another job" isn't sufficient because every job involves making tradeoffs between personal goals and business goals. I believe in being real clear with management about what's happening so that we can work towards an equitable solution.
Then, what you describe: reducing technical debt is a nice to have? life is too short to care about quality? That's pretty much, in your own words "the coward way": "checking out mentally".