The second of three new terms I learned in January (from my colleagues at Sametz Blackstone, a design firm with whom we're partnering) that captured my curiosity was "graceful degradation," another way of saying (per Wikipedia) "fault tolerance." However, it's a very particular kind of fault tolerance.
Having been mostly focused on internal-facing applications of SharePoint in the past (team collaboration, intranets, business intelligence, enterprise content management, etc.), our team has had a fair degree of control, or at least predictability, around the client/browser experience. As we see and deal with more external (extranet and internet-facing) applications of SharePoint, we don't, and graceful degradation becomes more important.
Simply put, graceful degradation is what a good web developer ensures happens when users use non-optimized applications (typically different web browsers) to consume a web application. For example:
- If you built a really cool Flash application on the home page of a website, what do users without the latest version of Flash see when they go there?
- If you use CSS3 to develop some really cool navigational elements, how will users with "legacy" browsers that don't support CSS3 be able to navigate your site?
- If you depend on a SilverLight web part, what will users using, for example, an old version of Opera as their browser see when they go there?
- How will the user experience on your site vary across platforms: PCs, Macs, mobile phones, tablets?
Although I was familiar with the concepts of fault tolerance and cross-platform testing, I really liked the sound of the term "graceful degradation." My hearing it and seeing it in my colleagues' work reinforces the need to include thoughtful planning and design, combined with thorough testing in our work to ensure it as we perform more internet-facing development where we can't control, or even predict, what browser, or even what client, users will use to consume our applications.
Don Norman had an interesting comment along these lines in his latest book (Living with Complexity). His starting point is the real world: if I make a mistake in the physical world, there is often not a graceful failure. I push the wrong button and nothing happens, or I break things and learn not to do that again. He makes a connection back to design in general: incorrect actions should become more obvious, rather than trying to account for every possible mistake and coding around them.
That said, your examples are more mistakes made on the backend (by the designer) than by the user. It shouldn't be the user's fault for using IE6 or an old computer that doesn't render your graphics beautifully.
Posted by: jackvinson | February 14, 2011 at 08:18 AM
Thanks, Jack, I will give Don Norman's book a look. It sounds interesting, and I've been spending more time reading about design and systems thinking as I've been exposed more to Web Development and interactive firm partners.
Posted by: Mike Gil | February 14, 2011 at 01:35 PM