Types of Software Maintenance
Corrective Maintenance (Bug Fixes)
Fixing issues discovered after launch. Even well-tested software will have some bugs found in production. Budget for ongoing bug fixes, especially in the first few months.
Adaptive Maintenance (Environment Changes)
Updates required due to changes in the operating environment:
- Operating system updates
- Browser version changes
- Third-party API changes
- Security patches
- Database upgrades
Perfective Maintenance (Enhancements)
Improvements and new features based on user feedback and changing business needs. Most software evolves significantly after initial launch.
Preventive Maintenance
Proactive work to prevent future problems:
- Code refactoring
- Performance optimization
- Security hardening
- Technical debt reduction
Typical Maintenance Costs
Industry Benchmarks
- Annual maintenance: 15-20% of initial development cost
- Example: $200K project = $30-40K/year maintenance
What's Included (Typical)
- Bug fixes and patches
- Security updates
- Minor enhancements
- Monitoring and support
- Database maintenance
What's Usually Extra
- Major new features
- Significant redesigns
- New integrations
- Performance overhauls
Maintenance Models
Retainer Model
Fixed monthly fee for a set number of hours.
- Pros: Predictable cost, priority response, ongoing relationship
- Cons: May pay for unused hours in slow months
Time & Materials
Pay only for work performed.
- Pros: Only pay for what you use
- Cons: Variable costs, may not get priority response
Support Tiers
Different service levels at different price points.
- Basic: Business hours support, 24-48 hour response
- Standard: Extended hours, 4-8 hour response
- Premium: 24/7 support, 1-hour response for critical issues
Maintenance Best Practices
Documentation
- Ensure you have complete documentation
- Keep architecture diagrams updated
- Document all customizations and integrations
- Maintain a runbook for common issues
Monitoring
- Implement application monitoring
- Set up error alerting
- Track performance metrics
- Monitor security events
Testing
- Maintain automated tests
- Test all changes in staging first
- Have rollback procedures ready
- Document test cases
Updates
- Keep dependencies updated
- Apply security patches promptly
- Schedule regular maintenance windows
- Plan for major version upgrades
Questions to Ask Your Vendor
- What's included in your maintenance agreement?
- What are your response time commitments?
- How do you handle after-hours emergencies?
- What happens if we need to switch vendors?
- How do you track and report on maintenance work?