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 ...

Get Software Design X-Rays now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.