I rarely take on consulting jobs nowadays, but this post still stands even on the wake of Internet Explorer’s planned demise.
Here’s a declaration I’m making regarding the nature of web projects I’m willing to undertake:
Support for the latest non-beta versions of every web browser occurs at no extra charge to the total development cost.
Support for inherently non-updatable browsers (such as Internet Explorer in Windows XP which goes up to 8) incurs an extra 66% to the final cost of development. The same charge applies for support for the Opera platform.
Support for arbitrarily older versions of a browser (such as Internet Explorer 6) or very old operating systems (such as Windows 2000) incurs an extra 150% charge to the final cost of development. The same charge applies for platforms that are not included in the following list at the moment of the writing: Internet Explorer 10, Chrome, Firefox, Safari 5+, embedded browsers in the Android, IOS, WP8+ platforms.
Yes, you read correctly. If a client would want a web application that operates properly in Internet Explorer 8 under Windows XP this will have two consequences:
- An increase of the final cost of development by 66%,
- Potential inability to take advantage of all technologies that would be used if this provision weren’t in place.
For example, Canvas support in Internet Explorer 8 is nonexistent, and only by using polyfills you can emulate part of the intented implementation. Then again, polyfills will only get you so far and will potentially require duplication of effort in order to ensure compatibility with other browsers.
Things are worse in case you need support for a browser that is arbritrarily old, such as Internet Explorer 6 which could be upgraded to Internet Explorer 8 even on XP. This would increase the final cost by an extra one and a half times and to be honest, I’ve settled to this number in order for it to act as a deterrent; if you really really need support for a vintage platform, you’ll be expected to pay vintage prices.
Of course, the second provision about limited feature support holds true to a greater extent here.
I realise that these provisions might deter potential clients, but it’s the honest way: developing for older platforms is neither enjoyable nor fast and most of the time, there’s no reason for that and I wouldn’t want clients that ignore the current trends of the web market; a client would easily ask support for even Internet Explorer 1 or anything else if you offered it, but would have to think twice if the cost was relative to the effort.
Here’s another reason: Most browsers usually silently auto-update (thanks to Chrome) and as such you can be sure that the platform you are developing on at least supports the a basic set of features available in all other modern platforms.
If it’s the case where a potential feature is not supported by a different but sufficiently modern browser, then it can be polyfilled free of charge as part of the development. The difference between providing compatibility for 1-2 features versus 10 (not taking into account layout differences) is what leads to the increased cost.
Regarding Opera browser: Since Opera never had any important market share plus they’re abandoning their Presto engine, investing resources and money isn’t recommended (that includes the mobile versions, although I can recognise their higher market share there). Should Opera fully move to Webkit, the additional cost for its support will be removed.
It’s all about Internet Explorer
… as I stated in the title that explains why normal web development goes to hell. Now, I’ll admit that IE10 is a very nice browser, sufficiently modern and with enough features to warrant its usage, but every other version below 10 simply isn’t. Even IE9 which had quite a few important improvements over the older versions, can only be considered as terribly obsolete; on a world where browsers update several times a month, even a singular year of stagnation is a far too low rate.
While it’s up to Microsoft to provide an auto-update plan for Internet Explorer in order to stay competitive and off my charts of obsolescence (and they should; one should not have to wait for a newer operating system to get new features out of a browser) the hate for Internet Explorer goes back to version 6.
Few words about Netscape: Let’s be honest here: Netscape fought a losing battle ever since IE came out. While they had a better product during the first years of IE’s existence, the trend changed towards IE’s favour, in addition to better features (later), faster development, but most importantly, priced at 0 (then followed by inclusion with Windows).
By the time IE5 came out Microsoft had more than 90% of the market share. IE6 improved on that landscape with more features and…. that was it for quite some time: stagnation.
Stagnation is what killed IE’s market share. IE6 had insurmountable security issues, ridiculous rendering bugs and lack for proper alpha-channel transparency in images (the developers would dismiss questions regarding potential support for transparent PNGs). When Internet Explorer 7 came out and offered substantial improvements (especially in regards to security) it was already too late.
By the time IE7 was out, Microsoft had lost about 20% of its browser market share and would only go downhill from there. Stagnation was what altered the mentality of the consumer mind; slowly but steadily, people were willing to let go of the browser included with their operating system and try something new. Granted, the reason they did that was usually unrelated to the layout engine (that would probably act as a deterrent, if you take into account the amount of hacks for dealing with rending bugs that existed), but it was what would become the downfall of Microsoft’s dominance in browsers.
The rest is history. IE8 came out with even more features (and some glaring omissions) and everybody recognised the important improvements done on the Trident engine. Still, it was far behind what other engines such as Gecko and Webkit offered but, hey, at least it wasn’t IE6.
That’s what defined our mentality when dealing with Internet Explorer. Every version was welcome as long as it wasn’t IE6. And while that was true for a while, we have moved on since then. Have a look at this chart:
As you can see, since Internet Explorer is no longer the first browser and only has about 1/4-1/5 of the total share, it’s unfathomable why would anyone require all this extra work to be considered a standard part of their development schedule.
Simply put, if you are using Internet Explorer of version other than 10 at home, please stop. Either upgrade to IE10, or better yet install a different browser.
Similarly if you are using an outdated browser in your workplace because your IT department demands so or because you have an application that requires obsolete components to do so (such as support for ActiveX), then your IT people have just allowed a whole bunch of security wholes to go through. True, you may not care much for that but it can act as an argument towards upgrading to a newer version. If you can’t upgrade to a newer browser version, at least ask permission to install a different browser.
In any other case, expect the development costs to rise and the end product to suffer while you enter the realm of diminishing returns. And while I’ll take your extra money for forcing me to work on obsolete browsers, I won’t thank you much for it 😉 .