Maintain your software


Why is it important to invest in project maintenance?

Maintenance is Boring but Important!


Maintaining software might not be your most prioritized task, but it should be one of the most important investments for your business. It could save resources, time, and money. It doesn’t matter what software you have: system, mobile application, desktop, webshop, integration, etc, the same approach applies for each of them. 


Yaroslav Admin, one of the software engineers at Softwerk, explains how future change requests and maintenance are correlated with each other.

To keep a piece of software or project relevant, it must continuously be improved and maintained. This usually involves fixing bugs, adding new features, optimizing for performance, updating dependencies, etc. Why is it important? The most common case is when the software hasn't been updated for a while but requires the implementation of new features. It will be impossible without extra effort. It varies from project to project, but the effort could be from a few weeks to a few months. 


The investment in maintenance is a good opportunity to keep the project healthy and updated at all times. You will know what the expenses of updating will be in the future, and how to keep your competitive advantages. If you count one day a month of maintenance during three years it will only be 36 days in total. Planning these days in advance will help you not to spend unnecessary time in the future. 


In software development, there is a tendency that customers try to avoid the maintenance part because they think there is no direct output in value. Afterward, when the customers are coming back after a few years and want to expand their software, they quickly realize that minimal implementation requires significant project reconstruction.  


Here are Yaroslav’s recommendations on how to keep the software in a good shape:


# Update project dependencies

Although it may sound like a useless activity, updating project dependencies regularly is quite important. Regular updates are usually quick and painless, but if neglected over a long period they accumulate into a critical mass. If this happens, the development team has to invest a significant amount of time to revive the project or even redo everything from scratch. We recommend performing dependency maintenance at least every six months.


# Refactor out deprecated code

Whether it is one of the programming libraries used in the project or a third-party provider you have integrated with, monitor their communication channels to learn when something gets deprecated. Such notices are usually posted well in advance, so you will have enough time to adjust the project’s code and avoid stress and unpleasant surprises when a deprecated service is shut down.


# Install security updates

This critical activity is often forgotten even in modern times when new security vulnerabilities are found, reported, and patched almost every day. Although most of the attacks require high qualification and a targeted attack on the server, every now and then a vulnerability that affects the whole industry is discovered. Better not risk it and stay up to date to ensure service availability and protect users’ data.