I’ve always been curious about this: At every company I’ve ever worked, there’s never enough time to code everything “right”. By “right” I mean, the whole codebase has great abstractions, every corner case is handled, great error handling, etc... Is google the exception to this? Is everything high quality? Or do Googlers still look at their codebases and think “hmm thats kinda hacky”. And as a follow up: what happens when there’s a deadline crunch at Google? Does code quality take a hit or is every project extended until “Google” quality code is reached.
Yes, Google is a big exception to this. There is an unbelievable emphasis on quality in terms of readability, performance, using the right data structures and algorithms, reusing existing code, testing, debuggability, etc. It is not unreasonable to be asked to reimplement your feature in another way because it is cleaner or makes the design more extensible. You also write 50 lines of feature code and support it with 200 lines of unit and integration tests It is also not uncommon for others to rewrite your code two years later to conform to new coding guidelines, replace deprecated components or for any other reason and it is a very highly valued contribution that can get you promoted if done on a large scale. This affects feature velocity and puts a lot of toil on devs but once you get used to it you produce 10x better code than what you would normally do outside Google
Just to highlight the readability bit too: code goes through both owner approval (eg someone on your team) AND readability approval* (could be the same person if qualified) So you can have your code approved in code review, and then a separate readability approver that asks for substantial readability modification * (unless you yourself have readability qualification in the language you are submitting for)
This is awesome. Do you know if similar rigor applies across other disciplines at the company? To almost always be allowed time to deliver clean solutions sounds amazing
This was a shock for me when I moved from amazon to google. The way it works is Google misses deadlines by 1-2 quarters. while at amazon you are handed pip if you don’t deliver on time (or explain why you missed).
Can Cloud afford to be so stringent?
I am in Cloud and the emphasis on quality is not less than other parts of Google. I came from Microsoft. Feature velocity at Azure is miles better and code quality at GCP is way better. In the end Azure is winning, at least for now
In general code is good quality. Caveat: it is over-engineered and over-complex usually. But it is well-tested (eg if you submit code, you also submit tests for that code at the same time) Deadlines? Those get missed very often, unless they coincide with something publicly announced (eg stadia launch, GML event, etc)