Organizational benefits of upgrading your software stack
You have a legacy software project or one that started only a couple years ago. You choose the technologies that were considered mature or maybe cutting edge at the time. But today there are newer frameworks, tools, servers, libraries, concepts available that are hot and trending.
Should you switch?
Deciding which tool to integrate into you technology stack is a delicate process. It should be preceded by careful research, comparison and proof of concepts. Upgrading surely brings new challenges for developers but what benefits does it bring beyond the technical advancements?
Better selling for new hires
Good engineers don’t like to waste their time with old tech. In a rapidly evolving industry such as IT, people will don’t see any benefit of working with obsolete technology. However with an updated tech stack you make your company more appealing to candiates, as they will feel, their skills will be kept to level, or will they even be able to acquire new skills.
Better keep of existing developers
Similar argument here from a different perspective. The goal is to keep your colleagues at the company as long as possible. So long as engineers will find an ever evolving environment where they face new challenges and solvable problems, they will more likely to stick around. (factoring out other organizational aspects now) Engineers love to sharpen their skills. When people start to feel their skills are eroding, they will start seeking for new opportunities to keep their values.
Cultivating your technology stack
The world today is full of “agile” and “faster to market”, where customers seek new features with every day. You should think similarly about the technical background of your project. Keeping your tech stack up to date allows you to respond new and complex requests faster and with more confidence, because the technical gap to the solution will be narrow. Moreover, you will already have the know-how to use the technology you need. If you let your tech stack become legacy, then when it’s time to innovate, you will have to fill a huge technical gap. This will lead to longer time to market and bigger budget needs. You should always, incrementally upgrade to using newer technologies.
Best ideas come from the engineers
I cannot confirm it with empirical evidence, but in my experience engineers who work closely with the software often come up with ideas about new features and improvements. This is because their mind is always wrapped around how to solve things (I deliberatly used “things” and not “problems” as improvement does not mean there was any problem at the first place), because there are always things to be solved with cool solutions. The emphasis is usually more on the how and not the what, but the outcome is an improvement or new feature. Allowing the experimentation with new technologies prods this innovative thinking.
But be cautious! I am not suggesting to use any technology in your project mindlessly. Keep your technology stack clean and safe, you should stay considerate about your choices. When you upgrade technology try upgrading it for the whole project, don’t use multiple technologies for the same problems at different places in the code, always have an upgrade path.