Chapter 8. Observability in the Development Cycle
Charity Majors and Liz Fong-Jones

Catching bugs cleanly, resolving them swiftly, and preventing them from becoming a backlog of technical debt that weighs down the development process relies on a team’s ability to find those bugs quickly. Yet software development teams often hinder their ability to do so for a variety of reasons.
Consider organizations where software engineers aren’t responsible for operating their software in production. Engineers merge their code into master, cross their fingers that this change won’t be one that breaks prod, and wait to get paged if a problem occurs. Sometimes they get paged soon after deployment. The deployment is then rolled back and the triggering changes can be examined for bugs. More likely, problems wouldn’t be detected for hours, days, weeks, or months after that code had been merged. By that time, it’s extremely difficult to pick out the origin of the bug, remember the context, or decipher the original intent behind why that code was written or why it shipped.
Resolving bugs quickly depends critically on being able to examine the problem while the original intent is still fresh in the original author’s head. It will never again be as easy to debug a problem as it was right ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access