Whenever a digital product goes live, product owners worry about how it'll be maintained. That's a common and justified concern. More often than not, this is the moment in the product life cycle in which it'll need the most support. However, it's usual that, at this point, the engineering and design team phase out, and it's not economically viable for the product owner to keep the team fully assigned to the project.
On one hand, this creates a problem for the product owner, as the original product team won't be available to deal with any urgent issue. On the other hand, if you're using an agency, this project will also face problems dealing with regular, unplanned support requests. The team will have to manage urgent requests on the newly launched product while working on additional projects. This forces the team to change context under a firefighting situation and will impact the deadlines of any additional project. In most cases, all products suffer, both the ones that were delivered and the new ones that the team is fully focused on now.
An ideal scenario for both sides contemplates a balanced process that allows product owners to have a team in times of need, and project teams that are not being constantly interrupted after a project phases out. In order to better understand how maintenance on projects works, one needs to dive deeper into what really needs to be accomplished after a project is delivered.
The different sides of maintenance
There are several tasks that need to be executed when a product is live, thus being in what is called a maintenance phase. Understanding the nature of these tasks is crucial to the day to day operations of any digital product. They are usually organized as follows:
Preventive Maintenance: perform regular tasks that maintain the operating status of the software (e.g. apply security updates)
Corrective Maintenance: react to an issue that affected the correct operation of the system (e.g. intervene on a server failure and bring it up)
Evolutive Maintenance: tasks that fall outside preventive and corrective maintenance (e.g. re-write a module to improve performance and support more users, add a new feature, add a new server to support growth, etc.)
Let's see in detail how each of those situations works out.
Preventive and corrective maintenance
In any of the situations that fall under preventive and corrective maintenance, the product owner will need a team to deal with existing issues. But contrarily to what most people believe, the majority of digital products don't need a team working 24/7. All they need is a team that is able to keep an eye on the system and intervene when things all go south. But when the proper measures are in place, modern technology is stable enough to promote support only during business hours.
The time dedicated to maintenance is usually contracted via a retainer. To maximize efficiency, the team usually keeps an eye on several different products, and has optimized processes for services such as server monitoring and security patching, just to name a couple.
However, in some particular cases, you might indeed require 24/7 support, and this service is a beast on its own. In this case, one should be prepared to pay a premium price, usually to a company dedicated only to maintenance contracts. Agencies that are not dedicated to this service will have trouble providing a 24/7 service, as it'll require complex procedures that only work at a much larger scale.
In any case, it's crucial to correctly judge the situation and be able to find the appropriate solution. There's a difference between correcting bugs and building a whole system to strengthen a particular vulnerability. Hiring a full-time support team is almost never the answer to either.
Tasks of the third type - evolutive maintenance - regard mostly business growth and service improvement. Usually, these support projects can be planned and executed in a timely manner. Ideally, you want to put a list of tasks together, and then ask your technology partner to assemble a team and deal with it in a couple of sprints.
How much does it cost?
The very essential of maintenance services
Always ask the following questions when starting a new product:
How will I maintain the service once the product goes live?
Do I need, and can afford, a full-time team?
If I don't have a full-time software development team, how will the product be updated until 24/7 support is needed again?
Work on the answer from day zero with your software development partner. Be open about your concerns, expect that virtually anything can be the origin of a future problem and foresee as much as possible everything that can go wrong. This will help avoid a situation where, after the product goes live, you end up with a problem that can't be solved without conflict. When this happens, the first to suffer will be your users and, consequently, your business.
Found this article interesting? You might like these ones too!