Live data from Hacker News

Nobody gets promoted for simplicity

terriblesoftware.org

41–50 of 534 posts

Re: Nobody gets promoted for simplicity

#41

AI coding tools are making this problem worse in a subtle way. When an agent can generate a "scalable event-driven architecture" in 5 minutes, the build cost of complexity drops to near zero. But the maintenance cost doesn't. So now you get Engineer B's output even faster, with even more impressive-sounding abstractions, and the promotion packet writes itself in minutes too. Meanwhile the actual cost - debugging, onb…

Simplicity is a driver for better abstractions. But now with AI, will we even develop new abstractions?

Re: Nobody gets promoted for simplicity

#42
post #35

People always overcomplicate this. Companies want to get the most out of their employees, for the least amount of money paid. Promotions are supposed to incentivise people to stay, rather than leave. If the company never promoted anyone, people would leave. So there needs to be a path for promoting people. But that process doesn’t have to be transparent, or consistent, or fair - in-fact it rarely is. You promote peop…

It's really not that simple.

Numerous times I've seen promotions going to people who were visible but didn't do the actual work. Those who share the achievements on Slack, those who talk a lot, get to meetings with directors, those who try to present the work.

Re: Nobody gets promoted for simplicity

#43

AI coding tools are making this problem worse in a subtle way. When an agent can generate a "scalable event-driven architecture" in 5 minutes, the build cost of complexity drops to near zero. But the maintenance cost doesn't. So now you get Engineer B's output even faster, with even more impressive-sounding abstractions, and the promotion packet writes itself in minutes too. Meanwhile the actual cost - debugging, onb…

It's a bad time to be an altruistic perfectionist, tell you what. Avoid hands-on tech/team lead positions like hell.

It’s not even about perfectionism. Code’s value is about processing data. Bad code do it wrongly and if you have strange code on top of that, you cannot correct the course. Happy path are usually the low hanging fruits. What makes developing software hard is thinking about all the failure and edge cases.

Re: Nobody gets promoted for simplicity

#44
The push for simplicity can't be at the time of recognition. It has to be during the building, so that by the time the thing gets built, it's the simplest thing that met the need.

Can you actually imagine a promo committee evaluating the technical choices? "Ok, this looks pretty complex. I feel like you could have just used a DB table, though? Denied."

Absolutely not! That discussion happens in RFCs, in architecture reviews, in hallway meetings, and a dozen other places.

If you want simplicity, you need to encourage mentorship, peer review, and meaningful participation in consensus-building. You need to reward team-first behavior and discourage lone-wolf brilliance. This is primarily a leadership job, but everybody contributes.

But that's harder than complaining that everything seems complicated.

Re: Nobody gets promoted for simplicity

#45

AI coding tools are making this problem worse in a subtle way. When an agent can generate a "scalable event-driven architecture" in 5 minutes, the build cost of complexity drops to near zero. But the maintenance cost doesn't. So now you get Engineer B's output even faster, with even more impressive-sounding abstractions, and the promotion packet writes itself in minutes too. Meanwhile the actual cost - debugging, onb…

On the other hand, AI coding tools make it relatively easy to set and apply policies that can help with this sort of thing.

I like to have something like the following in AGENTS.md:

## Guiding Principles - Optimise for long-term maintainability - KISS - YAGNI

Re: Nobody gets promoted for simplicity

#46
Not my experience.

I once hacked a spreadsheet in a week that was good enough to not embark on a multiple-months 3-devs project.

In the same team, I tweaked a configuration file for distributed calculations that shaved 2 minutes of calculation on an action that the user would run thirty times a day.

I got paid all right.

People don't give a shit about complexity or simplicity. They care about two things:

1. Does it work

2. How soon can you ship

There is a third thing that stakeholders really like: when you tell them what they should be building, or not building.

Re: Nobody gets promoted for simplicity

#47

AI coding tools are making this problem worse in a subtle way. When an agent can generate a "scalable event-driven architecture" in 5 minutes, the build cost of complexity drops to near zero. But the maintenance cost doesn't. So now you get Engineer B's output even faster, with even more impressive-sounding abstractions, and the promotion packet writes itself in minutes too. Meanwhile the actual cost - debugging, onb…

It's a bad time to be an altruistic perfectionist, tell you what. Avoid hands-on tech/team lead positions like hell.

that second line is so underrated

Re: Nobody gets promoted for simplicity

#48
post #41

AI coding tools are making this problem worse in a subtle way. When an agent can generate a "scalable event-driven architecture" in 5 minutes, the build cost of complexity drops to near zero. But the maintenance cost doesn't. So now you get Engineer B's output even faster, with even more impressive-sounding abstractions, and the promotion packet writes itself in minutes too. Meanwhile the actual cost - debugging, onb…

Simplicity is a driver for better abstractions. But now with AI, will we even develop new abstractions?

I was in charge of cleaning up a slop codebase by someone who has barely even heard of 'coding' before. Let's just say, it was abstract.

Re: Nobody gets promoted for simplicity

#49
post #34

Long rant, but the author never defines what he means by "simple". He heavily hints at smaller changeset == simpler . Too often the smallest changeset is, yes, simple, but totally unaware of the surrounding context, breaks expectations and conventions, causes race conditions, etc. The good bit in tfa is near the end: > when someone asks “shouldn’t we future-proof this?”, don’t just cave and go add layers. Try: “Here’…

this might help https://hammerproject.com/2023/07/28/complexity.html

Re: Nobody gets promoted for simplicity

#50
post #34

Long rant, but the author never defines what he means by "simple". He heavily hints at smaller changeset == simpler . Too often the smallest changeset is, yes, simple, but totally unaware of the surrounding context, breaks expectations and conventions, causes race conditions, etc. The good bit in tfa is near the end: > when someone asks “shouldn’t we future-proof this?”, don’t just cave and go add layers. Try: “Here’…

I think Rich Hickey's talk about simple is great for defining these terms (literally). He describes how the roots of "simplex" mean single braid, which compares to the twisting & coupling with complexity; an apt visual for software development. He also differentiates simple/complex from easy/hard, which is important.

https://www.youtube.com/watch?v=SxdOUGdseq4

Post reply on HN