Is Progressive Enhancement an “on-demand” add-on? Or something we, as web developers, need to practice and included in the scope of a project?

Progressive Enhancement – Hot Pot of Coffee!

There are endless amounts of books, articles and entire conferences dedicated to Progressive Enhancement. Some web professionals call it a buzz word and some are Progressive Enhancement evangelists. Screaming from the roofs tops about how our websites and applications need to work when JavaScript is disabled (or when it’s unavailable). Or on IE version whatever. Or ***enter device name here*** – Others, such as Tom Dale claim that Progressive Enhancement is already dead – Which is a Bold Statement.

If you read any blogs about web design or have a Twitter account, you’d be hard pressed to have not seen discussions about Progressive Enhancement. It’s the talk of the town.

Getting Really Real

This article by Josh Broton, which was a response to Brad Frost’s article on the topic of Progressive Enhancement, brought up some really good points.

Josh says:

“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.”

That’s fucking true. So true. And it’s a real world example. Sure, if you’re working with a large company and the budget is there, Progressive Enhancement would probably be on their minds anyway. The point person on the team most likely will have some ideas on what demographics they want to target and which devices or browsers might not be 100% mandatory. The agency might even have a portion of the budget dedicated to Progressive Enhancement or other further optimization. In some agencies, there are full teams with the sole responsibility of studying analytics to determine if the cost of targeting a certain demographic is benefitical.

All the opinions, articles and Twitter discussions about Progressive Enhancement don’t really take into account many real world clients and projects. Not all clients have unlimited budgets and resources. Some clients are start-ups and rather focus on core features to get their product up and running, instead of putting time and budget into making sure the application or website is accessible in a certain set of circumstances.

I’m not going to get into the debate about whether or not Progressive Enhancement is good practice or if it’s a pipe dream. Although, by the time we figure out and agree on what the fuck Progressive Enhancement is, or should be, browsers, devices and internet speed will be so far advanced, there probably will not be a need for Progressive Enhancement as we know it today. But I digress.

Clients’ Expectations

So where do we draw the line with our clients’ expectations? If a client has requested support for a sepecific set of circumstances, obviously, it is our job to provide a solution or professional opinion to benefit the overall project.

Progressive Enhancement On-Demand

More often than not, the client might not even be aware that their website does not work without JavaScript or on IE6 etc etc.. Is it our job to make sure they ARE aware of this? Yes, of course. If practicing Progressive Enhancement will benefit a significant amount of users, it is our job to provide options and solutions.

What we shouldn’t start doing is serve up Progressive Enhancement as an “on-demand add on.” We need to find that sweet spot between offering further enhancement to the client, without presenting a vast menu of targeted circumstances. It’s not our responsibility to include every possible circumstance in the scope, itemizing every possible situation. That can become a nightmare.

Providing an accessible experience for every single user would be ideal. If this goal is within budget and scope, then go for it. No one will argue that this is bad practice.

Our Responsibility

Although it should not be our responsibility to offer Progressive Enhancement “on-demand”, it is our responsibility to make sure the client and steak-holders are aware if a significant amount of their demographic will be impacted by a certain set of circumstances.

Research is part of our job, and we need to do our best to find out who the client’s audience is as long as it is within means. If we discover that 30% of the user base is on a super slow connection, it is our job to make sure we optimize for that demographic.

If the client is unaware that a large portion of their audience is accessing their website on a certain device or browser, but they do not have the budget for it, we need to at least give them the option.

Now, that doesn’t mean every possible circumstance needs to be accounted for. If 0.5% of the client’s user base is accessing the website on a Smart TV, do we offer this as a Progressive Enhancement add-on? Uhhh..fuck no. If the client requests it, that’s one thing. But I don’t think it is our responsibility to offer up solutions for every single set of circumstances, and start offering Progressive Enhancement alacarte. Not going to happen.

Conclusion

It’s our job to do what is right for the project. Yes, we should do our best to make websites and apps as accessible as possible, within means and within budget. We need to do our research and provide the best solution to our clients. If there are options which will benefit the project and a significant amount of users, we should present them to our client.

I just want to be clear that I am not saying we should forget Progressive Enhancement. Or withhold information from the client. We need to use our best judgement to do what is right for the project, the user and the client’s goals. But we also need to be realistic.