Live data from Hacker News

Nobody gets promoted for simplicity

terriblesoftware.org

71–80 of 534 posts

Re: Nobody gets promoted for simplicity

#71
post #7

Dijkstra understood it 50 years ago, and again 26 years ago [1]. Nothing changes. Malpractice just propagate and there are zero incentives to build simple, small, and maintainable software. If the company you work for just push for unnecessary complexity, get out of there! Don't fold! [1]: https://www.cs.utexas.edu/~EWD/ewd13xx/EWD1305.PDF

> If the company you work for just push for unnecessary complexity, get out of there!

Why? We learn all these cool patterns and techniques to address existing complexity. We get to fight TRexes… and so we get paid good money (compared to other jobs). No one is gonna pay me 120K in europe to build simple stuff that can work in a single sqlite db with a php fronted.

Re: Nobody gets promoted for simplicity

#72
post #20

One of our interviews is a technical design question that asks the candidate to design a web-based system for public libraries. It explicitly tests for how simple they can keep it, starting at "a single small town library" scale and then changing the requirements to "every library in the country". The top ever performance was someone who answered that by estimating that even at max theoretical scale, all you need a m…

Most people forget that the early web was built in server closets on-site handling hundreds of requests per second. The business was sold hyperscalers because devs wanted more servers and were tired of arguing WHY they wanted more servers. Then they got sold on Highly Available services because every second you're down is a dollar, or more, lost. Nobody mentioned that the cost of building and maintaining it costs more than the money you'd lose except for the largest of organizations.

Don't even get me started on the resume-driven development that came along with it.

And maybe I'm completely wrong. This is a perspective of one.

Re: Nobody gets promoted for simplicity

#73
I had an interview question. What would you do if two different people were emailing a spreadsheet back and forth to track something?

I said I’d move them to google sheets. There was about five minutes of awkwardness after that as I was interviewing for software developer. I was supposed to talk about what kind of tool I’d build.

I found it kind of eye opening but I’m still not sure what the right lesson to learn was.

Re: Nobody gets promoted for simplicity

#74
There are two other reasons:

- CV-driven development. Adding {buzzword} with {in production} sounds better than saying I managed to make simple solutions faster.

- Job security. Those who wish to stay longer make things complicated, unsupportable, and unmaintainable, so they become irreplaceable.

Re: Nobody gets promoted for simplicity

#75
Nyeah ... but people can get promoted for consistently shipping stuff that works, on time. And people can get sidelined for consistently taking 10x as much time to provide the same business value. That may not be the rule, and it may not always be obvious in the short term who is sidelined. But it can happen.

It can even happen that the tag "very smart" gets attached to those sidelined engineers. That's not necessarily a compliment.

Re: Nobody gets promoted for simplicity

#76
post #58

Earlier quoted context omitted.

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

Not sure if you're kidding or not, but to write great maintable code, you need a lot of understanding that a LLM just doesn't have, like history, business context, company culture etc. Also, I doubt that in it's training data it has a lot of good examples of great maintainable code to pull from.

"Be sure to remember software is a sociotechnical system and dont fall prey to the Mechanistic myth"

Re: Nobody gets promoted for simplicity

#77

Sure they do. You just need to spell it out in business terms, not tech terms: "Reduced incidents by 80%", "Decreased costs by 40%", "Increased performance by 33% while decreasing server footprint by 25%" Simplicity for its own sake is not valued. The results of simplicity are highly valued.

Never seen these metrics in real life, especially in engineering.

Re: Nobody gets promoted for simplicity

#78
Assuming: simplicity === no unnecessary complexity.

In my (limited) experience as an engineer and manager, leadership (e.g., a VP) didn’t like (or reward) simplicity. Simple solutions often meant smaller teams, which wasn’t something they were pushing for, especially pre-2024. I do think this is slowly evolving, and that the best leaders now focus on removing unnecessary complexity and improving velocity.

Re: Nobody gets promoted for simplicity

#79
Promotion Driven Development at its finest. There's no good way to fix this without better teams and less Lord of the Flies style management. Servant leadership helps here, but if your team is adversarial in nature there is no escape. A manager that needs an exciting story to get a feather in their hat will take the story every time over "+20 -8000" commit style developers. Your product will suffer accordingly.

A lot of this boils down to promo system being so systematized. I've never heard of people in any other field min/max their promotions as hard along with all of the expert jargon in any other field I've worked in. Packets, peers, comp, other co comps, what your boss thinks of you, what your boss thinks of your peers (nee: competitors), and the inevitable crash out when they don't get the promotion. All part of the bigco experience! I feel like when we systematized comp into ranks Lx, Ly we gave up our leverage a little bit.

Re: Nobody gets promoted for simplicity

#80
post #73

I had an interview question. What would you do if two different people were emailing a spreadsheet back and forth to track something? I said I’d move them to google sheets. There was about five minutes of awkwardness after that as I was interviewing for software developer. I was supposed to talk about what kind of tool I’d build. I found it kind of eye opening but I’m still not sure what the right lesson to learn was…

Probably that you didn't want the job?

At least from the point of view of the interviewer, this was the point where they should give you a polite "hey, play along" nudge.

Post reply on HN