The irony is that this is a classic engineer's take on the root cause of technical debt. Engineers are happy to be heads-down building. But when you get to a team size >1, you actually need to communicate - and ideally not just through a kanban board.
It comes as no surprise that a worker unit who makes this conscious decision might have problems interfacing with a Homo sapiens unit.
I think this is a large factor in the turn towards more authoritarian tendencies in the Silicon Valley elites. They spent the 2000s and 2010s as a bit more utopian and laissez faire and saw it got them almost nowhere because of technology doesn't solve people problems.
I used to be a "stay out of politics" developer. After a few years in the industry and move to a PM role, I have had the benefit of being a bit more detached. What I noticed was that intra-developer politics are sometimes way more entrenched and stubborn than other areas of the business.
Sure, business divisions have infighting and politics but at the end of the day those are tempered by the market. It's far harder to market test Ruby Versus Java in a reasonable manner, especially when you have proponents in both camps singing the praises of their favored technology in a quasi-religious manner. And yes, I have also seen the "Why would I learn anything new, <Technology X> works for me, why would I take the effort to learn a new thing" attitudes in a large number of coworkers, even the younger Gen-Z ones.
If you're trying to pick a development language by committee, something is already very wrong. That something would be a people problem I suppose (because everything is), but it's really a strategic problem of the business.
I also think they tend to be the older ones among us who have seen what happens when it all goes wrong, and the stack comes tumbling down, and so want to make sure you don't end up in that position again. Covers all areas of IT from Cyber, DR, not just software.
When I have moved between places, I always try to ensure we have a clear set of guidelines in my initial 90-day plan, but it all comes back to the team.
It's been 50/50: some teams are desperate for any change, and others will do everything possible to destroy what you're trying to do. Or you have a leader above who has no idea and goes with the quickest/cheapest option.
The trick is to work this out VERY quickly!
However, when it does go really wrong, I assume most have followed the UK Post Office saga in the UK around the software bug(s) that sent people to prison, suicides, etc. https://en.wikipedia.org/wiki/British_Post_Office_scandal
I am pretty sure there would have been a small group (or at least one) of tech people in there who knew all of this and tried to get it fixed, but were blocked at every level. No idea - but suspect.
What is wrong with just wanting to work for money?
> I am not sure what has happened over the decades regarding actually being proud of the work you produce.
Maybe if wages kept up with inflation people would still care. You know, when I was young, I was able to rent an apartment while being a cashier in a grocery store.
Socially and emotionally? It's brutal. For both the employee and society in general.
Spending almost half their waking hours not caring is not good for people.
And if you hate your job, but are completely unable to find alternative employment (which is what you should do if you hate your job), you probably should reconsider how much you hate your job.
Seriously, pay people what they are worth and they will care. It is not that hard.
I take pride in the stuff I enjoy doing. A job is just a paycheck because I need it.
Work being "just a paycheck" does not mean you hate it or half ass it. But, it means you do go home to get rest, you do socialize outside of work instead of irrationally pushing it and then using meetings for socialization. It means you do not have ego tied to it so much you throw temper tantrum when things are imperfect (which is not the same as being able to change things for the better).
I expect my employees to show up to work and put forth a solid effort on a regular basis. Note that this doesn't mean a constant death march towards some unreasonable objective, or anything even close to it. Just apply yourself using the skills we agree you have for the pay we also agreed upon for 8 hours a day on average. In my field, this means you have pay that is well above the norm for an average software developer, and the working conditions are good or better.
A shocking number of people are incapable of this, and generally are also the same people who would claim that "they didn't start this".
every company in the united states could become a co-op and nothing would change for the business and everything would change for the workers. And everyone would be much happier at work and you would have the caring people you want.
It is the system that is the problem, not the people.
Currently AI "solutions" being implemented in places like call centers are often technical solutions attempting to pave over organizational problems. Many IT solutions are like that. We refuse to fix the underlying problems, so we layer software on top, so we won't notice the stupidity below.
IT companies will happily take the money and write the code, broken as it might be, because the real problems aren't actually resolved. That to me is a problem. Companies needs to be way better at saying no, and offer help address the underlying issues instead, even if they aren't technical in nature.
You still can almost everywhere outside of places like SF? I just spot-checked some data, and in Minneapolis for example currently available apartments are comparable to what they were when I was looking 10 years ago, cashier wages have gone up 45%, and that often comes with healthcare benefits now. It's not an especially wealthy life, but a single person should be very comfortable (that's a comparable hourly wage and apartment cost to what I had delivering pizza at some other part of my life, and I lived comfortably and was able to save up to splurge on a nicer used Miata and the down payment for a small house).
> What is wrong with just wanting to work for money?
Imagine a society where your work was an opportunity for you to provide products/services for your community, where you could earn a reputation for craftsmanship and caring, and where the real value was in the social ties and sense of social worth-- your community cares for you just as you care for it, and selfish assholery has high costs leading to poverty.
Now imagine a society where the only measure of social worth is a fiat currency, and it doesn't matter how you get it, only matters how much you have. Selfish assholery is rewarded and actually caring leads to poverty.
Which society would you rather live in? Which society is more emotionally healthy?
So the question is, is our current society the one we want to live in? If not, how do we move it closer to what we want?
By going all Ted Kaczynski on the elite and abandon sensationism and most of technology.
Nothing. In fact, I envy people who can and wish I could. Consider it one of my largest flaws.
If anything happens, the company will lay off people without a care for what happens to them.
Even when they do care, such as in a smaller company, their own paycheck is being weighed against the employees, and they will almost always pick themselves, even if they caused the problems.
CEOs making millions while they lay off massive amounts of people is the norm now, and everyone knows it.
You can't blame the employee for not caring. They didn't start it.
And that exactly used to be different and still is in small companies.
My dad worked as an engineer in the same firm for 30 years and retired. The company was founded before his father was born, and was publicly listed before he was born.
Substantially every company I have worked for didn't even exist 30 years before I joined, let alone before I or my father were born. Most won't be around in 30 years.
Several employers nearly went out of business, had substantial layoffs, or went thru mergers that materially impacted my department/team/job. The guys at the very top were always fine, because how could the guy in charge be responsible?
Even within the companies I stayed 5 years, I had multiple roles/bosses/teams.
Because there's still people doing less work than you do for a bigger paycheck
Because you'd get fired or laid off for someone working for 1/2 to 1/4th of your pay
Because they make you jump through multiple rounds of interviews and technical tests while people above you have a far less barrier to being hired
Because someone stole credit for your work
Because you'd get re-hired and find a mountain of shit code from a company that off shored their dev team
Because companies stopped giving significant raises that didn't keep up with major inflation in the past few years, while your work might have gotten them many multiples more of profits
Idk it's just a mystery we'll never know
Simple:
1. People lost ownership of the things they work on. In the early 1900s, more than half of the workforce was self-employed. Today, it is 10% in the US, 13% in the EU.
What you produce is not “yours”, it’s “your employer’s”. You don’t have ownership, and very limited to no agency.
2. People lost any tangible connection to the quality and quantity of their output.
Most workers don’t get rewarded for working harder and producing more or better output. On the contrary, they are often penalized with more and/or harder work.
To quote Office Space: “That makes a man work just hard enough not to get fired.”
3. People lost their humanity. They are no longer persons. They are resources. Human resources. And they are treated like it.
They are exploited for gain and dumped when no longer needed.
Lololol
Edit: I'm already down one - for people that don't read wikipedia here are the 4 dimensions of alienation of a worker as listed in the wiki:
1. From a worker's product
2. From a worker's productive activity
3. From a worker's Gattungswesen (species-being)
4. From other workers
Edit2: People [in America] will moan about their jobs, their bosses, their dwindling purchasing power, their loss of autonomy, etc etc etc but then come back as champions of capital. You see it all the time - "my job sucks but entrepreneurialism is what makes America great!!!!!!!". I've never seen a more rake->face take than this (and on such an enormous scale). It's absurd. It's delusional.
Many employers actively discourage people from doing work that they are proud of. You cannot be proud of something that is built as cheaply as possible.
You can get employees to care about customers or the product, you cannot get employees to care about profits and dividends.
I recall there was a whistleblower Richard Roll who said that engineering did know of the bugs and flaws
My local grocery stores won’t accept pride as payment for food, and working harder doesn’t make my paycheck increase.
For individual workers, the best thing is to work @ something you love && get good pay. Like a compiler engineer, a kernel engineer, an AI engineer, etc.
I've been on both sides. Having to beg a manager to get permission to fix a thing that I thought needed fixing. And now I'm on both sides where as a CTO it's my responsibility to make sure the company delivers working products to customers that are competitive enough that we actually stand a chance to make money. And I build our product too.
Two realities:
1) Broken stuff can actually slow down a lot of critical feature development. My attitude as a CTO is that making hard things easier is when things can move forward the fastest. Unblocking progress by addressing the hardest things is valuable. Not all technical debt is created equally. There's a difference between messing with whatever subjective esthetics I might have and shit getting delayed because technical problems are complicating our lives.
2) We're a small company. And the idiot that caused the technical debt is usually me. That's not because I'm bad at what I do but I simply don't get it right 100% of the time. Any product that survives long enough will have issues. And my company is nearly six years old now. The challenge is not that there are issues but prioritizing and dealing with them in a sane way.
How I deal with this is very simple. I want to work on new stuff that adds value whenever I can. I'm happy when I can do that and it has a high impact. Whenever some technical debt issue is derailing my plans, I get frustrated and annoyed. And then I sit down and analyze what the worst/hardest thing is that is causing that. And then I fix that. It's ultimately my call. But I can't be doing this all the time.
One important CTO level job is to keep the company ready for strategic goals and make sure we are ready for likely future changes. So I look at blocking issues from the point of view of the type of change that they block that I know I will need to do soon. This is hard, nobody will tell me what this is. It's my job to find out and know. But getting this right is the difference between failing or succeeding as a technology company.
Another perspective here is that barring any technical moat, a well funded VC-funded team could probably re-create whatever you do in no time at all. If your tech is blocking you from moving ahead, it can be sobering to consider how long it would take a team unburdened by technical debt to catch up with you and do it better. Because, if the answer is "it wouldn't be that hard" you should probably start thinking about abandoning whatever you are trying to fix and maybe rebuilding it better. Because eventually somebody else might do that and beat you. Sometimes deleting code is better than fixing it.
There are lots of good reasons tech debt exists, and it's worrying that this person seems to think that they all boil down to "I don't know how but someone, somewhere, fucked up"
The more interesting discussion to me is: how do you solve this problem once it exists in a team? I guess there are many approaches, but I tend to think that 'lead by the example' is the best you can do as an engineer, but a top-down approach might work better which is what happened at Microsoft when Satya Nadella became CEO.
https://www.amazon.com/Peopleware-Productive-Projects-Tom-De...
* Conway's law causing multiple different data science toolchains, different philosophies on model training, data handling, schema and protocol, data retention policies, etc.
* Coming up with tech solutions to try to mitigate the impact of multiple silos insisting on doing things their own way while also insisting that other silos do it their way because they need to access other silos' data.
And the reason standardization won't happen: the feudal lords of each of those branches of the hierarchy strongly believe their way is the only way that can meet their business/tech needs. As someone who gets to see all of those approaches - most of their approaches are both valid and flawed and often not in the way their leaders think. A few are "it's not going to work" levels of flawed as a result of an architect or leadership lacking operating experience.
So yeah, it might look like technical problems on the surface, but it's really people problems.
- Requirements are rarely clear from the beginning;
- We (DE) are not enabling self-service and automation so we are drowned in small requests (add this column for example;
- Upstream rarely notify us about the changes so we only know when downstream alerts us. We end up building expensive pipelines to scan and send alerts. Sometimes the cost of alerts > cost of pipeline itself;
- We have so many ad-hoc requests that sprint is meaningless. If I were the manager I'd abolish sprint completely;
- Shadow knowledge that no one bothered to write down. I tried to write down as much as possible, but there are always more unknowns than knowns;
Working in DE definitely gives me enough motivation to teach myself about lower level CS.
zaphar•55m ago
Outdated may sometimes be a euphemism for one of the above but usually when I see it in a discussion it just means "old" or "out of fashion" instead.
amonith•42m ago