
Software Engineering at Google Lessons Learned from Programming Over Time
Reviews

> The Software Engineering at Google book (“SWE Book”) is not about programming, per se, but about the engineering practices utilized at Google to make their codebase sustainable and healthy. (These practices are paramount for common infrastructural code such as Abseil.) This is a fantastic book covering large software engineering systems and tools to support software engineers. The contents are great references and research starting points for folks interested in developer platform / developer effectiveness at a large enterprise. The book is also freely available online https://abseil.io/resources/swe-book. Thanks!

It was an interesting read about how software engineering works at Google. There are some things that are particular to Google itself (problems and scale) but most of the topics mentioned I already saw as a process or best practice working in the industry. It's an interesting resource for newcomers and people who didn't have the chance to work in companies that are solving difficult technical and scalability problems. I liked that it's a fast-paced book. Divided into topics and easy to digest. Some of the topics, like LSC, are very Google's (scalability) problem, and maybe it's not that useful for most of the companies in the world. But the overview on culture, tools, and processes were all interesting to me.

Following the success of the SRE book series, an inside look on the other side of the looking-glass. Google is unique and few companies have to address engineering problems at Google scale. All programmers, however, will learn valuable lessons acquired during two decades where Google built some of the most innovative applications, and the underlying platform to make them come to life. The book reintroduces the term engineering with a new definition: programming integrated over time, or how to make software programs stand the test of time. You will find in this book how tens of thousands of engineers collaborates across the same codebase, in an quite unusual way. The first part is relatively short and focuses on Google engineering culture. The second part is about processes and presents common software development practices, like automated testing. I found few things that are not already discussed elsewhere in the literature, even if Google’s scale presents new challenges. These chapters are extremely well written and clarify many misunderstood points like the usage of test doubles. I hope that having Google printed on the book cover helps those practices spread even further. The last part is about internal tools used by Googlers. This is the largest part, and also the part I found the most interesting. The chapter on dependency management is really excellent and does a remarkable job in introducing their monorepo approach. More diagrams, screenshots, or pictures (like a Testing on the Toilet flyer) would have been appreciated (especially concerning the chapters about CI/CD and large-scale changes). It’s a large book with almost no code, as it has more to do with engineering than programming. It’s a book about Google. You may not want to apply the same techniques in your organization, and that’s totally fine. But you cannot ignore fresh perspectives on our discipline to help us deliver even better software. I liked this book and I would like other large-scale companies to put on paper their practices too.

Must read for any Software engineer. It doesn't matter if you work for a small or big company, there are many valuable lessons and tips&tricks to make you a better Software Engineer.











Highlights

Over a span of a decade or more, most program dependencies, whether implicit or explicit, will likely change. This recognition is at the root of our distinction between software engineering and programming