I'm going through this now, with an upgrade from Mac OS 10.5.8 to Mac OS 10.6.8 on my black MacBook. The world decided in its infinite wisdom that 10.5 was too old to keep supporting, and so quite a bit of software was starting to break. The promise is that 10.6.x will last a bit longer and keep my old 2008 vintage system running for a while longer.
Upgrades are always fraught with peril. In this case, it involved sticking a DVD in the drive, clicking a few times, and then waiting 45 minutes for the system to emerge in newly upgraded status. When you do something like that there's a lot of faith you have to have that the people who put together the shiny DVD got every last thing right, that they didn't forget to check some bit somewhere which in your case would turn your computer into a puddle of slag. I know that at some level it's an irrational fear, yet I've bricked my share of hardware in my time and I've known the process of operating system upgrades to involve long late-night patching sessions to get everything to work.
There was no puddle of slag at the end of my upgrade, just a computer that looked about the same as it did before with no huge obvious changes, just a few cosmetic bits and the promise of future compatibility.
I'm told that the typical Android phone that's sold never gets an operating system upgrade from the vendor, and that the usual upgrade path is either to install a completely unsupported hacked up new software load or to scrap the phone and start afresh with new hardware. I haven't lived in that world yet so I don't have the experience of others to go through, just the general sense that unless you're willing to delve into the details of Cyanogenmod that you should be prepared to get a new phone every time your contract runs out.
Compared to operating system upgrades, application upgrades are relatively easy and low worry. With most consumer software that's going through a rev cycle, these days you select "upgrade" from within the app and it magically replaces itself with a slightly newer version. This time I needed to update Chrome, and I had to descend to the operating system and delete one file to make the automated process work just fine.
The other task in my grand system upgrade effort has been to try to get BlueStacks running. This is an app that runs Android apps on Mac OS X. It's in beta, so I have some reason to understand when things don't go instantly right, but I tried it out anyway and the install failed to come up with a working system within the amount of time I was willing to throw at it.
Just because I have part of a 10.6 upgrade done doesn't mean that the whole thing is ready. The CD ships with 10.6.3, and you have to download a gigabyte-plus combo update to get to 10.6.8. The first time I did this the download was corrupted (?) so I tried again with success. I don't understand why, just enough to hit the "yes" button, and to type the error message exactly into Google when the error happens in the hopes that someone else has seen exactly the same problem.
What did we do before error messages could be looked up with such precision? Well, for one thing, there was usually some source code lying around so that you could read just what the context was for the error. If there was no source code to be had, then Usenet was sure to have someone who had seen the same failure mode. Google searching for failures just distributes out the task to a broader audience than ever, but there's still the basic issue that when something goes wrong you have to rely on the goodness of people who are willing to air their systems difficulties in public in the hopes of righting them again.
Keeping a system running with current software is an ongoing job. I ended up only being able to do it after digging through a rats-nest tangle of cables in my basement, emerging victorious with a Firewire cable that allowed me to back up the Mac to the point where I was confident enough that I could insert the DVD, click "Yes", and hope that someone in Cupertino tested every combination of equipment that one single updater was supposed to work on.