Это не зависит от продукта. Это может быть в рамках библиотеки даже одной маленькой. Время идёт, технологии эволюционируют, стоит адаптироваться и быть наволне. Но не скатываться в каргокульт.
Если, например, какая-то либа устарела, делается так:
1. выбираются те функции, без которых никак;
2. ищется новая либа;
3. составляются все необходимые тесты;
4. пишется фасад, из которого можно вызвать обе либы и ещё другие (можно через заглушки пока сделать);
5. если с тестами 2-й либы всё ОК, переключаем фасад на неё; если нет - возврат на п.2
Вот такой алгоритм :)
С фреймворками же посложнее будет (((