If we sold software as more of a subscription than a major purchase, then weekly upgrades could go much more smoothly, and be much more of a normal process. When we put off upgrades for months at a time, then they pile up, get complicated, and require much more careful vetting, before allowing them out.
Aye - there's the rub: that vicious cycle of putting off upgrades (not very "embracing of change" is it - more like "Eschewing Change") simply leads to a self-fulfilling prophecy of Big-Bang Enterprise Upgrade/Integration.
Extending the idea of "Continuous Integration" to "Continuous Deployment/Upgrade" would seem to be what Symantec and others are doing with their software update technology. This seems to require rethinking the value of the software as not merely the product but also as a service. In some ways, it is both a product and a service.
When we think of it as a "product", that supports the "BDUF" (big delivery up-front" mentality. We purchase this thing ONCE up-front, and think (pray) we are done with it.
But what is really happening (or perhaps ought to be happening) is that instead of a traditional product, we are providing a "continuous service" (for as long as the license/service agreement exists) that is realized by an (ever evolving) architecture.
If that change in mind-set could happen from "BDUF Product" to "Continuous Service" regarding how the value of the software is perceived, perhaps it would be one of the single most powerful and helpful things that could be done to change the underlying funding model for most software development efforts (and an incremental funding model would seem less radical).
Indulge me for a moment in a possible vision of the not too distant future ... in olden days, we had mainframes, and we time-shared on dumb terminals (today we would call them "thin clients" ;-) . Then we evolved to a model where it was feasible for most folks at work to have their own PC.
The household has made a similar progression, delayed by at least a decade or two.
- Once upon a time, for families in various countries above a certain median income, it was unusual for a family to have more than one telephone.
- Then at some point, it became more common to have 2 telephones, then a telephone per 1-2 inhabitants in the home.
- In the near future, it may be commonplace for a "median income" home to have multiple computers (laptops or desktops) as well as multiple devices, all connected by a home network (possibly with subnets in the same home).
- The average household wont necessarily have the time/inclination/ability to basically be an IT-shop for the home. So just as IT is being "outsourced" in large organizations today, many of those same IT contracting organizations will make "sweetheart deals" with local cities/townships, and partnerships with communication providers (digital cable, TV, phone, security, etc.).
- Hence, IT services for many neighborhoods will be provided by a contracted "help desk", and rather than buying new software all the time, it may be common place for such a "provider" to get "bulk license" deals on common application packages and bundles, and provide them to the home users directly, perhaps even handling the upgrades for them.
- One day (probably before 2020, maybe even by 2010), "upgrading" some software in my home will potentially be as risky/scary an undertaking as upgrading a business critical system in a large corporate computing network.
Many consumers may be worried that not only might their next upgrade disrupt something basic they care about (like the ability to use the electric can opener when they dont have any manual can openers in the house :-) , they may even be worried that their lives will be disrupted when the neighbor upgrades the neighbor's home network. (And things like security and privacy and RFID and Sarbanes-Oxley are going to be "on steroids" by that time in comparison to how it is today. )
We're gonna have to make some mighty big strides in the areas of deployment configuration management for delivery, install & upgrade, configuration administration and monitoring & tracking.
And its likely going to have to utilize all the current "buzzwords" today by being "on-demand" (which is kind like "continuous service") and "autonomic", self-healing, grid-computing, etc. The need (and notion) of being able to do those things CONTINUOUSLY is going to be fundamental!
At least that's what I think. What do you think?