I've been using Unity3d for about 5 years already and as you may know builds weren't as stable back then but this is very common with early software releases.
I remember having to redo so much work just because I had to upgrade to the latest and greatest version of Unity3d, well I still like to upgrade but I wait few weeks before I do so to make sure Unity releases a patch and hopefully by then all of their premature bugs have been corrected.
Well today, I decided to upgrade to Unity3d 5.6, I normally don't just upgrade but I have a process I follow to make sure I don't end up working crazy hours just to upgrade my game engine. Below I list some of the tasks I perform prior and post upgrading to the latest version of Unity3d.
Pre-Upgrade to Unity3d
You have to use source control, if you don't, make sure you backup your project. If you are using git or any type of source control then just commit and push everything and add a "tag" in your commit with a comment that describes the state of your project before upgrading it. This is critical because Unity3d automatically may modify your source code where it applies to comfort to their new version.
Make sure you absolutely have no other priorities before upgrading, I would recommend looking at Unity's release notes before upgrading but make sure you don't just play the rat race and keep upgrading Unity instead of working on more important project tasks. I want to make sure you've prioritized these tasks, do not just upgrade to be cool and say you have the latest, instead plan ahead and make sure it doesn't interfere with your project timeline.
Find out if there're any breaking changes, I know a lot of times you won't encounter these unless you upgrade but you could easily setup a new virtual machine or a physical box which can host the new version of Unity, then test test test a lot on that environment before upgrading your production environment.
Post-Upgrade to Unity3d
Test as much as you can within the editor, here you want to do as much regression testing as possible. For instance I said in my latest tweet that it was a clean upgrade when I moved from Unity3d 5.3 to 5.6, however it was after my tweet that I found a lot of issues with 2D colliders, I had instances were ladders were not even working because of the way Unity3d 5.6 was building the colliders where before the upgrade I had no issues.
Device Testing, if you are building to iOS/MAC/PS4/XboxOne make sure to do regression testing on those platforms as well.
That's it for now guys but the take away here is to ensure you plan ahead, make sure you stay up to date but also balance how much of your time is needed and also to keep in mind that upgrades are simple but regression testing can be a burden specially if you don't do it right then.
Thank you for your time and don't forget to subscribe to my newsletter, also be sure to find me at @dilmerv and stop by and say hi as I love to chat with everyone.