The company I work for sells a hosted (ie software as a service) software system. We've now been asked if we can provide a local install of the software for a potential customer, sort of the reverse of what seems to be happening else where with people moving towards the hosted model. The question is what we should consider in providing this and where the likely gotchas could be, we've had some discussion in the office but I thought I'd put it out to a wider community. Our app requires a sql server install, some other dependencies (ie tomcat) and installs a few windows services. I'd presume we'll require dedicated (possibly virtual) machines for our system.
views:
36answers:
1Support will get a lot more complicated when you move away from SaaS. Although you're talking about one customer now, you should consider how these issues will scale with 5, 10 or 50 customers.
Will the customer be doing their own backups? If things go wrong and they have to reinstall your software and restore their backups, will they be able to do it themselves or will you need to go onsite? If you do need to do a site visit, what will your response time be?
Will they have admin access to the database? If not, will they be able to manage backups effectively? If so, what happens when they start fiddling and adding their own "performance enhancements"?
New releases and upgrades: With SaaS you can deploy upgrades when you want, and everyone will start using the new version straight away. This sucks if you break something but at least you know where you stand. With individual deployments all customers will upgrade at different times and you'll have to start supporting multiple versions of your software.
Will the customer install updates themselves or will you do it remotely? How complex is your deployment procedure - single click or 10 step process?
What hardware will your software be running on? A dedicated server or a 5 year old desktop that's also running Exchange? If your software runs a report and no-one gets email for an hour, will that be your fault?
None of these are insurmountable problems. Everyone who sells packaged software has to deal with them, but they're things you don't have to worry about when you run the services yourself. It might not be worth the extra hassle for a single customer.
You could also look at going down the appliance route, like Google do with their search appliances. You sell the customer a server with all your software pre-installed and configured. You have full remote access to the box, but they only have limited rights. But their data stays onsite and not off in the cloud. This could be a good compromise approach.