Progressive Enhancement

Progressive enhancement is a layered web development strategy to deliver the best possible experience to the widest possible audience.

Basically, when an elevator fails, it’s useless. When an escalator fails, it becomes stairs. We should be building escalators, not elevators.

Do not build the most advanced version of a feature first. Instead progressively enhance your great new feature, meaning first build the most basic, usable version. One of the advantages are that you’ll have access to working prototype much sooner in the process, which is very valuable as you’ll learn from using it. Perhaps you’ll discover another way to make the feature even better than you first thought. Perhaps this basic, usable version was all you needed?

Resources

Become fail safe with graceful degradation and fault tolerance