List Price: $59.99 Details

The List Price is the suggested retail price of a new product as provided by a manufacturer, supplier, or seller. Except for books, Amazon will display a List Price if the product was purchased by customers on Amazon or offered by other retailers at or above the List Price in at least the past 90 days. List prices may not necessarily reflect the product's prevailing market price.
Learn more
Save: $27.00 (45%)
FREE Returns
Return this item for free
  • Free returns are available for the shipping address you chose. You can return the item for any reason in new and unused condition: no shipping charges
  • Learn more about free returns.
Only 14 left in stock (more on the way).
[{"displayPrice":"$32.99","priceAmount":32.99,"currencySymbol":"$","integerValue":"32","decimalSeparator":".","fractionalValue":"99","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"znfuJiujJM9i4q8j0cznO5rqbsQKpucsrqslFR%2FGqfyJMimbNy266OJ5DK4IZrObi5rnc3MKj%2BdpgCUI0Ymt%2Bkg2YDIbnDztdbL5%2BnqQBIKk%2B%2FXMaVqtbdzyuoeKMmBRFNlzNO%2F%2BWVjUD4MSI1YD4A%3D%3D","locale":"en-US","buyingOptionType":"NEW"},{"displayPrice":"$22.99","priceAmount":22.99,"currencySymbol":"$","integerValue":"22","decimalSeparator":".","fractionalValue":"99","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"znfuJiujJM9i4q8j0cznO5rqbsQKpucsWf9Qlk0pGVsYZFbQcM1A%2BDu8%2BV6rV8H8MN%2FYHUyFovNNjj2XzHfIf1tXOYbDFx6aXHIWDJwnTVKpdGbNdTQ1thKyHoNdmQLX9ZX5LHWp%2BnfkHgXwPp4DHaKpk5TYAfWCCqWNPw9lqxOjJtkTd7Pwvri5i7ioEVxi","locale":"en-US","buyingOptionType":"USED"}]
$$32.99 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$32.99
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
Ships from
Amazon.com
Sold by
Amazon.com
Ships from
Amazon.com
Sold by
Amazon.com
Return policy: Eligible for Return, Refund or Replacement within 30 days of receipt
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt.
Support: Free Amazon product support included
What's Product Support?
In the event your product doesn’t work as expected, or you’d like someone to walk you through set-up, Amazon offers free product support over the phone on eligible purchases for up to 90 days.
To access this option, go to Your Orders and choose Get product support.
Software Engineering at G... has been added to your Cart
FREE delivery February 9 - 13. Details
Or fastest delivery February 8 - 9. Details
Used: Very Good | Details
Condition: Used: Very Good
Comment: Minimal wear and tear to cover and rails, but completely clean inside. Digital media will be included if book was published with it. Shipment within 24-48 hours.
Access codes and supplements are not guaranteed with used items.
Have one to sell?
Other Sellers on Amazon
Added
$28.27
+ $3.99 shipping
Sold by: sweethomeliquid2
Sold by: sweethomeliquid2
(114600 ratings)
91% positive over last 12 months
Only 1 left in stock - order soon.
Shipping rates and Return policy
Added
$43.41
& FREE Shipping
Sold by: Publisher Direct
Sold by: Publisher Direct
(85710 ratings)
92% positive over last 12 months
Only 20 left in stock - order soon.
Shipping rates and Return policy
Added
$43.68
& FREE Shipping
Sold by: MyPrepbooks
Sold by: MyPrepbooks
(442 ratings)
97% positive over last 12 months
In Stock.
Shipping rates and Return policy
Loading your book clubs
There was a problem loading your book clubs. Please try again.
Not in a club? Learn more
Amazon book clubs early access

Join or create book clubs

Choose books together

Track your books
Bring your club to Amazon Book Clubs, start a new book club and invite your friends to join, or find a club that’s right for you for free.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required. Learn more

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more

Follow the Author

Something went wrong. Please try your request again later.

Software Engineering at Google: Lessons Learned from Programming Over Time 1st Edition

4.6 out of 5 stars 582 ratings

Price
New from Used from
Kindle
Paperback
$32.99
$28.27 $22.99

Enhance your purchase


Discover Books that Read. Great on Kindle. Great Reading Experience at a better value than print Discover Books that Read. Great on Kindle. Great Reading Experience at a better value than print

Frequently bought together

  • Software Engineering at Google: Lessons Learned from Programming Over Time
  • +
  • Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures
  • +
  • Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Total price:
To see our price, add these items to your cart.
Some of these items ship sooner than the others.
Choose items to buy together.
Popular Highlights in this book

From the brand


From the Publisher

“Software engineering,” however, sounds more serious, as if it implies the application of some theoretical knowledge to build something real and precise. Mechanical engineers, civil engineers, aeronautical engineers, and those in other engineering disciplines all practice engineering. They all work in the real world and use the application of their theoretical knowledge to create something real. Software engineers also create “something real,” though it is less tangible than the things other engineers create.

Unlike those more established engineering professions, current software engineering theory or practice is not nearly as rigorous. Aeronautical engineers must follow rigid guidelines and practices, because errors in their calculations can cause real damage; programming, on the whole, has traditionally not followed such rigorous practices. But, as software becomes more integrated into our lives, we must adopt and rely on more rigorous engineering methods. We hope this book helps others see a path toward more reliable software practices.

What This Book Isn’t

This book is not meant to cover software design, a discipline that requires its own book (and for which much content already exists). Although there is some code in this book for illustrative purposes, the principles are language neutral, and there is little actual “programming” advice within these chapters. As a result, this text doesn’t cover many important issues in software development: project management, API design, security hardening, internationalization, user interface frameworks, or other language-specific concerns. Their omission in this book does not imply their lack of importance. Instead, we choose not to cover them here knowing that we could not provide the treatment they deserve. We have tried to make the discussions in this book more about engineering and less about programming.

Editorial Reviews

About the Author

Titus Winters is a Senior Staff Software Engineer at Google, where he has worked since 2010. Today, he is the chair of the global subcommittee for the design of the C++ standard library. At Google, he is the library lead for Google’s C++ codebase: 250 million lines of code that will be edited by 12K distinct engineers in a month. For the last 7 years, Titus and his teams have been organizing, maintaining, and evolving the foundational components of Google’s C++ codebase using modern automation and tooling. Along the way he has started several Google projects that believed to be in the top 10 largest refactorings in human history. As a direct result of helping to build out refactoring tooling and automation, Titus has encountered first-hand a huge swath of the shortcuts that engineers and programmers may take to “just get something working”. That unique scale and perspective has informed all of his thinking on the care and feeding of software systems.

Tom Manshreck is a Staff Technical Writer within Software Engineering at Google since 2005, responsible for developing and maintaining many of Google's core programming guides in infrastructure and language. Since 2011, he has been a member of Google's C++ Library Team, developing Google's C++ documentation set, launching (with Titus Winters) Google's C++ training classes, and documenting Abseil, Google's open source C++ code. Tom holds a BS in Political Science and a BS in History from the Massachusetts Institute of Technology. Before Google, Tom worked as a Managing Editor at Pearson/Prentice Hall and various startups.

Hyrum K. Wright is a Staff Software Engineer at Google, where he has worked since 2012, mainly in the areas of large-scale maintenance of Google's C++ codebase. Hyrum has made more individual edits to Google's codebase than any other engineer in the history of the company. He is a member of the Apache Software and an occasional visiting faculty member at Carnegie Mellon University. Hyrum received a PhD in Software Engineering from the University of Texas at Austin, and also holds an MS from the University of Texas and a BS from Brigham Young University. He is an active speaker at conferences and contributor to the academic literature on software maintenance and evolution.

Product details

  • Publisher ‏ : ‎ O'Reilly Media; 1st edition (April 7, 2020)
  • Language ‏ : ‎ English
  • Paperback ‏ : ‎ 599 pages
  • ISBN-10 ‏ : ‎ 1492082791
  • ISBN-13 ‏ : ‎ 978-1492082798
  • Item Weight ‏ : ‎ 2.08 pounds
  • Dimensions ‏ : ‎ 7 x 1.22 x 9.19 inches
  • Customer Reviews:
    4.6 out of 5 stars 582 ratings

About the author

Follow authors to get new release updates, plus improved recommendations.
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Discover more of the author’s books, see similar authors, read author blogs and more

Customer reviews

4.6 out of 5 stars
4.6 out of 5
582 global ratings

Top reviews from the United States

Reviewed in the United States 🇺🇸 on June 3, 2020
Customer image
5.0 out of 5 stars Chesterton's Fence, Beyoncé Rule and 1 billion line Change List - How Google does it at scale
Reviewed in the United States 🇺🇸 on June 3, 2020
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.
Images in this review
Customer image Customer image Customer image
Customer imageCustomer imageCustomer image
84 people found this helpful
Report abuse
Reviewed in the United States 🇺🇸 on June 21, 2020
23 people found this helpful
Report abuse
Reviewed in the United States 🇺🇸 on December 18, 2022
Reviewed in the United States 🇺🇸 on October 5, 2022
Reviewed in the United States 🇺🇸 on September 12, 2022

Top reviews from other countries

Paris Apostolopoulos
4.0 out of 5 stars Interesting read + easy to read
Reviewed in the United Kingdom 🇬🇧 on April 29, 2020
10 people found this helpful
Report abuse
M. Scannell
5.0 out of 5 stars Great look into the techniques of software engineering at Google
Reviewed in the United Kingdom 🇬🇧 on September 28, 2020
2 people found this helpful
Report abuse
Angad Nadkarni
3.0 out of 5 stars Very cool, but likely not indispensable
Reviewed in India 🇮🇳 on April 4, 2020
25 people found this helpful
Report abuse
J James
5.0 out of 5 stars Fascinating read
Reviewed in the United Kingdom 🇬🇧 on February 16, 2022
Chris
1.0 out of 5 stars Book came all chewed up on the edges
Reviewed in the United Kingdom 🇬🇧 on March 7, 2022
Customer image
Chris
1.0 out of 5 stars Book came all chewed up on the edges
Reviewed in the United Kingdom 🇬🇧 on March 7, 2022
Just relating to the condition of the item. I could have returned but the effort would put weigh the benefit.
Images in this review
Customer image
Customer image