Software Maintenance Cost — The 15-20% Annual Rule
Software maintenance costs 15-20% of the original build cost per year. For a BHD 10,000 app, budget BHD 1,500-2,000/year for hosting, updates, security patches, bug fixes, and minor enhancements.
Software maintenance costs 15-20% of the original build cost per year. For a BHD 10,000 app, budget BHD 1,500-2,000/year for hosting, updates, security patches, bug fixes, and minor enhancements. This rule has held steady across thousands of projects and applies to web apps, mobile apps, and custom enterprise software alike. Neglect maintenance and your software will become insecure, incompatible, and eventually unusable within 2-3 years.
What maintenance includes
Software maintenance is not a single activity. It covers six distinct categories that together keep your application running, secure, and useful. Here is how the typical maintenance budget is allocated:
| Category | % of budget | Description |
|---|---|---|
| Hosting and infrastructure | 30-35% | Server costs, database hosting, CDN, domain renewal, SSL certificates |
| Security updates and patches | 20-25% | Framework updates, library patches, vulnerability fixes, penetration testing |
| Bug fixes and technical support | 15-20% | Bug resolution, user support requests, emergency fixes, hotfixes |
| Third-party dependency updates | 10-15% | Updating plugins, APIs, SDKs, and integrations that change over time |
| Performance monitoring and optimisation | 5-10% | Load testing, speed optimisation, database tuning, caching improvements |
| Minor feature enhancements | 5-10% | Small improvements, UI tweaks, configuration changes, new report types |
Hosting is the largest single line item, which is why choosing the right hosting plan matters so much. Our managed hosting plans from BD 3.5/month include most infrastructure costs in a predictable monthly fee.
The 15-20% rule explained
The 15-20% rule is a widely accepted industry benchmark that has held true across thousands of software projects over the past two decades. Here is how it works in practice:
If you spend BHD 10,000 building a custom web application, you should budget BHD 1,500-2,000 per year (15-20%) for maintenance. That covers everything in the table above: hosting, security, bug fixes, and small improvements.
For a larger project costing BHD 50,000, the annual maintenance budget is BHD 7,500-10,000. For a mobile app that cost BHD 15,000, expect BHD 2,250-3,000 per year in maintenance costs.
The percentage stays relatively constant regardless of project size, though very small projects (under BHD 5,000) tend to be at the higher end of the range because hosting and domain costs are fixed and do not scale down proportionally.
Cost factors that affect your budget
Not all software costs the same to maintain. These factors push the percentage up or down:
- Technology choice. Mature, well-supported frameworks like Laravel, Django, or React cost less to maintain than niche or bleeding-edge technologies. A PHP application costs roughly half as much to maintain as a Haskell application because the talent pool is larger and libraries are more stable.
- Third-party dependency count. Every third-party API, plugin, and library you integrate is a maintenance liability. Applications with 5-10 dependencies cost less to maintain than applications with 30+ dependencies. Each one can break with an upstream change.
- Code quality. Well-tested, well-documented code with automated test coverage costs significantly less to maintain than undocumented, untested code. The difference can be 2-3x over a three-year period.
- Hosting environment. Managed hosting with automated backups, monitoring, and updates reduces maintenance effort. Unmanaged servers where your team handles everything increase maintenance cost.
- Regulatory requirements. Applications in regulated industries (finance, healthcare, telecom) require additional compliance work, auditing, and documentation that increases maintenance cost by 10-20%.
How to reduce maintenance costs
You cannot eliminate software maintenance, but you can control it. These strategies consistently reduce annual costs by 20-40%:
- Choose managed hosting. Let the hosting provider handle server updates, security patches, and infrastructure monitoring. This alone can reduce your maintenance cost by 30% compared to self-managed infrastructure.
- Use well-supported frameworks. Laravel, Ruby on Rails, Django, and React have large communities, extensive documentation, and long-term support (LTS) releases. Avoid frameworks with small communities or no LTS policy.
- Automate testing. A comprehensive test suite catches regressions before they reach production. Every bug that reaches production costs 5-10x more to fix than one caught in testing.
- Implement monitoring. Tools like Sentry, Datadog, and UptimeRobot identify problems before users report them. Early detection reduces emergency fix costs significantly.
- Plan maintenance in cycles. Schedule regular maintenance windows (monthly or quarterly) rather than fixing things reactively. Planned maintenance is 3-5x cheaper than emergency fixes.
- Limit third-party dependencies. Every integration is a potential failure point. Evaluate each dependency critically and remove unused ones during maintenance cycles.
Maintenance vs new development
One of the hardest decisions business owners face is whether to maintain existing software or rebuild it from scratch. Here is a framework to help you decide:
| Factor | Keep maintaining | Rebuild |
|---|---|---|
| Software age | Under 5 years | Over 7 years |
| Annual maintenance cost | Under 25% of rebuild cost | Over 35% of rebuild cost |
| Technology stack | Still supported and secure | End of life or insecure |
| Business requirements | Mostly stable | Fundamentally changed |
| Scalability | Meets current and near-future needs | Cannot scale to business requirements |
As a rule of thumb, if your annual maintenance cost exceeds 35% of the cost to rebuild, it is time to rebuild. If your technology stack has reached end of life (like PHP 5 or Python 2), rebuild immediately for security reasons. For everything else, maintaining is almost always cheaper than rebuilding.
For more on the build vs maintain decision, see our guide on build vs buy software and our app development cost guide.
Support contract options
When engaging a software development partner for maintenance, you typically have three contract options:
- Time and materials (T&M). You pay for actual maintenance work as it happens. Best for applications with variable maintenance needs. Typical rate: BHD 15-30 per hour. Flexible but unpredictable budgeting.
- Monthly retainer. A fixed monthly fee for a defined scope of maintenance work. Typically BHD 200-500 per month for a small application, including a set number of support hours and priority bug fixing. Best for stable applications with predictable needs.
- Annual maintenance contract (AMC). A fixed annual fee covering all maintenance, hosting, and support for the year. Typically 15-20% of build cost, paid in monthly instalments. This is the most common option and directly reflects the 15-20% rule.
If you are looking for a development partner to handle maintenance, read our guide on how to choose a software development partner for selection criteria and contract advice.
Frequently asked questions
The 15-20% rule states that the annual cost of maintaining a software application is typically 15-20% of the original development cost. For a BHD 10,000 application, you should budget BHD 1,500-2,000 per year for ongoing maintenance including hosting, updates, security patches, bug fixes, and minor enhancements.
Software maintenance includes hosting and infrastructure (30-35% of budget), security updates and patches (20-25%), bug fixes and technical support (15-20%), third-party dependency updates (10-15%), performance monitoring and optimisation (5-10%), and minor feature enhancements (5-10%).
Yes. Use managed hosting to reduce infrastructure overhead, choose well-supported frameworks with active communities, automate testing to catch regressions early, implement monitoring to find issues before users do, and plan maintenance in regular cycles rather than reactive firefighting.
Yes, significantly. Maintenance costs 15-20% of original build cost per year, while building new software costs 100% of the original investment each time. However, maintenance costs increase as software ages and accumulates complexity. At some point (typically 5-7 years), it becomes cheaper to rebuild than to continue maintaining.
Security vulnerabilities go unpatched, third-party dependencies become incompatible, the software slowly breaks as underlying infrastructure changes, performance degrades, and eventually the application becomes unusable or a security liability. The cost of emergency fixes after neglect is typically 3-5 times higher than planned maintenance.