Uncover Expensive Change Patterns

Quick—how do we know if a software design is any good? Most answers concern facets of programming such as the importance of naming, testability, and cohesion. We’ll go beyond that and assert that none of those qualities matter unless our software design supports the kind of changes we need to make to the code.

This insight isn’t revolutionary in itself. What’s surprising is that we, as an industry, haven’t attempted to measure this aspect of code quality before. The main reason for our negligence is that time is invisible in code. As a consequence, we don’t have any detailed mental models of how our codebase evolves. Sure, we may remember the implementation of some large feature that transformed parts of the ...

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.