Maintenance Phase
This playboook outlines process for starting a hosting and maintenance retainer.
Projects are typically structured as follows:
-
Discovery Phase Learning and understanding the client
-
Scoping Phase Consulting and planning the product roadmap (de-risk)
-
Design Phase Designing and validating approaches (de-risk)
-
Delivery Phase Development, testing and deployment
-
Maintenance & Hosting Phase Bug fixing, maintenance, support
Retainers are sources of recurring revenue. We need our retainers to:
- Scale with demand for services
- Cover necessary fees
- Provide customers with choice and flexibility
Step 1: Putting the Offer Together
Section titled “Step 1: Putting the Offer Together”A retainer has multiple components:
- A retained time element: more info here
- A service level agreement (SLA)
- A cybersecurity policy
- Fixed cost features/add-ons
- Per-environment features/add-ons
- Per-database features/add-ons
- Support channels
Here is how to put the retainer together:
- Estimate hosting costs
- Agree a starting number of maintenance hours with the client
- Agree which components are to be used (and at what level, i.e. priority or basic SLA?)
- Use the pricing calculator to find out the recommended and minimum price for the retainer.
- Save pricing results as a PDF and store them in the client’s project folder under “Quotes”
- Put a quote together for the client and send them a Hosting and Maintenance Onboarding Guide (ask James about this)
Step 2: Signing the Agreement
Section titled “Step 2: Signing the Agreement”Once the client has verbally agreed, use the contract template to put the agreement together.
- Find the contract template here
- Clone the repo, ensure you’ve got LaTeX configured, and create a new branch off
mainfor the client you’re onboarding - Remove parts we don’t need (coloured blue or light blue)
- Format everything nicely and add the client’s details.
- Save the generated PDF to the client’s project folder under “Contracts”
Once that’s done, and other Novatura team members have proof-read and reviewed the agreement:
- Use Signable to create a new Envelope, and follow the steps to add Name, Date and Signature input fields.
- Configure Signable to send the contract to relevant parties, with 3-5 day reminders set.
- Sign the contract and wait for the other parties.
- Once you’ve got a signed contract, save it to the client’s project folder under “Signatures”.
- Add the client to the Current Retainers spreadsheet
To finish onboarding the client:
- Create a new Linear project under the “Retainer Team”, and ensure it’s hooked up to support channels (ask Max about this)
- Add the client’s environments to the Audit Schedule
- Schedule a quarterly/bi-annual catch up with the client to ensure service delivery is meeting expectations and receive feedback
- Ask James to update the financial forecast
Step 3: Billing the Retainer
Section titled “Step 3: Billing the Retainer”We bill retainers backwards. For hosting and maintenance work completed in January, an invoice is sent at the end of the month containing:
- Hosting fees (variable)
- Maintenance fees (fixed)
- Retained time (fixed)
- Overage time used (variable)
Hosting fees are typically what we paid, plus a 50% markup. See example invoices, i.e. SHIELD-HOST-1 for reference.
Create a recurring calendar task to create H&M invoices. The typical reference to use is the shortened client and the month as <client>-HOST-\<MonYY\>, i.e. SHIELD-HOST-Jun26.
- Ensure we have a recurring calendar task to remind the account manager to invoice the client
- Add up the different hosting fee elements from our providers
- Generate a timesheet on Clockify for the month’s maintenance work and save the Excel file to the client’s project folder under “Maintenance Timesheets”.
- Create and send the invoice in Xero, ensuring you attach the timesheet.
Step 4: Reviewing and Amending
Section titled “Step 4: Reviewing and Amending”TODO: This section hasn’t been completed yet.
- Basic agenda for review meetings
- How to make changes to agreement terms
Step 5: Offboarding a Client
Section titled “Step 5: Offboarding a Client”TODO: This section hasn’t been completed yet.
- 30 days notice needed for terminating for convenience
Q: What is a defect?
A “Defect” is a bug, which arises through fault of our own, i.e. we implement a feature incorrectly. A third party issue, which is not our fault, would not be classed as a Defect.
Q: What is retained time for?
A: Time that keep aside on a monthly basis to do these jobs:
- bug fixes (Defects and other issues)
- software updates
- security updates
- security audits
- SSL certificate management
- minor content changes or improvements
- downtime monitoring
- runtime error monitoring
- database backups
- acting in a support capacity (this one probably needs adding to the contract)
An important feature of retained time is, it is a fee charged for reserving and allocating time in our schedule to perform necessary work. It is not charging for work done, and while it is a target, we don’t have to use it all if we don’t need to.
Q: What is a warranty period?
A: This is a 30 day period, where the client can raise as many bug reports as they like with regards to Defects in the system. Any resolution of Defects would normally draw down from the retained time, but during warranty, this is not the case.
The most important thing to note is that this case of “unlimited fixing” only applies to Defects, not any other maintenance work (of which there is plenty).
Q: What happens when a customer has not signed an agreement?
A: In the event of non-signing, we cannot actually complete any maintenance work, as that work is not protected by an agreement and the client has not agreed to retain time. Therefore the retained time component should not be scheduled or charged until the contract is signed. They must still pay for hosting and other elements of the retainer, i.e. cyber policies and SLA.