Wednesday, August 22, 2018

Don't Try to Balance Code Qualities

There is a popular idea that you strive for balance between code qualities.

This seems misguided, to me. Balance requires opposition yet none of the code qualities opposes any of the others.

Yet, the way they mix together needs attention. When managed carefully, they combine to give code a beneficial or pleasing quality. If managed poorly, the opposite effect is obtained.

So there is some kind of reconciliation activity required but it's different from what word "balance" describes.

Managing the interference between structures within a system in order to minimize undesirable interactions and maximize beneficial qualities? That's basically the description of attending to harmony.

In my view, attempting to impose balance between the code qualities is the road to compromise. A far more sustainable (and enjoyable) path is the cultivation of harmony.