Friday, November 4, 2011

Designing Applications for the cloud!!!

Cloud computing is the BUZZ word these days. Applications for the cloud really sell as they are mutually beneficial to both the software vendor as well as the customer. Software vendors get a recurring stream of revenue (a dream come true for Software companies) while the customer gets a tested solution instantly at a lower TCO (Total Cost of Ownership).


Think big and design your applicaiton for hundreds of customers, after all that's the beauty of online systems; more customers and more revenue.


Since this is a relatively new concept people tend to design good applications but miss out on some important fundamentals and end up re-engineering the product after it's release. I will briefly explain some points that will give you on the insight of designing web applications for subscription purposes. No matter what the purpose of your application is, the following points apply if it is intended for subscription to multiple customer online.


Multi-company Support:
Your application should be able to support multiple companies running simultaneously. Don't make the mistake of deisgning your application for a single company and duplicating instances for each new customer. When talking about online customers, you can never forecast the growth and once you have more than 10 customers, maintaining and updating the application becomes a hassle. converting it to multi-company version then can be a handful so from day one, build support for multiple companies in your application.


Payment:
If it's an online application then the scope is naturally global. Thank God for giving us VISA, MasterCard and other payment solutions. Make sure your application has support for recurring billing on a PCI-compliant solution. This way you will be able to get fruits of your hardwork.


Self setup:
Another important factor is the ability of new customers to instantly setup their account and start using the application (whether free trial or after payment). When searching and signing up for online solutions, customers do not tend to follow-up if they are asked to wait for their accounts to be active. Even if you are manually approving signup applications, automatic setup reduces the overhead of manually creating instances for each customer separately.


Application admin
Every customer will have an administrator, maybe even multiple admins depending on your offering. However, customers will always be customers; they will forget their admin passwords and will lock themselves out of their accounts. So be sure that you have an application admin who can log into any customer's account and help them with these basic problems.


Domain Aliasing
Once your fishing rod (marketing) starts catching bigger fish, you start getting requests such as, can I white-label the solution ? Have an interface that looks completely like my own corporate website. I don't want to use your application URL, can I use my own. This is when you are supposed to feel good about your marketing efforts but if you aren't domain-aliasing ready then you will feel the pressure with bigger customers. If your application is domain aliasing ready, then you don't need to worry about a thing.


Time zone, multi-currency and multi-lingual support are additional features you can throw in to juice up your feature list but they are not mandatory. That's about it for the basic necessary features you need to put into your cloud applications. Hopefully you get some benefit from this extract designing your next cloud application.


Cheers!

No comments: