[1/4] Software Engineering at Google (Do it like Google. Software development) (Category Engineering)
I've been reading and re-reading this cool book for about a couple of years, right from the moment it came to me from Amazon. 2022 year. I've never read it in Russian from Peter, but the translation of "Do Like Google" at least puzzles me, even though I'm used to the mind games of Russian publishers. However, I did not read the translation, not because of its quality, but because I had a book in the original edition.
The book itself was written by Titus Winters, Tom Manshrek, and Hyrum Wright, as well as many other respected people at Google. Each chapter in this book is written by a separate team of authors, often initially as a whitepaper for software development conferences. I noticed two things that prevented me from swallowing it quickly. Style and dynamics change from chapter to chapter - I can't read more than one chapter at a time Chapters are written in academic language, which means quite formal and complex.
By the way, if you want to know about some of the development processes associated with continuous delivery, but outlined in simple language, then I recommend the book “Grokking Continuous Delivery”, which was also born at Google, but written by one person and similar in style to a comic book. By the way, I'm already. told About the book "Grokking CD" before
If we go back to the original book, the main goal of the authors of the book is to share their experience and lessons that Google engineers learned from managing a huge code base and complex infrastructure. It was important for the kids not just to cram code fast, but to design it so that systems could be maintained and developed over time. Actually, the key ideas are
- **Programming over time (Evolutionary programming)**The book emphasizes that good software engineering is not just one-time programming, but the maintenance and development of software in the long run.
- **Processes and scale (processes)**The authors explain and explain the processes and practices used at Google, such as code review, testing strategies, and managing a giant monorepository. These processes are tailored to the non-functional requirements and scale of Google.
- **Tools and infrastructure (tools and infrastructure)**The authors discuss how specialized internal tools and infrastructure not only support but also improve collaboration and efficiency among engineers. (The issue of monorepo and polyrepo in large enterprises. spoke earlier)
- **Culture and collaboration(culture and cooperation)**While some sections are very specific to Google, the book also highlights the importance of fostering a culture that encourages effective cross-team collaboration and sharing of best practices. You can read a little bit about this in Google's Project Aristotle, where the kids learned what makes teams productive. (me told about this project before)
- **Practical lessons (practice)**While many practices are unique to Google’s size and resources, the book provides valuable insights into the challenges of building and maintaining large-scale software.
In general, the book talks about the principles of creating software that work on a large scale, but many of which have long become the de facto standard and which can and should be applied in technology companies regardless of their size. Conventionally, when I talk about the best engineering practices in this book and hear the answer “We’re not Google,” I wonder if you really need to be a Google employee to brush your teeth before going to bed or wash your hands before eating.
In the following posts, I will briefly discuss the content of the book by chapter: culture
#Engineering #Management #Software #Development #Processes #Leadership #SRE #DevOps