Live data from Hacker News

Nobody gets promoted for simplicity

terriblesoftware.org

41–50 of 95 posts

Re: Nobody gets promoted for simplicity

#41
post #20

This hit a nerve because “simplicity” is one of those things you only notice when it’s missing, and most orgs don’t have a good way to reward “the thing that didn’t happen.” I’ve watched this exact dynamic play out: one person ships the boring implementation, nothing breaks, everyone moves on. Another person ships the “platform” version, there are docs, diagrams, an internal talk… and now there’s a subsystem that nee…

> If an org wants to fix the incentive, I think the question to ask in reviews isn’t “how big was the thing you built,” it’s “did you make the system easier to change next quarter.”

This has been my personal mission and motivation to go into management. I see my job as making sure engineers are rewarded for building the simplest thing that works.

So far the best way to align incentives that I've found is a simple policy: We'll ship whatever you want, but we know your phone number and you're on-call for your systems. At least 2nd tier on call.

It's a little mean but you'd be surprised how quickly engineers start simplifying stuff when they feel like they can't get anything done because someone's always asking questions or triggering alarms about that weird thing they built 3 months ago.

> A lot of system design interviews are accidentally training people that the goal is to draw more boxes until the interviewer nods. The more senior move is usually: start simple, instrument, set thresholds, and only then add machinery

I do the system design interview. The easiest way to fail is to over-design the solution. I am going to ask deep probing questions and you better have answers. My favorite answer is when people go "Oh yeah you're right, this box doesn't add any value, we can remove".

Re: Nobody gets promoted for simplicity

#42
As a /former/ EM at an almost-household-name-tech-company, I can explain.

First of all, unless you're at a tiny startup (where quality of engineering isn't even on the horizon), you don't really get promoted by your manager. You get promoted by your manager's manager. Your manager simply "proposes" your promotion, almost as an idea.

Obviously your EM doesn't wanna propose ideas that will be indefensible, so the decision to propose you is a function of roughly four variables:

0. How consistently you've shipped stuff. It can be the most complex, terrible, haphazardly put together piece of shit, implemented in 6000-line functions, but if it ships when you said it would ship, and the feature works on launch -- really works, without causing incidents and headaches over the next two weeks, you're golden

1. How much effort you made in terms of energy exertion. This is usually counted in hours of work. You're a lot more likely to get promoted if you spend 16 hours at the office, even if 15 of those are just watching mountain bike review videos in a small tab opened on the side, with your noise-canceling headphones on

2. How much enthusiasm / good intent / positivity you exert. Engineers who are "excited" about the company and the privilege of having a job in it and are demonstrating creative thinking in the interest of "changing the world" (read: "increasing shareholder value") are more likely to get proposed for promotion than those who know better

3. How much everyone around you likes you. The proverbial "soft skills". If everyone around you says "that person is incredible, I love working with that person, they're so smart / hard-working / nice / pleasant", both in public and in private, you're much easier to promote

With rare exceptions, your direct manager probably understands pretty well who's actually doing what, how, when, and how much, in terms of substance and not fluff. But their manager is too far removed from it all. Their manager, in fact, likely wants to make sure there's no favoritism or anything funky going on, so when your manager proposes you for promotion, their manager wants to see objectively measurable stats, proving that you deserve the promotion.

It's really difficult (read: impossible) for your manager's manager to tell an easy project from a challenging project made easy by you being so competent. Your manager's manager wants a war story, with dramatic character development, and an unlikely victory by the protagonist, against all the odds. Yes, during public Q&As they will say that they prefer you work smart, not hard. That it is foolish to measure programmer productivity by lines of code written or number of hours spent with noise-canceling headphones on at the office premises. What they won't mention is that they simply have no other way of measuring programmer productivity. Go ahead, ask them during the next all-hands. You'll get nothing of substance. "Here at ACME, we trust your manager", they will say.

So.

When your manager walks into that 1:1 with their boss, their boss wants to hear that you have, single-handedly, written gigalines of code, 16 hours a day, clicked Nobody who controls your promotion ever actually reads your code, or understands your solutions. Nobody ever loads up your architecture diagram or your implementation when discussing your promotion. Something to keep in mind. People in a position to give out "career rewards" are too busy, distracted, and uninvested in you personally to pay attention to anything other than quick, easily observable and defensible impressions.

Re: Nobody gets promoted for simplicity

#43
I went to town on this in a blog a few years back "The Common Sense Guide to Not fucking up Your Business or Organization." https://rodyne.com/?p=2024> as the action described in the original article is usually one of the first clues that something is wrong. I've seen many a good person leave companies and IT budgets subsequently balloon out of control with a completely laissez-faire attitude by senior management. I wish more CEO's would pick up on this stupidity.

Re: Nobody gets promoted for simplicity

#45

This is just not true, people get promoted for delivering impact whether the solution is complex or simple. The best engineer I know who can work with huge complex systems in a big company usually starts with a complex solution then after he understands what he wants to achieve thinks backwards and reimplements it in the fewest possible lines of code change with the already complex system.

Was going to say something like this. If you're good at keeping things simple, it will help you deliver impact which can get you promoted.

I’m here to support both of your statements. This is absolutely true from orgs the size of FAANG to startups because I’ve worked at both. Sure smooth talkers get promoted but so do smart people who make things work better by simplifying.

Re: Nobody gets promoted for simplicity

#47

I’ve also seen this show up with stable vs buggy code. Person A writes some code that just works, no one hears about it and the developer may tend to fade into the background. Person B made a lot of mistakes is always stepping in to fix problems and be the hero, and everyone forgets that they caused those issues in the first place. When it comes time for promotions, Person B is fresh in everyone’s mind due to the her…

I've been person B and got promoted to staff engineer once. I'm back to being a senior in a new org and I try to be person A, but be extra communicative of what I'm working on and how it impacts and why it's important. I find I spend more time trying to understand how to explain the value my work has to the business (screenshots, demos, docs) than trying to actually do my work. But I think it's important though, othe…

> I find I spend more time trying to understand how to explain the value my work has to the business (screenshots, demos, docs) than trying to actually do my work.

I relate to this a lot. I was a product owner for a while and made sure we could always explain the value of what was being delivered to stakeholders in language they would understand and matter to them. We spent a lot of time on preparing the demo, running it through internally, providing feedback, tweaking the wording, gathering metrics, etc. In many cases the developer was really interested in the technicality of a certain function, but we’d push them to shift focus to the value that was being delivered to the people we were presenting to. The last thing we want is for people to tune out, because someone is deep diving into code no one understands or really cares about seeing.

In my view, it doesn’t matter what you do if no one understands what you did or why it matters. If we can tell the story well, we will be valued. As a result, the team got great feedback, was highly valued, and our management felt we were miles ahead of every other team.

Fast-forward to now… I chose to move back to an engineering role. We don’t do demos anymore, despite protests from the team. No one knows what we do. We’ve seen multiple people laid off from the team and our direction is all over the place. It feels like we can never catch up, which is a far cry from the days when my boss was telling me to take a 3 month vacation, because of how far ahead we were.

This small shift in focus and opinions around things like demos has dramatically changed the team, how the work is viewed, and the team’s morale. It’s been very upsetting.

Re: Nobody gets promoted for simplicity

#49
I think of this every time I see hundreds of interfaces, all with single class implementations.

The excuse always comes back "but it's extendable", how many implementations of a ConfigurationSingleton could you have in an application?

Put the class in and if you need the interface later any refactoring tool can easily create it when you have that second class (which 99% of the time will never happen).'

This is what worries me when people say AI is great for boilerplate, I worry this is the kind of boilerplate they'll be creating because they've put "must be well designed and extendable" in their AGENTS.md.

Post reply on HN