Why Product Development and Design needs Cohesion-Coupling
Ask any Engineer and they will explain in detail the importance of Cohesion and Coupling. To them, these are irrefutable, fundamental concepts that underline any well-engineered product.
But Product Management and Design have often sidelined these concepts as being too engineering-specific. However, in reality, many Product Principles are in fact centered around them.
Thus unknowingly, we build products and make product decisions based on these very concepts.?
Therefore, let us dive into these core concepts and absorb them so that we can consciously make better product decisions and build better products.
Understanding Cohesion and?Coupling
Let us try to understand these concepts by breaking down the most common product we all use, Smartphones.
Any product can be broken down into two constituents:
Cohesion and Coupling define how these modules of a product are formed and how dependent they are on each other.
Cohesion:
Cohesion is a measure of the degree to which the elements of a module are functionally related
Basically, Cohesion defines how closely the components of a given module are related to each other with respect to their functionality.?
High Cohesion is when the components of a module are directed towards performing a single task. For example, components of the Camera module viz. Light Sensor, Lens, Image Processor are all directed towards performing a single task of capturing images. Similarly, the Memory and Display modules have High Cohesion.
Low cohesion is the exact opposite of High Cohesion. Here, each module ends up performing more than one task since its components are not directed towards a single task. Needless to say, we should always avoid Low Cohesion. But, more on that later.
Coupling:
Coupling is the measure of the degree of interdependence between modules
In simple terms, coupling defines how heavily two different modules are dependent on each other
Low/Loose Coupling is when two modules are very lightly dependent on each other to perform their duties. For example, the Battery and Battery-charger are loosely coupled. If the Battery-charger gets corrupted, another Battery-charger can be used to charge the Battery, and if the Battery gets corrupted, then the same Battery-charger can still be used to charge other phones batteries.
High/Tight Coupling is when two modules are heavily dependent on each other to perform their duties. For example, in contrast to the Battery and Battery charger, the Display module and System-on-Chip module are more tightly coupled. If the System-on-Chip module gets corrupted, the Display module will not be able to perform its duties and if the Display gets corrupted, the System-on-chip (GPU) will not be able to perform its duties properly.
High Cohesion and Low Coupling is the principle
Now that we have seen what High Cohesion and Low Coupling mean, it is only natural that the principle is to always strive towards achieving them.
In fact, it is a seesaw. If your modules have High Cohesion, you naturally get Low Coupling between them. But, if you have Low Cohesion, your modules will have High Coupling.
And there is tremendous value in striving for High Cohesion and Low Coupling:
How does this apply to Product Development and?Design?
It is natural to think that Cohesion and Coupling are only applicable to Engineering. But in fact, Product Managers and Designers can draw great benefits by adopting them.?
Let’s see how…
Product Managers and Cohesion-Coupling
Now that we have understood the core concepts of Cohesion and Coupling, let's see how Product Managers can apply and benefit from them.
Common mistakes made by Product?Managers
As Product Managers, we are often given complex problem statements to solve and while trying to solve them, these are the most common mistakes we make:
领英推荐
Applying Cohesion and Coupling as a Product?Manager
Now let’s try applying Cohesion and Coupling to solve complex problem statements and see if we are able to sidestep the above common mistakes.
Benefits of Cohesion and?Coupling
Now that the complex problem statements have been broken down into High Cohesion problem statement groups that have Low Coupling(as much as possible) between them:
Product Designers and Cohesion-Coupling
We have now seen how Product Managers can adopt Cohesion and Coupling. Let us now see how Product Designers can do the same.
Common mistakes made by Product Designers
As Product Designers, we are often tasked with putting together lucid designs for complex problem statements and solutions. The most common mistakes we make at this stage are:
Applying Cohesion and Coupling as a Product?Designer
Now let’s try applying Cohesion and Coupling to our designs and see if we are able to sidestep the above common mistakes.
Benefits of Cohesion and?Coupling
By practicing High Cohesion and Low Coupling in our designs:
iPod: Winning the market through High Cohesion and Low?Coupling
iPod was not the first MP3 player in the market. But Apple knew that to win this market, they have to do one thing, simplify.?
All existing MP3 players in the market were extremely complicated to use and the root cause, they tried to do everything. These MP3 players let users create playlists, move songs from one playlist to another, among many other things. This ultimately ended up making these products quite complicated and cluttered to use.?
But Apple thought differently:
In Steve Jobs words, from Walter Issacson’s book, Steve Jobs:
In order to make the iPod really easy to use, we needed to limit what the device itself would do. Instead we put that functionality in iTunes on the computer. For example, we made it so that you couldn’ t make playlists using the device. That was controversial?.— Steve Jobs
The result as we know, was a revolution. iPods were an instant hit in the market and one of the most successful products of Apple.
Do note: it is a principle, not a?law
High Cohesion and Low Coupling is a principle. It is not a law. A law cannot be broken. For example, you cannot divide a number by 0. That is a mathematical law. We have to follow it. But principles can be ignored or bent if they don’t add value to a given scenario.
For example, think of a design or solution where you notice that applying High Cohesion and Low Coupling will actually complicate things. In such cases, feel free to mindfully ignore this principle to favor simplicity.?
The moral here is, we need to be very mindful about High Cohesion-Low Coupling and know exactly why we are ignoring them, if and when we choose to do so.
Conclusion
Cohesion and Coupling are extremely potent concepts. They are also not limited only to Engineering but are equally applicable to all areas where we build things, viz. Product Development and Design.
We also know that High Cohesion and Low Coupling is a principle and not a law. So, we want to be mindful of them but not be extreme in following them.
To date, we have unknowingly used High Cohesion and Low Coupling within our solutions, but no longer. From here on, we know these core concepts and the principle. So let’s leverage them to make better product decisions and build even better products.
Full Stack Developer | Golang | MEAN | Node.js | NestJs | SQL | System Integrations | Backend
2 年Great blog…loved it