Quite often, you hear people saying that if i implement this newer technology, how do i support older browsers, operating systems etc…
An example could be: I want to implement some real time support in my web application. Solution i could think of is to use something like Socket.IO. The good part is it will bring in support which my users will love. Bad part is older browsers may not support this.
Obviously, there is no straightforward answer.
Architecture or Technology decisions are always derived from Business Strategies.
In this case, the questions Business should answer is
1. Who are my target audience?
2. What is the percentage of users use those existing browsers/operating Systems?
3. What is the budget/resources available to implement?
4. Will i be able to support these on a on going basis?
5. Will i be able to say my users that my product will support only these browsers?
The Solution to the above problem is to bring in Alternative technology implementations by detecting the browser capabilities for the older browsers. Obviously implementing an alternate solution brings in more lines of code, which means more maintenance headaches.
Its the Business’ responsibility to make a decision whether the money we get based on supporting older versions of browsers are important or Maintainability of the code. You cannot possibly have both with limited resources and budget.
Architecture is always based on the Context. Context can only come from Business.
Image courtesy of winnond / FreeDigitalPhotos.net