Hacker News new | ask | show | jobs
by mamurphy 2127 days ago
My armchair thought: what if the CEO said "wow, Yegge is right, we've gotten really off trail here. you need to show leadership in maintaining a 3+ year old system at Google for promotions?" Could that happen and would it work?
3 comments

The promotion system isn't the issue, the promotion system was the issue 10 years ago. For the last 10 years Google has been hiring and promoting and keeping people who prioritize shiny new things more than maintaining old things.

If you start rewarding maintaining old things you aren't going to suddenly get what you want, you're just going to lose a tonne of people because they don't want to do what you're telling them and you won't be able to hire good people with your priorities because no one is going to believe they can have a good career at Google by prioritizing stability and long term support. It's all downstream of culture, and culture change is very difficult.

Of course if you do buy into this idea that this is the issue, then GCP has already lost. It would be years before they could make a dent in that culture, and more years after that for external customers to know and trust Google's new culture. By that time there's going to be a dominant player anyway. So maybe actually it's best to stick with the current culture - try and win on your strengths than try to fix your defficiencies.

It might be even deeper than that. I don't know if it's representative, the few Googlers I talked to were there only for the money. Their view of the company was actually quite negative.

Keeping backward-compatibility requires people that care. That have enough pride in their work to counter-balance the grind.

the few Googlers I talked to were there only for the money. Their view of the company was actually quite negative.

This is true for most people working for large multinational corporations. Good things can still be developed without passion.

Seems like this is probably true for the vast majority of people. I don't know why we circle jerk on passion and it's not very healthy. Sure I love to write code and most days I don't hate my job, but if I didn't need the money I'd rather write code for myself or open source projects, or do other things.

There's nothing wrong with that, and when I'm at work, I do my best to do a good job and make reliable, maintainable systems. Those two things aren't in conflict.

Obviously having people that care about the work they do is a positive thing, but there are plenty of people in plenty of industries managing to do a good job despite only being in it for the money.

It might not be a good business decision for Google, but surely if they create enough positions that are solely focussed on the boring stuff but are paid better to make up for it, there is a price point at which they'd get enough interested people.

The fact that most people are there mostly for the money (which I'm pretty sure is the case) actually works in their favor if they wanted to prioritize maintenance more. Currently people don't do it because they're not rewarded for it, not because they don't care. It's actually far easier to steer people towards certain behaviors if you have lots of money and all you need to do is give more or fewer RSUs or bonus $$s.
And that's assuming people cannot find satisfaction in maintaining things. Personally I do find it satisfying to be "polishing" the same software for a long time. Iron out bugs, make performance improvements here and there, update to newer frameworks/APIs. Code is like a living thing and keeping it alive can be very rewarding work.
That would be a career suicide to become a support engineer like this. 4 years later, when his stocks dry out, he'd have to switch the company and he'd need to tell a convincing story why the new company should pay him the new market rate. And "I supported legacy code" is not such a story. There's always an option to go to Microsoft and support legacy stuff for life, but beware that MS pays peanuts (relatively speaking) and with the MS pay you'd be priced out of the housing market.
If you have an understanding of the product, it is not difficult to come up with a convincing story.

MS pay is actually competitive for external hires, although internal raises aren't usually very high.

To show that you deserve whatever pay you need to show impact and complexity. I don't think you would have a problem showing either when talking about maintaining Google scale products...
Now we are talking. The thing is, only few work on those big projects. The rest are doing god knows what and have to jump ships often. If your resume says you spent 5 years maintaining a smallish noname project, your career is at risk. I don't believe that Google keeps all its 100k employees busy with complex and high impact projects.
Periodically I'm jealous of googlers who try new stuff. Our company started ~1975 and comes with a good bit of crappy legacy code that as good business and customer driven people we maintain while we deprecate and replace components. At times it's boring, an operational pain in the butt, and frustrating. I'm working on my second major deprecate and replace project now. But when I'm done I'm gonna move to green fields. We sometimes are too conservative.
If they're in it for the money then better maintenance and support of projects should be easily solved with a few paychecks.
Maybe... Just maybe they need to let those "shiny things" engineers leave if they don't like keeping things running and continually improving them after v1.0. If you only hire people who get bored with a project after a year or egotists who want to start from a green field on every single project, then this is the effect it will have on your products.

I think that's only part of it though. I think that the only way a company can let products wither for years without a single new feature or improvement is if they don't have a product manager to represent the users, and bring a vision to the engineering team.

> For the last 10 years Google has been hiring and promoting and keeping people who prioritize shiny new things more than maintaining old things.

This is the same reason why it is near impossible to reform a police department. It would take firing everyone and starting over.

> you're just going to lose a tonne of people because they don't want to do what you're telling them and you won't be able to hire good people with your priorities because no one is going to believe they can have a good career at Google by prioritizing stability and long term support

I don't follow. Wouldn't ridding Google of its reputation for inadequate maintenance, make it a more prestigious employer? Its reputation for paying well wouldn't change. How would this lead to an exodus?

Not among potential employees I would guess.

Obviously generalizing here, but most engineers (especially fresh graduates) would rather work on a new thing than do maintenance, if given the choice. Google offers a pretty good value proposition: Lots of money and you get to work at new exiting projects and if you don‘t like it you can change to something you like. There‘s obviously more nuance to this, but that seems like a pretty good deal for many people.

Reputation is a lagging indicator. You have to deal with the fact you're trying to recruit people who care about backwards compatibility into a company with a strong reputation for not caring about that. You're going to have the bad reputation long after the underlying problem is fixed.
Culture changes real quickly with the right leadership at the top. Bezos and his "everything as a service" mandate, it didn't take long to implement and worked just fine. What you need is empowered leadership and the willingness to take a short term pain for a long term gain, that thing that Yahoo couldn't do and ended up dying of.
> The promotion system isn't the issue, the promotion system was the issue 10 years ago. For the last 10 years Google has been hiring and promoting and keeping people who prioritize shiny new things more than maintaining old things.

Isn't that inherent to their interview process?

Yes, but there might be other downsides... Suddenly every developer turns into 'maintenance man' just refactoring existing code to make it neater without adding much.
The solution to this is more qualitative performance evaluations. People are really good at gaming quantitative systems, so once it becomes a rule that more releases == more promotions, people will prioritize that over actual value creation. Same for if maintenance work becomes the metric.

You need the people evaluating performance to really understand the work, and make informed, discretionary decisions about who to promote to maximize real value creation.

> You need the people evaluating performance to really understand the work, and make informed, discretionary decisions about who to promote to maximize real value creation.

I agree but for everyone working at / running a company without a money printing machine it is worth noting that this is really expensive. You need to take someone that’s a good engineer—-one with judgment and a modicum of people skills—-and give them mostly thankless, stressful work.

Increasing performance and cutting down infrastructure costs?

Looks like someone deserves a bonus

Those are seen as launches at Google and are rewarded.
Direct OKRs for stability. "99.9% of customers unaffected by any change this quarter"