Progressive Degradation

Progressive Enhancement and Graceful Degradation

I like buzzwords. It makes it easier to talk about exciting new concepts, approaches, and technologies. I even aspire to coin my own buzzword in the future. However, buzzwords suffer from the same problem as most religions. They are easily and often misinterpreted.

Generally, a buzzword starts off strong as part of a blog post, an article, or a book. At first, those aware of the buzzword are the readers. They generally have a good understanding of what the buzzword means, so there is little confusion. As the hype grows around the revelation however, people who have not read the article begin to deduce from the bits they hear and see. Gradually, the buzzword degrades in meaning, usually broadening in scope, including things that it was not originally meant to describe. It’s a lot like the telephone game… “Ajax is the future of web development, purple monkey dishwasher.”

The “Ajax” buzzword is a prime example of this progressive degradation phenomenon. Originally meant to describe a technology stack (Asynchronous JavaScript and XML), Ajax has since degraded in meaning. It is often mistakenly used when referring to JavaScript animations (DHTML).

Another victim is the term “progressive enhancement.” It is often used interchangeably with “graceful degradation” (I’ll admit, I have made this mistake in the past). However, Progressive Enhancement (PE) is not graceful degradation and the distinction is very important. The Wikipedia article on PE does a great job describing this distinction.

I believe the concepts of PE and graceful degradation are often confused because they are so closely related. The basic difference though, is that PE is a “forward” (progressive) process and graceful degradation is a “backward” (degrading) process.

To help remind people, I’ve created a poster depicting this fundamental difference. Hopefully, it will help some people understand and even some adopt the PE strategy.