I just recently upgraded ExpressionEngine (EE) from version 2.5.5 to 2.7.3. It took multiple attempts to get it right. There were a string of PHP errors after upgrading, some due to an incompatible third party plugin. The major issues had to do with the newly reconstructed relationships. EE relationships changed with version 2.6, and the new format is incompatible with the old format. If you used relationships in your templates in the past (I did), your template code needs to be updated when you upgrade. Conveniently, the upgrade routine alters existing templates to use the new relationship format. Even so, I still had a number of PHP errors after upgrading.
In spite of having relatively straightforward templates, I could not get the new EE relationships to work. So I gave up on the native EE relationships and used Playa instead. It worked right away.
The EE upgrade process should be easier than it is at this point. It’s really not that difficult, and it usually goes smoothly. But when there is a problem, it can take some time to correct. Ideally, developers should be able to update the system from the control panel. It would be nice to have the ability to rollback an update from the control panel as well. But I don’t see either of those things being integrated into the software anytime soon.
When the upgrade process breaks existing sites, I think there is a problem. I understand that between major software releases there may be changes made and features introduced that are substantially different enough to require changes to the sites using the software. For example, moving from Drupal 6 to 7, or ExpressionEngine 1 to 2. But EE 2.6 was supposed to be a minor release, and yet the change in how relationships are handled was a big enough change to break existing code. The change to relationships should have been backwards-compatible, or the change should have been held off to the next major release.
One may ask, “why bother upgrading if it’s such a hassle?” Part of my job is to keep client sites current. That usually means that my own site becomes a testing ground for software updates. I also may want to add another site with the multiple site manager. The only way for me to do that is to update the entire system. I may test out the new relationships format in the future, but for now, Playa seems to be the more stable alternative.