There is a significant discussion regarding the right to repair electronic products. Consumers should have the right to repair products they purchase. However, manufecturers are implementing strategies to make repairs more difficult in order to increase sales. So, how does this commercial discussion relate to software development?

The parts of an electronic device may be tightly interlocked, making repair and replacement difficult. We call this tight coupling. Another device’s parts may be easily replaceable or even extendable. This is known as loose coupling.
In software development, loosely coupled code makes it easier to add new features or make changes to the existing code. To achieve loose coupling, abstract classes or interfaces should be used when implementing inheritance. If we write our classes as tightly coupled, any changes made to these classes will require changes to all the classes that use them.