Most of us, people from IT, forget about the post-implementation process.
It isn’t just supporting the application, but providing means to monitor the system health.
Lets say you deploy a web system and for that you have to install the webserver, the database server and your own code. You guarantee that your system will work based on several tests you have coded and perharps some techniques to restart the application in case it fails or reach some limits. But what about when your application stops because of the web server? Or the database server?
If the customer has a team to support them, it is understandable that it is this team’s responsibility to install, monitor and keep the infrastructure needed by your software. If they don’t, a failure on any of those components is a failure on the functionality you provided them.
You can make agreements, draw the component structure, etc. but when things fail, it is your software that has become unusable to them.
Other than that, as time passes, disks fill up, hardware starts showing issues (some of them are SMART – hint! – enough to provide you with alerts) and that dedicated server to a single task is not “so dedicated” anymore (again, if you manage the infrastructure you can have some control over it, otherwise their IT will have to take care of what goes where for them).
One great thing that can be done – and should be done – is documenting certain thresholds on your system and providing alerting and monitoring tools to the customer. Put that in written form and say that when certain threshold is reached they should take some corrective or preventative actions (automate it if you can!) and for other components you can show them that new hardware is needed.
We are so focused and worried with delivering things that we forget about keeping it running.
Putting things on the cloud helps reducing some of your concerns, but shouldn’t be an excuse for not monitoring and reporting things.
A last reason to monitor: know your system requirements. Do you know how much memory your system requires with 10 simultaneous users? With 50? What about 1000? What is the required hardware to recommend your customer to upgrade to?
Monitor. Report. Follow on.