The Web Developer’s Guide to Maintenance Contracts
Anyone who has developed a web front end, for a site or a web app, knows that handing over the code isn’t the end of the story. I’ve been involved in projects that seem to never end, and during the lifetime of the project, there seems to be endless maintenance. This is great if you’ve been savvy enough to make sure you have a robust maintenance agreement that covers all possible eventualities. If you don’t have this, you may end up at best, absorbing a lot of cost to your business, and at worst going out of business.
I happen to have been on both sides of a web development contact template, in that I’ve worked as a provider for a web app front end, and I’ve also engaged a web development company to help me create a web app UI/UX. Seeing both sides of the coin has given me an inside-out view of what can be a very complex area of running a web development company.
In this article, I’ll be looking at some of the ins and outs of maintenance contracts for web developers, and how best to approach the creation of them. I’ll also look at the sort of sections/clauses to include in a web developer maintenance contract.
Why Even Bother to Have a Maintenance Contract?
Why even have a maintenance contract is a reasonable question. You already have a contract to create the front end. Once you have completed that contract then that should be the end of it, shouldn’t it?
You could do that, but as you well know, web UI development is a fluid entity and often dependent on underlying frameworks, like WordPress. Having a maintenance contract means that the framework can be maintained, and kept efficient and secure – giving your client a better experience of your services. Maintenance contracts with regards web developers, often involve things like keeping plugins up to date, ensuring that the CMS code is up to date and patched to prevent security issues, and performing regular tests to make sure the site is working correctly.
Having a maintenance contract is positive for the web developer as it allows you to have a continued contact with your client. It is positive for the client as it means they have peace of mind that their site is being maintained.
What’s the Difference Between Support and Maintenance (and Enhancement)?
As a web developer, you need to decide if you want to continue the relationship with your client after you’ve handed over the code. This is not always an option, of course, most contracts will specify that the code is supported and maintained after it has been released. It is important in your contract to outline exactly what is included in support or maintenance. If you don’t do this, you may find that your client wants to add a few extra feature tweaks under the guise of maintenance. These tweaks will cost you money.
When you offer support it generally means that you support the use of the front end. So, for example, you may have an issue with a configuration, and support clauses will cover this. The level of support is often outlined in a ‘Service Level Agreement’ or SLA which is often an appendix to a contract. SLA’s lay out exactly what level of support is offered, how long the support lasts, and any costs associated with it. You might offer different levels of support depending on the severity of the issue.
This is generally seen as offering maintenance of the site and underlying CMS. Under maintenance, you might offer to keep a WordPress site up to date with the latest plugin updates, remove malware, or make small contextual changes, like font size, for example. Again, you can set out terms of delivery on maintenance items based on severity.
Any major change to the developed UI/UX is seen as an enhancement. For example, a recent project I worked on required that a large portion of a form was changed considerably so that the UI/UX was modified beyond the original remit – this was way outside any maintenance, and instead was an enhancement, and was costed as a new project.
What Clauses Are in a Maintenance Contract?
You should have as a minimum the following clauses in a maintenance contract:
- What the contract covers, i.e. the type of work that could be carried out on request
- Fee schedule
- Delivery schedule i.e. timescales for performing the task
- What is expected of the customer, i.e., timely payment, access rights to the site, etc.
a. In this example of a maintenance contract by SlamDot they have an excellent section on ‘Customer Acknowledgments’ which covers a multitude of issues that could arise: https://www.slamdot.com/maintenance
- Clauses to cover your indemnity and liability (see also contract example above)
- You may also want to add in various non-disclosure clauses to protect both parties from Intellectual Property disputes
- Termination clause so either party can close off the contract with notice
Another example of a website maintenance contract is here: https://www.docracy.com/7h6omj9c0y/website-maintenance-agreement
How Long is a Piece of String (or Maintenance Contract)?
How long you decide to maintain the site is really a negotiation point when creating the contract. You can negotiate a rolling contract or a renewable one. A rolling contract should still have a termination clause in to allow either party to pull out. A renewable one will need to have an alert setup to ensure that its renewal is negotiated as terms may change.
One thing that you do need to consider, which is especially pertinent as a freelancer, is how to handle a situation where you are unavailable to perform maintenance. Do you have the ability to hand it over to another freelancer to take over, for example?
How Much to Charge
This is again something you have to decide upon which works with your normal rate. You need to factor in the expected time to fix issues. For example, if an issue is set as a severity 1 with a turnaround time of 24 hours, then you may want to set a higher charge for this work, than an issue that is a lower priority and can be done to your own timescales.
Some freelance web developers, however, like to charge a daily rate for work performed under the maintenance contract, to keep it simple. It is a good idea to have a number of package options for delivery of maintenance, and let this become part of the negotiations.
Build Your Own Maintenance Contract
I’ve gone over some of the main areas of a maintenance contract for web developers and you can see there are lots of things to consider. Having a maintenance contract for your clients is a great way to keep client contact, and it adds real value to your relationship with your clients.
Offering a maintenance contract also shows the client that you are reliable and knowledgeable about your area. One warning is to make sure that where you do have a lack of knowledge, perhaps in web security, that you either have a contact with another freelancer who you can call upon, or you become educated in that area. In terms of web security, for example, learning platforms, like Coursera, offer a number of cyber security courses and the Open Web Application Security Project (OWASP) have a massive amount of information around web security and techniques to manage risks.