Staying Flexible: Living a Loosely Coupled Life

There’s a term we use in programming and development to describe system interfaces that are designed with maximum flexibility in mind. They are said to be loosely coupled. In plain English, it means that applications have stable and consistent ways for other programs to communicate with them. More importantly, since there are clear boundaries that are well known, it’s relatively trivial to swap one component out for a completely different one. Bringing it down to one word, it means independence.

Sometimes loose coupling can be achieved by designing it in from the start using web services technology — a luxury if you have the opportunity to build everything from scratch. Much more often though, a new program being created needs to talk to some long-running application that has been there longer than everyone in the company. In those cases, making things loosely coupled means creating a layer of abstraction that each of the applications talk to instead of doing it directly &mdash we call that middleware.

If the day ever comes when the legacy program is retired and replaced with something new, the other application should continue to communicate with little to no modifications. Since no assumptions were made about the ugly complexity hidden beneath the middleware, changes can be made there without affecting anything else.

Where am I going with this?

It recently occurred to me that we face a lot of tight coupling in our personal lives. Change creates a very real pain. I think this is especially the case when it comes to how we communicate with others. Let me explain, and offer some tips.

(more…)

Continue Reading
Close Menu