Magento version 1 was released in fall 2010. It is a young code base, is not backward compatible, and has had an aggressive roadmap for development. For store owners, this means you are running on new code, and a system that was able to leverage all of the good ideas that came before it. It is a huge leap forward from the many other e-commerce systems that are running on 10-15 year old code bases.
Cutting edge comes with a small price, and that is that Magento upgrades can be substantial. For instance, from version 1.3 to 1.4 they completely revised the underlying base theme. This meant all custom themes needed to be reworked.
We have done hundreds of Magento version upgrades. We are familiar with the pitfalls, and know to take our time and test everything… like that Buy button that no longer adds items to your cart after upgrading. We were very glad to find that while still in a development environment.
Another challenge of upgrading an e-commerce system is that transactions are coming in all the time. In a CMS that doesn’t have user-contributed content, you usually have a window of a few hours or days when you can upgrade a site and know the database will not change. This is a luxury that e-commerce sites generally don’t have. Unless a client is running multiple e-commerce servers, upgrades eventually need to be made to the live code and databases. To do this safely with Magento Commerce, we set up a full staging environment, replicate the live site over to it, apply the upgrade, work through all QA issues in the theme or otherwise, and when ready to go live, we take the store offline (usually late at night) and run the upgrade as quickly as possible.