Responding to Rampant Progressive Enhancement Elitism
Update: Brad’s written a really good follow-up post, “On Progressive Enhancement,” where he basically clears up all my concerns and agrees with what I say below. Make sure you read it.
I tried really hard to stay out of this one. I really did. I’ve ranted too much about too many things lately and I was going to let this one go by with nary a whisper, but then I read this blog post by Brad Frost. In it, he claims that making decisions like “We don’t support [“Blackberries”, “IE6”, “Touch users”, <insert type of user here>],” is the same as looking that user subset in the eye and saying, “F*#& YOU!”
It’s incredibly elitist to say that every site and every web app we code has to support every subset of user on his predefined list of supportables.
We Might Just Have Actual, Real-world, Business Reasons
I know the foundation of the Internet is that it’s all-inclusive. I know we’ve built a world-wide network that literally anyone with a device and wireless signal can connect to and share dreams and ideas. Progressive enhancement is a method of doing things that we should all strive toward, but that doesn’t mean that every site needs to support every user all the time.
To think you need to support every user is asinine. Short of Google, Apple, or Microsoft, no company can afford to support every user all the time. There are actual, real business reasons to eliminate support for a subset of users, and ignoring those reasons can doom a project to failure.
- Not every developer works for a large agency working on six-figure projects. I choose to ignore IE6, IE7, and sometimes IE8. Why? My clients don’t want to pay to support it. If they’re not paying for it, I don’t do it. I don’t work for a web charity. So technically, that means it’s my clients telling their users, “screw you.”
- I’ve done work for a few multinational companies that had specific languages they needed to support, but I’ve never translated a site into every language spoken by Internet users. Am I giving the finger to every non-English speaking user in the world? By Brad’s logic, I think so.
- I’ve worked on projects written in Objective C for iOS. We decided at the time that there was no business reason to also write an Android, Blackberry, or Windows Phone version because 90% of the users were on iOS. Developing for the last 10% would have (at-minimum) quadrupled the cost of the project. Am I a dick for making that business decision?
Sh*thead McHorrible Strikes Again
Maybe, for one minute, we can all take a step back from the cliff, get off our high horses, put down our swords (pick a metaphor), and have a rational discussion about issues in our industry. Is it the ideal situation to have to ignore a subset of users? No. Is it sometimes necessary? Yes. To say otherwise proves either your ignorance or your dishonesty.
The Right Way To Progressively Enhance
So what’s the right way to figure out how far you need to take progressive enhancement? Be realistic and not idealistic. Balance the disparate requirements of your users vs. your business realities. Support as many users as you can afford to support, hope your project takes off, and use that growth to afford to implement more support.
After you’ve built this amazing site with a great experience for every one of your users, teach us what you did and how to do it ourselves. Don’t write trolling posts about how much we suck. Tell us how to fix it.
I make things. That’s what I do. I’ve made web things for almost 18 years now, and I plan to continue doing so for the rest of my life. If I’m ever faced with the choice of creating an experience for 80% of potential users or not creating that experience at all, guess which one I’m going to choose?
And in case you’re wondering, yes, I care about blind people.
Tell me how much you hate me, how much I suck, or where I can stick it in the comments or @joshbroton.