The other day I came across a blog post from a non-developer at Microsoft complaining about the "fan" mentality of users (notable in this case users of Apple's iPhone) who feel the need to "upgrading every 20 seconds." Said poster goes on to note that, at least in the Windows world, upgraders are more cautious, "prefer[ing] to give a major upgrade a couple of months to bed down."
Naturally this post resulted in a bunch of comments around the theme of "well if initial releases of major Microsoft updates, such as Vista didn't suck, users won't have to wait months before updating"
My first thought, along the lines of the comments made by others, suggests that perhaps the two companies approach software development in different manners, resulting in software releases with different levels of stability and usability and thus resulting in the difference in why one set of users - Apple iPhone users - might differ in upgrade behavior from another set of users - Windows users.
Specifically, while the stages of software development are pretty straightforward; Planning, Design (specification and architecture), Implementation (coding, testing and documenting), Deployment and Maintenance the actual implementation of these stages varies. There are numinous methods for implementing these basic development stages.
However, as far as I know, there has been very little written, case studies or otherwise, about the adoption of any specific software development method at Microsoft for Windows or at Apple for OS X development or how the two compare to each other. And in any case, while stability and reliability are important when it comes to the adoption of software updates, any short comings that may or may not exist in Microsoft's (or Apple's) development methodologies are hardly to blame.
When considering a software update a user, consumer or business, is going to determine the cost incurred by the upgrade and the benefit from adopting the upgrade. Pretty straightforward right? All most too basic to even mention.
Now, a consumer considering the latest software has to consider the cost to purchase the upgrade in terms of time and money. What is the cost of purchasing the new software? Does the software upgrade require a hardware upgrade as well? All of which gets compared to the the benefit the update brings to the consumer's computing chores.
Same of a business, but in their case their cost includes having to pay for their IT staff to update numinous devices within the company and teach the users about the benefit of the update, thus adding an additional significant cost.
Now I break up users into consumer and business types because one might argue that the percentage of iPhone users falls heavily in favor of the customer-type of user, while there is a significant percentage of businesses dependent on Windows and a business might sit and wait to test an update to verify the update's stability and benefits1 once released. Hence the difference between Apple iPhone user's quickly adopting the latest 3.0 software release and Microsoft Windows users who wait.
However, in reality, even before the release is fully available businesses will already have a copy of the update in hand for testing2 since software companies such as Apple and Microsoft have developer programs which allow those dependent on their software insight to what's coming down the road, while also providing feedback about potential concerns and issues with adoption.
So then, why the difference?
In the case of the iPhone 3.0 update the cost is $0 and 30 minutes to apply the update to one phone. The update does not require an additional hardware upgrade and provides significant improvements to productivity compared to previous software versions.
Windows Vista however starts at around $130 per update copy and can require significant investment in new hardware parts as well. Add to that various issues Microsoft has had in communicating requirements and potential benefits of Vista against various complaints about stability and performance and it becomes clear why iPhone users are quickly adopting their latest update, while Microsoft Windows users are waiting for Windows 7.
1 Which, I suppose could also be considered an additional cost to upgrading for a business.
2 Which in my mind puts this cost of testing and revewing in terms of normal operation of the IT infrastructure, instead of the cost incurred by the adoption of a new IT project for updating