Graceful Degradation

After having been involved with various organizations during my years as a programmer, I’ve learned that different groups have different views on how applications should be developed. The two opposite and extreme mindsets that drive how technology is adopted and utilized are commonly known as “Leading Edge” (or “Bleeding Edge” if you’re particularly extreme) and “Draconian.”

I personally tend more towards the Leading Edge mentality, but I concede that there are advantages and disadvantages to both sides. However, no matter where you lie on the scale, there’s always going to be some challenges to face in developing applications relative to you or your company’s persuasion. While Leading Edge development tends to be more fun and powerful to work with, there’s always the problem of backwards compatibility and the usual security issues that can arise from pioneering technology. Although staying on the back end of the technology wave tends to be more stable and reliable, you’re going to alienate a significant portion of your user base (and possibly even your developers) and sacrifice a certain amount of flexibility with your systems.

There’s two different schools of thought to help address these issues on both sides of the spectrum: “Graceful Degradation” and “Progressive Enhancement.” The idea behind Graceful Degradation is that you develop your applications using contemporary technologies so as to make the best impact possible on your contemporary users, and then slowly scale back the features for users who still haven’t jumped on the band wagon yet 🙂 For example: A “GD” developer might design a website around CSS3 and HTML5 to have a clean, quick, attractive and efficient website, but also develop pages that accommodate visitors with older browsers.

Alternatively, Progressive Enhancement implies that you design your system around a given benchmark at the bottom end of the technology pool so that it functions the same for the majority of users, and then gradually build up features for users with newer systems and expectations. For example: a “PE” developer might design a website with basic HTML and light CSS and JavaScript for users still rocking IE6, and then add option features to spruce up the site for people with the latest IE, Firefox, Chrome, etc.

For more information on these two concepts visit:

Graceful Degadrataion : http://accessites.org/site/2007/02/graceful-degradation-progressive-enhancement/

Progressive Enhancement : http://accessites.org/site/2007/02/graceful-degradation-progressive-enhancement/2/

Posted in Blurbs