Web Estimation – How to Factor in Responsive Design When Estimating Web Applications

estimationresponsive-designweb

In the past usually I have only had to estimate web applications based on browser support. But for more recent projects device and platform support are also very important as well (screen resolution).

I am having a hard time providing an estimate to account for "responsive design". How much additional time (estimate only) is needed to account for this over the entire implementation of a web based project?

Best Answer

It is extremely difficult to provide any sort of flat "responsive design support" fee, percentage, or even algorithm, because in practice the devil is very much in the details.

The problem is (and what you absolutely must define in writing), what constitutes a "supported device"? By the gods, do not permit "mobile devices" and leave it at that. My first foray into that world was a trip to the school of hard knocks, and I'm endlessly grateful I wasn't on an hourly, contract, or time pressure.

The thing to know is you must treat each device and operating system version very much like you would an additional browser. As you are use to supporting multiple browsers, I'm sure you are familiar how much work can go into something as simple as "also, I want this to support Internet Explorer 7"; this can be easy, or it can be an amazing head ache depending on what technologies you are using.

Be aware that to many clients it's just another buzz word they don't fully understand. Maybe they just want their website/application to work on an iPad and iPhone/Android smart phone (last 2 versions of each with stock browsers), and that's it. Well, now you have at least 8 different new configurations to test, and in my experience even the newest/best tools from the top design softwares are unable to accurately tell you what's going to happen beyond a static HTML/CSS design; add in javascript and advanced features of any kind and all bets are off.

What about Windows RT and Surface? How about older Androids, or the first/2nd generation iPad? iPod touch? What tablet sizes and models must be supported? Will you need to test Firefox and Dolphin and Opera for mobile devices?

In practice, I quickly found (rather to my surprise) that using HTML/CSS/javascript/jQuery/SVG (uh oh) even in very basic ways generated a plethora of problems across devices. An app might look and work perfectly on Windows and Macintosh desktops of a dozen different screen resolutions and windows sizes, on Firefox, Safari, IE 7-9, and Opera, and you know how that can be. Then I found iPad didn't like a certain feature and wouldn't work, Windows RT exhibited bugs only otherwise encountered on IE <= 6 but when 'fixed' would randomly exhibit unreliable behaviors, and managed to completely crash all browsers on Android 2.2 and 2.3 but worked fine on newer devices.

Meanwhile, W3C validators and Adobe Browser Lab tools all reported no expected problems.

Bottom Line Advice

A multiple of 1.5-3X, depending on amount and age of devices supported, is not unreasonable. The only way to get better is to do it and get your hands on as many actual devices as you can manage and test, test, test. Its the new version of 1990s browser wars where the rules are made up and the points don't matter, you'll inevitably have to get dirty and spend whole days trying to fix one stupid thing that should work and works in 20 other platform tests but not on this one particular thing....

So define your terms, limit the officially supported devices (and specify models!), browsers, and configuration, and be prepared to feel like a bug-hunting noob. You an do it, just be prepared to spend significant amounts of extra time, avoid taking more than one job at a time to start with, and give yourself some intelligent leeway to avoid looking bad.

I'm personally a big fan of picking the most important configuration and delivering that, then locking down the other configurations on a staggered timetable. If it's all or nothing without incremental delivery you are asking for an unhappy client.

Most of all: good luck!

Related Topic