Many commenters here are rightly pointing out Google’s hypocrisy in actually following the principles in this article. Fair enough. But others are throwing the baby out with the bathwater: it’s a little silly to read comment after comment saying that the advice in TFA must be bad because Google does dumb/bad stuff on the regular. Companies aren’t homogenous. Even misguided companies may employ people who can teach others important things.<p>Boeing is a perfect example of this. I would <i>absolutely</i> read an article proposing principles of engineering reliability from a Boeing eng/QA greybeard. Even as the rest of the company spiraled due to horrible leadership and management practices, many people in engineering and quality control did their damnedest to keep those failures from causing even <i>more</i> harm and loss of life. Those people probably have very valuable lessons to share about how to maintain what quality you can in a deeply hostile environment.
While the text touches on many points I would immediately sign, the paragraph starting with "Because engineers are human beings who often form an emotional attachment to their creations, ..." is really out of place.<p>The cause of complexity is not emotional attachment, these are decisions being made. The decision to add feature after feature and punt on maintenance for example is something that has little to do with emotions. There is a lot of agency that engineers, SWE and SRE alike have in shaping how things are. However there can be good reasons to abandon simplicity. The real trouble here is not psychology but that as a profession we are really bad at measuring and estimating the effective cost of maintenance. Part of that is considering measures to improve simplicity and maintainability as cost that comes without gain and somehow less important than features, and then just accept giant rewrite a few years later. A continuous portion of upkeep would likely be more economical and real engineering has always included an aspect of economy - cost vs benefit.<p>IMHO the loaded accusation of emotional attachment might be rooted in an "us vs them" attitude (SRE vs software engineering) that should have no place in a sober discussion on the value of simplicity and it diminishes an otherwise great text.
Just remember that what google writes in these kind of things is not universal. It's written from their very unusual circumstances. You can certainly pick nuggets that are more universal than others but, like in many other instances, too much unnecessary work is spent trying to imitate Google and others when it's not really needed. And no, you won't turn into Google over night, you will have time to adapt if fortune hits you. Some things are not even necessarily good advice at all, but rather a product of incentives within Google (and perhaps most tech corps) rewarding the aesthetics of "innovation".
At the last “real” job I tried to help implement this as part of and later the manager of the ops team. It’s a great start, but in that case management wanted the idea of devops/sre but didn’t actually support it, and it really was a shit show. If you have a bad CTO and leadership on the board level, no amount of re-tooling will paper over their lack of support for the real principles.
Glad to see those valuable principles written, even if it seems we are heading in the complete opposite. At least we can try to apply them on our side business.<p>These were also true in the early ages of aviation:<p>“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.”<p>― Antoine de Saint-Exupéry
> Source control systems make it easy to reverse changes<p>I have not observed this to be the case. After a few revisions there are so much changes that the code cannot be reversed without loosing a lot. A mech aims to cut out the soon-to-be-dead code like a flag is better. But perhaps maybe I’m doing something wrong.
A lot of preaching but bears little resemblance to what Google is actually doing in reality. IMHO those who actually understand what "simplicity" means in software are only those who have tried to do anything in highly-resource-constrained environments.
"Why don’t we gate the code with a flag instead of deleting it?" These are all terrible suggestions. Source control systems make it easy to reverse changes, whereas hundreds of lines of commented code create distractions and confusion."<p>In most cases to delete code would be a good idea, but to say that source control systems make reverting easier. After a few months most developers will have forgot about those lines and at times uncommenting code & explaining it explicitly might be a better way to preserve knowledge then to rely on digging through GIT.
Some more recent discussion:<p><a href="https://news.ycombinator.com/item?id=39580346">https://news.ycombinator.com/item?id=39580346</a>
See also the Simplicity chapter in the followup Google SRE Workbook: <a href="https://sre.google/workbook/simplicity/" rel="nofollow">https://sre.google/workbook/simplicity/</a>
This reads for me as a reflection of Google politics/org structure. The SRE org positioning itself as the guardian of system design vs. the SWEs who are agents of complexity. Doesn't feel healthy to me. The principles are fine but it's the SWEs that should be talking and applying them because they are "closer" to the decisions.
Maybe an unpopular opinion, but this type of content is useless and serves no other purpose than feeding the already bloated Google cargo-culting machine.
Does this include instructions on accidentally deleting a customer's account? Because that's what Google does. I don't think I want to take any advice from Google on anything.
SRE has got to be one of the organisations that have done the most damage in the big G. They were given a license to mandate things based on philosophical musings backed with no science, and they can decide what's best and should be done without any data, just based on feels. They also have a culture of misanthropy, patronization and contempt towards devs. From what I can tell anyway.
Google’s “best practices” lead them to deleting an entire customer’s $135 billion pension account [1]. I’m surprised anyone is still reading anything Google writes.<p>1. <a href="https://arstechnica.com/gadgets/2024/05/google-cloud-accidentally-nukes-customer-account-causes-two-weeks-of-downtime/" rel="nofollow">https://arstechnica.com/gadgets/2024/05/google-cloud-acciden...</a>