Remember, legacy code is still legacy code for a reason. It works, and it's too complicated and large scale to correctly replace. Sometimes a new shiny version is not the best option. For example, python 3 caused a bit of a stir over compatibility.
In practice, some things to remember :
- Replace deprecated methods
- New language optimisations may provide better ways to do thingsomething, check the chagelogs
- Dependecies/Compatabilty, what is your application interacting with?