Now a days technologies and frameworks are evolving so randomly, sometimes I feel keeping code bases updated has become really messy. What are the approaches companies take to keep their code bases updated...?? Are there any best practices..??
I run a startup. It is mind boggling to have to keep updating the codebase for every new framework or library touting to be the best. Running a business means consistency and performance for less buggy maintainable codebase.
The mature thing is to keep using the same stack and only modify for newer projects and that too only if there is a warranted speedy development or something game changing. If not, stick to the basics and develop best practices within team and organizations to build things out.
My 2 paise.
Updating just because their is a newer version of language or new tool has arrived is seriously foolish. It requires a lot of effort in migrating / testing when your code base is big.
Companies don't usually change versions / tools untill their is a major breakthrough or external requirement.
I'm working on a project that still uses Java 6, Spring 3.x and Angular 1.x while almost 3 iterations of all languages / tools have arrived in the market. ( Their are still no issues in usability, scalibity or any bottleneck with older stack )
Though we are also migrating the same to latest market standards due to customer demand but, that made project to hire new team of 20 + new developers.
Though in our case, our older code is mostly non- compatible with the new versions of framework /libraries.. we decided to rewrite it completely. Started with the major user facing part and developed incremently.
Best practise: choose your frameworks wisely.
Update only what needs updating (considering dependencies). Read the changelog to see if any security fixes are required (if not, why update?) and properly test the update before migrating to production. (And highly likely: dream about automated testing for the next project)
It depends on the code. If it is mission critical and has to be updated, companies will update their code only when there is a need to do it.
Otherwise, it is write fast and retire fast. You write a small service, use it for a period of time, enhance it if required and retire it at end of life.
Vishwa Bhat
Technology Enthusiast
As far as I know, they won't keep all of their code bases updated unless the need arises. Changing the current working code base is a difficult job as you've to ensure that all the functionalities across the application is working same as before after updating it. Of course, any new modules/micro-services would be written with best version of the framework/language provided it does not break the interaction with other existing modules.