On the iPhone Hype

I have Talk of the Nation on in the background here at work right now, and it seems that even NPR is getting in on the iPhone hype. Momentum has…

Continue Reading On the iPhone Hype

Facebook, MySpace, and Class Divisions

Social networking researcher Danah Boyd has just published a fascinating essay called "Viewing American class divisions through Facebook and MySpace". In it, she explains how at least among teenagers, the…

Continue Reading Facebook, MySpace, and Class Divisions

The Skeeter Bag

Via 37signals' Signal vs. Noise blog, I came across what seems like a really simple idea that looks like it actually works: the Skeeter Bag. What is it? Basically, a…

Continue Reading The Skeeter Bag

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.


Continue Reading Staying Flexible: Living a Loosely Coupled Life