What a way to run a rodeo


Decoupling

published:

tags: [ #unweb ]

Probably one of the most important lessons of software design that most developers will learn one way or another very early on in their careers is the value of decoupling. It's also pretty a pretty useful concept in real life as well.

Basically, two things are coupled if they depend on one another. Some degree of coupling between components is unavoidable, but life gets really painful for a developer if components become "highly" coupled; trying to make minor changes here lead to huge ripple effects elsewhere.

In real life, think of buying a bunch of Sonos speakers to equip your home with. Useful, but now you also have to use the Sonos app to control them. Don't worry, there's no way anyone will regret that.1 And then maybe a few years pass and Sonos drops support for some of your speakers. And then maybe you wish you could switch to a different brand, but now this is a four-digit $$$ question instead of a three-digit question so I guess it's just easier to replace the old one with This Year's Model instead.

Software developers want to keep things decoupled; we change our minds all the time and don't want to be afraid to change something because it will balloon into too much work. But tech companies definitely want you to be coupled to them.


  1. Just an aside to mention here that the Sonos app currently doesn't have a "skip 30 seconds" button, making it an absolute nightmare to listen to podcasts2 with.

  2. Podcasters, please reflect on why any sane human being wants to have a "skip 30 seconds" button on their audio player.