As much as two-thirds of our revenue derives from website maintenance services. At NP Group, we maintain many of our clients' websites, applications, and mobile apps post-deployment. However, we also onboard plenty of customers who need support that their original developer can't provide for one reason or another. This isn't unusual – many agencies either aren't interested in providing these services, can't support a maintenance model, or are more focused on larger build-out projects.
Either way, the first project that new maintenance customers need to be addressed typically centers around onboarding. Luckily, the process is generally similar between customers. Regardless of complexity, tech stack, or other specific factors, the methodology for onboarding typically follows the same series of steps.
Step 1: Information Gathering
The first step in a new maintenance relationship is information gathering. Before any work can begin, a variety of things need to be gathered by a maintenance team. For the most part, the materials required are related to the daily operations of the website or application. This may mean credentials to hosting environments, platforms, and any third-party tools in use.
Typically, we would gather this information during a kickoff call. These calls are an excellent opportunity to introduce the members of both the client and agency teams, set expectations, and walk through the process of onboarding. It's also a great time to initially discuss the first series of changes, updates, or other features that interest the client.
It's essential that during the kickoff process, all parties can identify the tools that are in place and the access that is required for the maintenance relationship to begin. Ideally, at the end of this initial meeting, arrangements have been made for all access to be relayed to continue the onboarding process, and the maintenance team has a good understanding of current systems and processes.
Step 2: Development Environment
In almost every scenario that we see, we will recommend the provisioning of a new development environment. There are a few reasons that we require this. First, a development environment will enable us to quickly learn how a website or application was built, operates and the level of effort that may be required to bring it up to date. Secondly, a proper dev environment is the first step of crafting an approach to DevOps. It wouldn't be possible to have an adequate DevOps process without a development site in place.
Finally, the development environment is essentially the first deliverable in a maintenance relationship. It is through the development environment that all future steps in the process can be completed. It's a low-risk way to evaluate the proper next steps without affecting day-to-day operations.
Step 3: Triage
The word triage may sound scary, but in reality, it typically isn't all that bad. Now that we have the development environment in place, we can begin to standardize and normalize how the website or application is functioning. This process can vary greatly by client. Depending on the complexity of the property, and the quality in which it was initially built, this can be relatively easy, or it can open a can of worms.
Our goal in this step is to ensure that the site is functioning at a level of best practices. For most client relationships, this would mean a software update and audit to ensure everything is operating within industry standards and a code review to learn how the property was built.
Depending upon our findings, we may or may not recommend changes. For example, if we see that a website is not following proper procedures from a security perspective, we may recommend remediating that situation before proceeding much further. Also, this is the stage in which we would run a series of updates, if called for, across the entire property. With sites that were relatively well kept, this isn't always an issue. However, for sites that may not have been adequately maintained, this can often turn into a project all by itself.
Our goal during the triage phase is always the same: to ensure that we can redeploy this site in a safe, secure manner. By doing this correctly, we can ensure that there will be fewer surprises later.
Step 4: DevOps
Good DevOps are essential these days. Without going into too much detail about what DevOps really means, for the purposes of this post, let's just define this as a set of procedures and tools put into place to enable future deployments to progress smoothly (and quickly). A proper DevOps process also allows for seamless rollbacks if a deployment results in some level of failure.
The provisioning of a development environment is the first step to a good DevOps scenario. From here, we would typically recommend providing a staging and production environment if one already doesn't exist. Having these different environments in place allows us to manage the relationship between content editors, live users, and developers.
Of course, DevOps vary somewhat depending on the type of property we are maintaining. But for the most part, the theory stays the same. Our team can recommend the best approach for your organization based on the type of property and any internal policies or preferences that may exist. When proper DevOps are in place, the next phase becomes much simpler to execute.
Step 5: Deployment
Now that we have a proper development environment and DevOps, we can proceed with initial deployment. I always prefer to deploy even if the changes were not dramatic, just to ensure that the process is working.
Of course, every maintenance relationship can be a little different. In some cases, the initial deployment might include significant changes or functional amendments to the code. And in other cases, there may not be many changes, and we're simply deploying to test and verify the process. Either way, an ongoing maintenance arrangement requires that this step happens and that any adjustments are made at this point rather than when there are other pressures in the future.
Step 6: Continuous Improvements
I suppose it can be said that it isn't until this step that the actual maintenance relationship begins. I always hate using the word "maintenance" because there is more than just maintaining involved. In reality, maintenance is really a term that includes keeping something working and simultaneously making it better. The idea of continuous improvement is central to any client-agency relationship. In Japan, they have a word specifically for this: Kaizen. Now, finally, that word is becoming known in our part of the world. That's a good thing.
How continuous improvement happens depends on, to a certain extent, how the client would prefer this relationship proceeds. In some cases, clients have a well-developed marketing or product team, and they are really interested in having the agency take orders or perform tasks. In other cases, clients are looking for an active partner in their day-to-day tasks. Either relationship works for us, and ideally, it was agreed upon during initial conversations and/or the kickoff call.
Continuous improvement is really what makes the medium of the Internet so interesting. Websites and applications are never truly finished, per se. They are a constant series of adjustments and enhancements based on performance data. In many ways, the old cycle of major redesigns or rebuilds every few years can be interrupted with a proper approach to continuous improvements.
What About Server Uptime and Monitoring?
Server uptime and monitoring is a necessary component of a maintenance relationship. At our agency, we provide this service, including monitoring, security updates, and 15-minute emergency response. However, whether or not this service is needed depends on your host and the services they provide. For example, services such as AWS offer dedicated instances or servers as their hosting solution. These are potent tools; however, they require the upkeep that Amazon may not necessarily provide. For services like that, it makes sense to consider a 24/7 maintenance arrangement.
When this service becomes part of a comprehensive web maintenance relationship, we build installing the monitoring component into triage. This way, clients can be assured that their sites and or servers are properly monitored even before initial deployment.
In wrapping up this post, I wanted to reiterate the importance of having a well-crafted maintenance arrangement for your website or application. Keeping digital properties up to date is essential for the safety and security of those properties, but it's also crucial to focus on how you can, within budgetary constraints, continue to improve how your sites operate. Get more information about our maintenance services.