Catch the Absence of Change
The early-warning mechanisms that we’ve discussed so far help us detect deviating patterns in the evolution of a codebase. But problems may also be introduced by the absence of a change. For example, one microservice may produce a new event but the expected receiver doesn’t implement code to handle it, or maybe we forget to add proper error handling in a higher layer as we let a lower layer raise a new type of exception.
Most examples of bugs by omission can be caught by proper tests, a decent type system, or a static analysis tool. However, those safety nets aren’t able to cope with surprises of the kind we dealt with in Chapter 3, Coupling in Time: A Heuristic for the Concept of Surprise. Copy-paste code where ...
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