There is a big myth in the world of software development. If it works, don’t touch it. Although this statement seems to be very true, this approach harbors many dangers both technically and culturally. In this article, I will evaluate this danger not technically, but from the perspective of the software development team.
Good developers tend to continuously improve themselves. They learn new technology, they learn new principles, they do their best to apply “best practice”. The “new” here could be a language, a framework, an approach or the way other developers around the world write code. There are people or companies that influence the coding. These people shape the industry, and good developers take their share of the credit and set their own direction.
If you want to build a team of good developers, you need to provide them with an environment where they can develop themselves technically and evaluate new technologies. You should encourage them to use new technologies and update old codebases. You shouldn’t stifle development and change, and you shouldn’t insist on practices from years ago. You should give the team a technical challenge.
I will support this with an example that is constantly on the agenda. PHP has evolved over the years and has moved away from its old criticized structure. It has quality frameworks such as Symfony and Laravel. What makes PHP developers happy now is to use the approaches of these frameworks or to be a competitor to them. What I mean by competitor here is not a product. I mean the desire to do better on the criticized aspects of these frameworks. If you still want to apply these practices because the 2013 version of PHP “works” on your system now, I’m sorry, but you’re missing out on good developers. The programming world is discussing very different things and we can’t stay 10 years ago.
For this reason alone the old codebase is doomed to be updated. Let’s not touch it if it works, but let’s create the infrastructure to update it. Let’s make the system testable, let’s write tests, let’s try to update the infrastructure little by little. Good developers will enjoy doing this. Because at the end of the day, there will be the happiness of updating an old codebase.