Launching software is not the end of the project; it is the start of its working life. Rules change, staff change, browsers and phones update, and users find things they want. Without a support arrangement, small problems become emergencies. A good maintenance contract keeps the system healthy at a predictable cost. A poor one is a monthly fee for very little.

What maintenance usually means

  • Corrective: fixing bugs and errors found after launch.
  • Adaptive: adjusting to changes in the environment, such as new PHP or OS versions, payment gateway updates, or changes to VAT or reporting rules.
  • Preventive: security patches, performance checks, backups and monitoring.
  • Enhancements: new features and reports, normally priced separately or from a pool of hours.

Clauses to look for

  1. Scope. Which systems, modules and environments are covered, and what is excluded.
  2. Response and resolution times. By severity: a system-down problem and a cosmetic issue should not wait equally. Define support hours in UAE time.
  3. Channels. Ticket system, email, phone or WhatsApp, and who the contact is.
  4. Backups and restores. Frequency, retention, where copies are kept and how often a restore is tested.
  5. Security updates. How quickly critical patches are applied.
  6. Hosting and monitoring, if included: uptime target and alerts.
  7. Change requests. How new work is estimated, approved and billed.
  8. Reporting. A short monthly summary of tickets, time and recommendations.
  9. Documentation and source code. You should hold the code and documentation, so you are not locked in.
  10. Term and exit. Notice period, handover help, and what happens to data if you leave.

Pricing models

  • Fixed monthly retainer covering a defined scope, simple to budget.
  • Hours bank that you draw on for fixes and small changes.
  • Pay as you go at a day or hourly rate, flexible but slower to get started in an emergency.

Choose according to how critical the system is. A billing system used daily deserves defined response times; an occasionally used internal tool may not.

Questions to ask the vendor

  • Who will actually look at my tickets, and how many people know my system?
  • Can you show a sample monthly report?
  • What happened in the last serious outage you handled?
  • If I want to bring support in-house later, what do I receive?

A sample severity table

  • Critical: the system is down or data is at risk. Respond within hours, work until fixed.
  • High: a main function fails and there is no workaround. Respond the same working day.
  • Medium: a function fails but a workaround exists. Respond within two working days.
  • Low: cosmetic issues and small requests. Schedule into the next release.

Agree on the table, and on the hours and days the vendor works in the UAE week, before you sign.

For our own projects, installation and support until the product is fully running are included, and ongoing support can be agreed separately. Read about it in how to choose a software development company and the custom software process.