

Buy anything from 5,000+ international stores. One checkout price. No surprise fees. Join 2M+ shoppers on Desertcart.
Desertcart purchases this item on your behalf and handles shipping, customs, and support to Indonesia.
Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering. How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the worldรข??s leading practitioners construct and maintain software. This book covers Googleรข??s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization. Youรข??ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code: How time affects the sustainability of software and how to make your code resilient over time How scale affects the viability of software practices within an engineering organization What trade-offs a typical engineer needs to make when evaluating design and development decisions Review: Chesterton's Fence, Beyoncรฉ Rule and 1 billion line Change List - How Google does it at scale - Google has open sourced "how" they do everything. This book is about โhow Google runs codeโ. Systems engineers should pair this book with โSite Reliability Engineeringโ (from Google) on โhow Google runs infraโ. Senior org leaders should minimally read the first part (Culture) pairing with โWork Rulesโ (Laszlo bock on โhow Google leadsโ). Security Engineers should buy the very recent โBuilding Secure and Reliable Systemsโ on โhow Google implements defenseโ. Executives should read โHow Google Worksโ by Eric Schmidt on - โhow Google works โ! First, It is admirable how the company wants to spread its hard-earned wisdom. Thank you! Many places do many things exceptionally well - but the earnestness to coach and educate others is an extreme rarity - a version of Survivorship Bias - among the โBig Techsโ. Collectively, these five books, โTop Nโ Google Tech Talks (check YouTube) and - depending on your role - coding best practices (check their site) are collectively a combination of top notch combined technical and business education in itself. Very rarely I give a 5-star rating to a technical book, but SEaG is completely worth the two weeks I immersed myself into learning Culture, Processes and Tools of Google Software Teams. The writers are deeply knowledgable, passionate about their crafts and offer insight after insight into topics ranging from human psychology to the flaws of over-embracing mock testing. Not targeting on algorithm, language, tools or libraries, it focuses on โSoftware Engineeringโ as a system, i.e., stuff that is not taught at any school. The book disambiguates โprogrammingโ from โengineeringโ, and walks through the hardest engineering challenge - how to scale. It also offers a treasure of insights and ideas from how Google made a billion lines of code change at one time, or how its automated tests could successfully process 50,000 change requests a day, or how Google Production System is perhaps one of the best machines humans ever engineered. Even if you are working nowhere near Google scale, the book covers a lot of fundamentals, especially on how to sustainably develop software and make objective trade-offs while doing so. I would very highly recommend SEaG to any engineering leader trying to improve her team's game. For developers, the four extensive chapters on testing should alone be worth the entry price. Notes from the "Culture" - first of three - part of the book (most of these should be organization agnostic) - --------------------------------------------------------------------------------------------------------------------------- Software Engineering is โProgramming integrated over timeโ. From a reverse lens, code thus becomes a derivative of Software Engineering. A project is sustainable if for the expected life span of the software, you are capable of reactive to valuable changes for either business or technical reasons. The higher the stakes, the more imperfect the trade-off value metrics. Your job as a leader is to aim for sustainability and managing scaling costs for the org, the product and the development workflow. Hyperbolic Discounting - when we start coding, our implicit life-span assignment to the code is often in hours or days. As the late 90s joke went - WORA - Write Once, Run Away! Hyrumโs Law: With a sufficient number of users of an API, all observable behavior of your system will depend on a random person doing a random thing. Conceptually similar to entropy - your system will inevitably progress to a high degree of disorder, chaos and instability. I.e., all abstractions are leaky. Two spectrums of code - one way is hacky and clever, another is clean and maintainable. The most important decision is to ensure which way the codebase leans. It is programming if โcleverโ is a complement, and software engineering if โcleverโ is an accusation! Google's SRE book talks about the complexity of managing one of the most complex machines created by humankind - Google Production system. This book focuses on the organization scale and processes to keep that machine running over time. Scaling an org means sublinear scaling with regard to human interactions. The Beyoncรฉ rule: โIf you liked it, you should have put a CI test on itโ. i.e., if an untested change caused an incident, it is not the changeโs fault. An average Software Engineer produces a constant number of lines of code per unit time. Treat whiteboard markers as precious goods. Well functioning teams use them a lot! 60-70% developers build locally. But Google built its own distributed build system. Ultimately, even the distributed build gets bloated - Jevonโs Paradox -- consumption of a resource increase as a response to greater efficiency in its use. Humans are mostly a collection of intermittent bugs. Nobody likes to be criticized, especially for things that arenโt finished. DevOps in one sentence: Get feedback as early as possible, run tests as early as possible, think about security & production environments as early as possible - also known as โleft shiftingโ. Many eyes make all bugs shallow. Make reviews mandatory. Three Pillars of Social Interaction - Humility, Respect, Trust. Relationships always outlast projects. You have two paths to choose from - one, learn, adapt and use the system; two, fight it steadily, as a small undeclared war, for the whole of your life. Good Postmortem output - Summary, Timeline, Proximate Cause, Impact, Containment (Y/N), Resolved (Y/N) and Lessons Learned. Psychological safety is the biggest thing in leading teams - take risks and learn to fail occasionally. Software engineering is multi person development of multi-version programs, Understand Context before Changing things - Chestertonโs Fence is a good mental model. Google tends toward email-based workflows by default. Being an expert and being kind are not mutually exclusive. No brilliant jerks! Testing on the toilet (tips) and Learning on the Loo (productivity) are single-page newsletters inside toilet stalls. 1-2% of Google engineers are readability (Code Review tool) reviewers. They have demonstrated capability to consistently write clear, idiomatic and maintainable code for a given language. Code is read far more than it is written. Readability (review tool at Google) is high cost - trade-off of increased short-term review latency and upfront costs for long-term payoffs of higher-quality code. Knowledge is the most important, though intangible, capital for software engineering org. At a systemic level, encourage and reward those who take time to teach and broaden their expertise beyond (a) themselves, (b) team, and (c) organizations. On diversity - Bias is the default; Donโt build for everyone. Build with everyone; Donโt assume equity; measure equity throughout your systems. A good reason to become tech lead or manager is to scale yourself. First rule of management? โAbove all, resist the urge to manage.โ Cure for โmanagement diseaseโ is a liberal application of โservant leadershipโ, assume youโre the butler. Traditional managers worry about how to get things done, whereas great managers worry about what things get done (and trust their team to figure out how to do it). Being manager - โsometimes you get to be the tooth fairy, other times you have to be the dentistโ. Managers, donโt try to be everyoneโs friend. Hiring: A hires A, while B hires C players. Engineers develop an excellent sense of skepticism and cynicism but this is often a liability when leading a team. You would do well to be less vocally skeptical while โstill letting your team know youโre aware of the intricacies and obstacles involved in your workโ. As a leader - Track Happiness - best leaders are amateur psychologists; Let your team know when theyโre doing well; Itโs easy to say โyesโ to something thatโs easy to undo; Focus on intrinsic motivation through autonomy, mastery and purpose; Delegation is really difficult to learn as it goes against all our instincts for efficiency and improvement. Three โalwaysโ of leadership - Always be Deciding, Always be Leaving, Always be Scaling. โCode Yellowโ is Googleโs term for โemergency hackathon to fix a critical problemโ. Good Management = 95% observation and listening + 5% making critical adjustments in just the right place. To scale, aim to be in โuncomfortably excitingโ space. All your means of communication - email, chat, meetings - could be a Denial-of-Service attack against your time and attention. You are the โfinallyโ clause in a long list of code blocks! In pure reactive mode, you spend every moment of your life on urgent things, but almost none of it is important. Mapping a path through the forest is incredibly important but rarely ever urgent. Your brain operates in natural 90-minute cycles. Take breaks! Give yourself permission to take a mental health day. Everyone has a goal to be โdata drivenโ, but we often fall to the trap of โanecdataโ. Google uses GSM (Goals/Signals/Metrics) framework to select metrics to measure engineering productivity. QUANTS - 5 components of productivity Quality of code; Attention from engineers; Intellectual Complexity; Tempo (how quickly can engineers accomplish something) and velocity (how fast they can push their release out); Satisfaction Quantitative metrics are useful because they give you power and scale. However, they donโt provide any context or narrative. When quantitative and qualitative metrics disagree, it is because the former do not capture the expected result! Let go of the idea of measuring individuals and embrace measuring the aggregate. Before measuring productivity, ask whether the result is actionable. If not, it is not worth measuring. Review: Recommended Reading for any Software Engineer - Software Engineering at Google starts with the premise that "software engineering is programming integrated over time," but it is not a programming book. It leaves the syntax and semantics of programming to other books and focuses on the culture, process, and tools that Google uses to support its software engineering activities. Despite being written by over a dozen different contributors, who work at Google, the book itself is carefully edited to share a consistent message. Perhaps this is a reflection of the software engineering processes used at Google to enforce consistency within Google's codebase. The first section on culture covers topics ranging from how to work on teams, share information, lead teams, and measure productivity. It provides a useful perspective on how Google's culture has adapted over the past two decades as the company grew from being a startup with a handful of people to having over a hundred thousand employees. These topics don't typically show up in a software engineering curriculum, but they are very valuable to understand, particularly for engineers and managers at large companies. The second section covers processes that Google has developed over time to improve productivity of a large number of people working together on a large and long-lived codebase. The topics include style guides, code review, documentation, testing, and deprecation. Two of the main lessons are the value that Google gets from consistency in its code (recognizing that code is typically read more than times than it is written), and the importance of effective automated testing that allows engineers to modify code that they did not write while remaining confident that the code still works correctly. Google has been at the forefront of promoting developer written tests (rather than relying on separate QA or validation teams), and many of the tips and techniques described for writing and maintaining effective tests are quite insightful. The final section describes the tools that Google uses to support its software engineering activities. The categories of tools are ones that are useful for any software engineering organization, but the specific details in this chapter are harder to generalize than other topics in the book. Google maintains a single source repository (the monorepo) where all its code is stored and it has built custom tools for version control, code search, build processes, code review, static analysis, dependency management, continuous integration, and compute as a service. Reading the specific details of how and why Google developed these tools is insightful, but many of the tools are tightly integrated in Google's environment and the techniques described in the chapter may not be generally applicable to other organizations. One thing I felt was missing from the book was a discussion of how Google manages its processes to work with open sources projects and share code with people outside of Google. The book focused on code that is developed internally at Google rather than projects that are developed in collaboration with an open source community (i.e Linux, LLVM). But open source is becoming an increasingly important part of software engineering and Google engineers use and contribute to many open source projects. It would be interesting to know how they collaborate with outsiders who lack access to Google's monorepo and associated development tools. Despite being over 500 pages long, Software Engineering at Google is relatively quick reading and most of the chapters are self-contained and could be read in any order. The authors presented information about software engineering that is not typically covered in university courses, and the book is recommended reading for any software engineer.



















| Best Sellers Rank | #55,393 in Books ( See Top 100 in Books ) #6 in Software Design Tools #6 in Computer Systems Analysis & Design (Books) #9 in Software Testing |
| Customer Reviews | 4.6 out of 5 stars 825 Reviews |
N**A
Chesterton's Fence, Beyoncรฉ Rule and 1 billion line Change List - How Google does it at scale
Google has open sourced "how" they do everything. This book is about โhow Google runs codeโ. Systems engineers should pair this book with โSite Reliability Engineeringโ (from Google) on โhow Google runs infraโ. Senior org leaders should minimally read the first part (Culture) pairing with โWork Rulesโ (Laszlo bock on โhow Google leadsโ). Security Engineers should buy the very recent โBuilding Secure and Reliable Systemsโ on โhow Google implements defenseโ. Executives should read โHow Google Worksโ by Eric Schmidt on - โhow Google works โ! First, It is admirable how the company wants to spread its hard-earned wisdom. Thank you! Many places do many things exceptionally well - but the earnestness to coach and educate others is an extreme rarity - a version of Survivorship Bias - among the โBig Techsโ. Collectively, these five books, โTop Nโ Google Tech Talks (check YouTube) and - depending on your role - coding best practices (check their site) are collectively a combination of top notch combined technical and business education in itself. Very rarely I give a 5-star rating to a technical book, but SEaG is completely worth the two weeks I immersed myself into learning Culture, Processes and Tools of Google Software Teams. The writers are deeply knowledgable, passionate about their crafts and offer insight after insight into topics ranging from human psychology to the flaws of over-embracing mock testing. Not targeting on algorithm, language, tools or libraries, it focuses on โSoftware Engineeringโ as a system, i.e., stuff that is not taught at any school. The book disambiguates โprogrammingโ from โengineeringโ, and walks through the hardest engineering challenge - how to scale. It also offers a treasure of insights and ideas from how Google made a billion lines of code change at one time, or how its automated tests could successfully process 50,000 change requests a day, or how Google Production System is perhaps one of the best machines humans ever engineered. Even if you are working nowhere near Google scale, the book covers a lot of fundamentals, especially on how to sustainably develop software and make objective trade-offs while doing so. I would very highly recommend SEaG to any engineering leader trying to improve her team's game. For developers, the four extensive chapters on testing should alone be worth the entry price. Notes from the "Culture" - first of three - part of the book (most of these should be organization agnostic) - --------------------------------------------------------------------------------------------------------------------------- Software Engineering is โProgramming integrated over timeโ. From a reverse lens, code thus becomes a derivative of Software Engineering. A project is sustainable if for the expected life span of the software, you are capable of reactive to valuable changes for either business or technical reasons. The higher the stakes, the more imperfect the trade-off value metrics. Your job as a leader is to aim for sustainability and managing scaling costs for the org, the product and the development workflow. Hyperbolic Discounting - when we start coding, our implicit life-span assignment to the code is often in hours or days. As the late 90s joke went - WORA - Write Once, Run Away! Hyrumโs Law: With a sufficient number of users of an API, all observable behavior of your system will depend on a random person doing a random thing. Conceptually similar to entropy - your system will inevitably progress to a high degree of disorder, chaos and instability. I.e., all abstractions are leaky. Two spectrums of code - one way is hacky and clever, another is clean and maintainable. The most important decision is to ensure which way the codebase leans. It is programming if โcleverโ is a complement, and software engineering if โcleverโ is an accusation! Google's SRE book talks about the complexity of managing one of the most complex machines created by humankind - Google Production system. This book focuses on the organization scale and processes to keep that machine running over time. Scaling an org means sublinear scaling with regard to human interactions. The Beyoncรฉ rule: โIf you liked it, you should have put a CI test on itโ. i.e., if an untested change caused an incident, it is not the changeโs fault. An average Software Engineer produces a constant number of lines of code per unit time. Treat whiteboard markers as precious goods. Well functioning teams use them a lot! 60-70% developers build locally. But Google built its own distributed build system. Ultimately, even the distributed build gets bloated - Jevonโs Paradox -- consumption of a resource increase as a response to greater efficiency in its use. Humans are mostly a collection of intermittent bugs. Nobody likes to be criticized, especially for things that arenโt finished. DevOps in one sentence: Get feedback as early as possible, run tests as early as possible, think about security & production environments as early as possible - also known as โleft shiftingโ. Many eyes make all bugs shallow. Make reviews mandatory. Three Pillars of Social Interaction - Humility, Respect, Trust. Relationships always outlast projects. You have two paths to choose from - one, learn, adapt and use the system; two, fight it steadily, as a small undeclared war, for the whole of your life. Good Postmortem output - Summary, Timeline, Proximate Cause, Impact, Containment (Y/N), Resolved (Y/N) and Lessons Learned. Psychological safety is the biggest thing in leading teams - take risks and learn to fail occasionally. Software engineering is multi person development of multi-version programs, Understand Context before Changing things - Chestertonโs Fence is a good mental model. Google tends toward email-based workflows by default. Being an expert and being kind are not mutually exclusive. No brilliant jerks! Testing on the toilet (tips) and Learning on the Loo (productivity) are single-page newsletters inside toilet stalls. 1-2% of Google engineers are readability (Code Review tool) reviewers. They have demonstrated capability to consistently write clear, idiomatic and maintainable code for a given language. Code is read far more than it is written. Readability (review tool at Google) is high cost - trade-off of increased short-term review latency and upfront costs for long-term payoffs of higher-quality code. Knowledge is the most important, though intangible, capital for software engineering org. At a systemic level, encourage and reward those who take time to teach and broaden their expertise beyond (a) themselves, (b) team, and (c) organizations. On diversity - Bias is the default; Donโt build for everyone. Build with everyone; Donโt assume equity; measure equity throughout your systems. A good reason to become tech lead or manager is to scale yourself. First rule of management? โAbove all, resist the urge to manage.โ Cure for โmanagement diseaseโ is a liberal application of โservant leadershipโ, assume youโre the butler. Traditional managers worry about how to get things done, whereas great managers worry about what things get done (and trust their team to figure out how to do it). Being manager - โsometimes you get to be the tooth fairy, other times you have to be the dentistโ. Managers, donโt try to be everyoneโs friend. Hiring: A hires A, while B hires C players. Engineers develop an excellent sense of skepticism and cynicism but this is often a liability when leading a team. You would do well to be less vocally skeptical while โstill letting your team know youโre aware of the intricacies and obstacles involved in your workโ. As a leader - Track Happiness - best leaders are amateur psychologists; Let your team know when theyโre doing well; Itโs easy to say โyesโ to something thatโs easy to undo; Focus on intrinsic motivation through autonomy, mastery and purpose; Delegation is really difficult to learn as it goes against all our instincts for efficiency and improvement. Three โalwaysโ of leadership - Always be Deciding, Always be Leaving, Always be Scaling. โCode Yellowโ is Googleโs term for โemergency hackathon to fix a critical problemโ. Good Management = 95% observation and listening + 5% making critical adjustments in just the right place. To scale, aim to be in โuncomfortably excitingโ space. All your means of communication - email, chat, meetings - could be a Denial-of-Service attack against your time and attention. You are the โfinallyโ clause in a long list of code blocks! In pure reactive mode, you spend every moment of your life on urgent things, but almost none of it is important. Mapping a path through the forest is incredibly important but rarely ever urgent. Your brain operates in natural 90-minute cycles. Take breaks! Give yourself permission to take a mental health day. Everyone has a goal to be โdata drivenโ, but we often fall to the trap of โanecdataโ. Google uses GSM (Goals/Signals/Metrics) framework to select metrics to measure engineering productivity. QUANTS - 5 components of productivity Quality of code; Attention from engineers; Intellectual Complexity; Tempo (how quickly can engineers accomplish something) and velocity (how fast they can push their release out); Satisfaction Quantitative metrics are useful because they give you power and scale. However, they donโt provide any context or narrative. When quantitative and qualitative metrics disagree, it is because the former do not capture the expected result! Let go of the idea of measuring individuals and embrace measuring the aggregate. Before measuring productivity, ask whether the result is actionable. If not, it is not worth measuring.
G**N
Recommended Reading for any Software Engineer
Software Engineering at Google starts with the premise that "software engineering is programming integrated over time," but it is not a programming book. It leaves the syntax and semantics of programming to other books and focuses on the culture, process, and tools that Google uses to support its software engineering activities. Despite being written by over a dozen different contributors, who work at Google, the book itself is carefully edited to share a consistent message. Perhaps this is a reflection of the software engineering processes used at Google to enforce consistency within Google's codebase. The first section on culture covers topics ranging from how to work on teams, share information, lead teams, and measure productivity. It provides a useful perspective on how Google's culture has adapted over the past two decades as the company grew from being a startup with a handful of people to having over a hundred thousand employees. These topics don't typically show up in a software engineering curriculum, but they are very valuable to understand, particularly for engineers and managers at large companies. The second section covers processes that Google has developed over time to improve productivity of a large number of people working together on a large and long-lived codebase. The topics include style guides, code review, documentation, testing, and deprecation. Two of the main lessons are the value that Google gets from consistency in its code (recognizing that code is typically read more than times than it is written), and the importance of effective automated testing that allows engineers to modify code that they did not write while remaining confident that the code still works correctly. Google has been at the forefront of promoting developer written tests (rather than relying on separate QA or validation teams), and many of the tips and techniques described for writing and maintaining effective tests are quite insightful. The final section describes the tools that Google uses to support its software engineering activities. The categories of tools are ones that are useful for any software engineering organization, but the specific details in this chapter are harder to generalize than other topics in the book. Google maintains a single source repository (the monorepo) where all its code is stored and it has built custom tools for version control, code search, build processes, code review, static analysis, dependency management, continuous integration, and compute as a service. Reading the specific details of how and why Google developed these tools is insightful, but many of the tools are tightly integrated in Google's environment and the techniques described in the chapter may not be generally applicable to other organizations. One thing I felt was missing from the book was a discussion of how Google manages its processes to work with open sources projects and share code with people outside of Google. The book focused on code that is developed internally at Google rather than projects that are developed in collaboration with an open source community (i.e Linux, LLVM). But open source is becoming an increasingly important part of software engineering and Google engineers use and contribute to many open source projects. It would be interesting to know how they collaborate with outsiders who lack access to Google's monorepo and associated development tools. Despite being over 500 pages long, Software Engineering at Google is relatively quick reading and most of the chapters are self-contained and could be read in any order. The authors presented information about software engineering that is not typically covered in university courses, and the book is recommended reading for any software engineer.
R**A
General good notions with emphasis on durability and some actionable advice
If you already are an experienced Software Engineer, then you probably have a pretty good notion of what you'll find in this book from the cover. Many of the topics are off the beaten path but the good bits are found in the details, and there's a good amount of specific advice and references to tools to go with it. Throughout the book the authors emphasize the benefits of having a long-term perspective when writing code, documentation and processes. That, I think, applies to many organizations regardless of size. Many developers nowadays have access to may tools that were largely inaccessible outside of large organizations a decade and a half ago like GitHub (which provides a PR interface for example, as opposed to just being a bare-bones, pure-Git remote repo) and CI. This book covers other practices that I think are maturing and should become more widely accessible in the coming years. The only criticism I have is that I believe the book could have been a bit shorter had the editors elaborated less on some parts that read like boilerplate.
S**N
Fresh words for an evolving discipline
Relatively little is known about how to organize/manage software projects so that they come to a successful, on-time resolution that lasts the test of experience. This is the field of software engineering, and over the last two decades, Google has mastered this art. They share their hard-wrought wisdom in this book. Many developers, like me, wish they could undertake several internships at leading companies like Apple, Google, Microsoft, or Facebook. They could learn the tricks of the trade from what made these entities so successful. Concerning Google, software developers now can just consult this book. It provides an in-depth look into the state of the art at this engineering company. Each chapter is written by company experts and covers 25 timely topics ranging from code testing to dependency management, from continual integration to cloud services. Google is one of only a few companies that have broached these issues in depth ever. They do not claim that their answers will solve all problems for all time. Rather, they encourage readers to learn from their well-reasoned thoughts and understand their own problems in that light. This book is relevant to the start-up as well as the corporate developer. For us computer programmers, this book is fodder and inspiration for continually producing better software. I find the quality of writing particularly fresh. Instead of hiding behind older and well-established verbiage, they provide newly thought-out terminology in newly explained reasonings. For a technical book, this work is extremely engaging. The reader rarely if ever gets the sense that the authors are merely regurgitating rehashed theory. This book is particularly relevant to software developers and managers of software efforts. It gives a lingua franca to the software development effort and provides abstracted concepts that will help companies move development forward. All the way to the end, I stayed engaged, and I predict many others will, too. Kudos to Google for giving back to the industry in this way!
G**N
Itโs a nice book
Amazing book
V**L
Good read on software engineering v/s programming
I like the perspective of this book - it's meant to teach you to think about software engineer (in all aspects, technical & human) v/s software programming. It is not meant to teach you how software engineering should be done, but rather it helps you by making you aware of the difference between programming & engineering. It also helps put you in the mindset to think about how to engineer your software development effort given the scale & capacity of your organization. I earnestly recommend it to all as a starting point for learning how to think about software engineering at any scale - be it as a lone developer of a scientific application or as part of a very large enterprise.
K**B
Fantastic
A really great book. Good background, insightful and a great way for you to get started in software engineer. Not the deepest book, but covers all that you need to know and explains things well. Buckle up and spread out your reading cause this takes a while to soak it all im and process it while getting through its many pages. Worth a buy and feel more prepared and informed then before this purchase! Great book!
I**A
The URL references should be aggregated at the end of each chapter
Great book, but it would have been nice to see all the URL references aggregated at the end of each chapter. See, when I read the book, I don't want to interrupt my reading flow just to distract myself and open the referenced URL, I want to do that later, once I finish reading the chapter. But because they are not duplicated at the end of the chapter, I end up just skipping them completely.
P**.
Impressive
This is a really good book with many impressive details on how to work in large teams and large codebases. Good read for every kind of programmer: SW, Engineer, Architect, Analyst, Data Scientist, ...
J**S
Fascinating read
Excellent overview of the very many facets of Google's approach to software engineering at scale and over time. Not a programming / coding book at all (although there are small code examples throughout), instead it covers approaches to such areas as testing, working in and leading teams, build processes and - most interesting of all in my opinion - the metrics used to constantly improve the process.
R**G
Long-winded, quite repetitive, some helpful nuggets
The sections on leadership and culture are quite good. One surprising thing is how rigid google is about some aspects like code style, reviews, and build systems. They take the mantra "creativity loves constraints" quite seriously. I doubt many people can slog through the whole book, but if you've run out of coding books, this software engineering angle could offer a new flavour.
A**V
instructive, applied, complete.
Detailed and very instructive. Very constructive and applied feedback on software engineering in large scale environment. Applied to Google but can be transposed to many other environments. Concentrate on many aspect of software engineering including life cycle, tooling, human aspect. Strongly recommend as an overview of software engineering based on concrete experiences more than theorical concepts. Should be a must read for many executive doing software project management.
W**L
Very good book
Must read if you want to work at Google
Trustpilot
1 month ago
1 month ago