Carlos Espin Universal Codec

No.

The importance of saying no.

High cohesion is by now an axiomatic goal for those of us that organize and model concepts. We want our components well-defined: most ideally with only one purpose and with crystal clear invariants and properties. Cherry on top being a contract that cleanly expresses, always considering context and scope, what it expects to receive and what it promises to give back.

So the endless guideline “move towards higher cohesion” may be applied not only to technical discussions like continuous improvement for teams and their procedures or codebase refactorings but to almost anything at any scope: societies, teams, families and finally individuals and ourselves. And there is a lot say about how it applies to each of those.

There’s also a side effect to high cohesion: the possibility to couple more. Coupling through the wrong type of relationship won’t help either side. Breaking individual cohesion creates resistance. In the business context think of successful vs unsuccessful mergers and acquisitions. In the technical context think of good vs bad code refactorings. In the personal context think of healthy vs toxic people in our lives or inversely, when we have individually been a positive or negative influence on others.

Rock solid foundations while continuously redefining guardrails is essential to enable growth through coupling without breaking cohesion. To understand when to say ‘no’ because of incompatibility. It is very easy to lose sight of this and couple incorrectly. There are tangible occurrences of this for every single example mentioned before.

Answer ‘why?’ with an immutable answer. And say ‘no’ to any ‘how?’ that cannot explain how it will grow it. Some explanations are deceiving and attractive, they challenge the immutable purpose, and it is hard to notice it. And if they rightfully challenge it, it is very likely time to rebuild everything.