Many clients want to know the ongoing cost structure for their application after development. Relative to the high upfront cost to develop an application, the ongoing costs are usually low.
Maintenance tasks typically involve:
- Fixing crashes or errors reported by users of the application. Our automated bug tracking software helps us monitor bugs in the wild. If the client has done a thorough job reviewing deliverables over the course of development and the developer is a high-quality developer, the number of errors is usually low, if they even exist at all.
- Adding features requested by users after release. It is difficult to anticipate the cost of feature requests without knowing what they are, and the cost for this depends heavily upon the features requested.
- User support, an ongoing cost that varies depending on the popularity of the application and how easy it is to use.
- Networked applications may require hosting and administrative costs. For example, a server might need to be rebooted occasionally.
- Scaling costs. If your application becomes popular and uses a server or shared database, additional servers may be required or code may need to be optimized to scale more effectively to maintain high performance with more users.
Rather than signing lengthy recurring contracts, we generally recommend adding a short-term (30-day) maintenance contract to handle minor issues after an application’s release, particularly for networked applications. In our experience, this is usually more than enough to make minor bugfixes and add a few features to an application after release. Major changes or additions that will not fit in the maintenance contract can be negotiated as a separate project.
Maintenance tasks typically contribute 10% of the total project size for a standalone application, and 30-40% of the project size of a networked or server-based application.