Enhancing Progressive Enhancement

As the famous Dave Rupert says, "It's time for some * Law and Order sound effect here * Hot Drama."

Yesterday the internet was abuzz with the technicalities of what Progressive Enhancement really is. A few posts popped up here and there of folks defending their respective sides of the argument. Now it goes without saying that this is a great thing, and obviously what the internet is intended to do, which is foster discussion. The two main articles I'll reference in this little discussion are Jeremy Keith's article, which is a response to Scott Jenson's post on Google+.

Both of these articles make great points. Scott Jenson, in regards to building a camera app or a chat app, notes:

Of course you can have it fail gracefully. That is very reasonable but what are you left with, an elegant error dialog?

This statement cuts away all the mustard and gets at, what I believe to be, the Progressive Enhancement purists. This is the main point of Scott's article. That in some cases Progressive Enhancement may not be an acceptable solution. Specifically when it comes down to the fact that the entire app is rendered useless by this practice, and "...not everything devolves to content.".

While I certainly agree with Scott here, we have to take a step back for a second. This is one of the issues that I see come up time and time again in our industry. Everyone is taking these practices, or these ideologies, at face value. It's either black, or it's white. Zero or one. There is no middle ground. And that is where I think the hang-ups start.

Much like the websites of yesteryear, we as developers need to be fluid. Able to adapt and interpret at the drop of a hat. Yes the description for Progressive Enhancement may be overtly specific, but much like any other process or principal, it's the core of the idea that we need to take away. In regards to Progressive Enhancement that idea is the fact that not everyone is sitting on their MacBook Pro connected to their fancy Google Fiber internet connection. People on trains on their smartphones going through tunnels losing service, people who can't afford the latest and greatest who are ecstatic to receive a donated cellphone or laptop with spotty service and connectivity, those are the people we need to keep in mind when we are developing. Our apps, our blogs, our client work, all of it needs to take into account the end user. We need to figure out how to give them the best experience utilizing the principals that an idea like Progressive Enhancement provides us.