Everything in software (and life) is a trade-off and should be balanced and rebalanced. Something we just continuously fail to absorb in our true/false programmer brains, since everyone is always looking for those golden laws that always apply.
"Always give cute names", "Always give descriptive names", "FP is always good, OOP is always bad", "Always test first", "Always test later" etc.
Golden laws don't exist: Pick the best solution for your current situation and accept that your current situation will change. (Which is, again, a trade-off between now and the future!)