Software engineering at Google : lessons learned from programming over time /
Winters, Titus,author.
Manshreck, Tom,author.
Wright, Hyrum,author.
The approach to and understanding of software engineering at Google is unlike any other company. With this book, you'll get a candid and insightful look at how software is constructed and maintained by some of the world's leading practitioners. Titus Winters, Tom Manshreck, and Hyrum K. Wright, software engineers and a technical writer at Google, reframe how software engineering is practiced and taught: from an emphasis on programming to an emphasis on software engineering, which roughly translates to programming over time. You'll learn: Fundamental differences between software engineering and programming How an organization effectively manages a living codebase and efficiently responds to inevitable change Why culture (and recognizing it) is important, and how processes, practices, and tools come into play.
Includes bibliographical references and index.
Part 1. Thesis.  What is software engineering? -- Part 2. Culture.  How to work well on teams -- Knowledge sharing -- Engineering for equity -- How to lead a team -- Leading at scale -- Measuring engineering productivity -- Part 3. Processes.  Style guides and rules -- Code review -- Documentation -- Testing overview -- Unit testing -- Test doubles -- Larger testing -- Deprecation -- Part 4. Tools.  Version control and branch management -- Code search -- Build systems and build philosophy -- Critique: Google's code review tool -- Static analysis -- Dependency management -- Large-scale changes -- Continuous integration -- Continuous delivery -- Compute as a service -- Part 5. Conclusion.
The approach to and understanding of software engineering at Google is unlike any other company. With this book, you'll get a candid and insightful look at how software is constructed and maintained by some of the world's leading practitioners. Titus Winters, Tom Manshreck, and Hyrum K. Wright, software engineers and a technical writer at Google, reframe how software engineering is practiced and taught: from an emphasis on programming to an emphasis on software engineering, which roughly translates to programming over time. You'll learn: Fundamental differences between software engineering and programming How an organization effectively manages a living codebase and efficiently responds to inevitable change Why culture (and recognizing it) is important, and how processes, practices, and tools come into play.
Google (Firm)
Software engineering
Computer software