Once upon a midnight dreary...
I pondered about the magical word 'cost' in developing and maintaining software, I found this classical example of 'Practical Cost' in software development / maintenance.
The scenario is upgrading your windows PDA/phone from windows mobile 2003 edition to wm5 or 6. Now, if you ever wondered why there aren't any dynamic upgrades possible on mobile os's, like the ones on desktop platforms (for instance windows xp to windows vista ), the answer may not be evident at first.
According to Microsoft, "But, by and large, the number of devices that will upgrade are pretty small." and therefore
Total cost of doing the upgrade) / (number of people who will use it) = (unreasonable price)
Total cost of doing the upgrade includes
1] Changes in the drivers / kernel etc. from the Hardware manufacturers.
2] Time required for testing new drivers on the 'new' operating system software.
3] Testing required by Mobile Operators (eg., o2, vodafone etc.) for the 'new' operating system so that it operates smoothly on their networks without any interferences whatsoever.
All this because of a Software Upgrade, essentially an Operating System upgrade ?!!
People at Microsoft argue that the cost for the upgrade will often be unreasonable and more or less equal to the cost of a new 'cool' phone ,may be with an already upgraded operating system.
Off late trends may be that there are equal windows mobile phone users and desktop users. Now, i wouldn't buy a new pc just because of a new operating system,but why wouldn't the same thing happen on a PDA/Phone ?!!
Microsoft may be true when they say that too less people would want to upgrade (could your grandmother do it!! :D) and therefore the above cost analysis may be right.
but i somehow strongly feel that there are other factors contributing to it like,
1] Hardware changes in terms of faster processing speed and technologies are significantly higher in mobile phones and PDA than the desktop market i guess.
consider PDA's such as the ones manufactured by HTC, IMate, O2,Apple iPhone etc. hardware changes and technologies evolve much quicker than a shift from single processor to quad processor on the desktop.
2] Imagine Hardware with virtual machines, just like software, processors with virtual instruction sets and thereby support for virtual drivers etc.
3] Virtual operating systems for PDA/Phones. (not sure if Virtual PC emulates Windows mobile 5/6)