The Coupling Cost of Leverage

Felix GVFelix GV
1 min read

This is a summary of a recent discussion about making some system A leverage some other system B. The new system B would replace some functionality which system A already had.

The case in favor of A leveraging B was that it would decrease the maintenance cost of system A, since more functionality would be “outsourced” to system B (owned by another team). This maintenance gain could be especially significant if system B offers a correct solution to a difficult problem. That being said, some nuances are missing.

Deeply integrating multiple systems with a single shared dependency has pros and cons. It generates more leverage of course, but what kind of leverage?

If the surface area of the leveraged functionality is large (i.e., lots of APIs), then the more likely it is that any change on either side causes a regression. System A could break the system B, or vice versa, potentially leading to outages. This risk can be mitigated with robust integration testing and other techniques, but in the end it still translates into a productivity cost. These various drags on operations and development can be called coupling cost.

If the maintenance gain - coupling cost > 0, then the leverage is positive on execution, otherwise the leverage is negative on execution.

Reassess this periodically. Yesterday’s great dependency could be today’s liability.

0
Subscribe to my newsletter

Read articles from Felix GV directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Felix GV
Felix GV

Co-author of Venice