Google Documentation and Tooling for High-Quality Software Engineering
I have recently looked more into GCP and like how open Google is about their best practices. The Software Engineering at Google book is a good read (starts slow, then picks up pace; published for free here; furthermore, there was an ACM TechTalk about it in February) and the Site Reliability Engineering book is available for free here (if you enjoy it, you might also want to look at The Site Reliability Workbook as well as Building Secure and Reliable Systems both of which are Google affiliated as well, afair). For time-constrained readers there is this overview paper. On the coding side I like the advice given in the Google Style Guides which outline rules for coherent, clean codebases. There is also this great case study on modern code review [if you like these things, you might also want to read Microsoft’s equivalent]. And management-wise OKRs (Objectives and Key Results) in John Doerr’s Measure What Matters are a widely cited and effective technique.
Finally, Google seems to have an impressive list of internal tooling including
– Ariane – launch calendar
– Blaze – build tool (bazel is open source variant)
– Code Search – finding and reading code
– Critique – code review (see Chapter 19 of Software Engineering at Google)
– Dapper – large-scale distributed systems tracing infrastructure
– Forge – OSS scanning before releasing a project
– Kythe – largely language-agnostic building tool ecosystem
– Piper – source control [a good article on Piper and Citc is here]
– Rosie – large scale code cleanups and changes
– SignCLA – Manage CLAs
– TAP – Testing Automation [also see this paper]
– Tricorder – code analysis
– Vomit – Monitoring security issues with OSS packages (Vulnerability MOnIToring)
I haven’t seen many companies who support ensuring code quality that well or who hide the complexity or resource provisioning this elegantly. It is always inspiring to look beyond your own organization’s practices, even if they are excellent as well, to get to know more approaches and alternative engineering cultures. Google is certainly one of the most sophisticated companies to look at in this respect – especially in terms of publications, tooling and techniques I have a lot of respect for their software engineering culture.
Leave a Reply
Want to join the discussion?Feel free to contribute!