Resource planning for cloud applications can be tricky for some organizations. In the old client/service world, companies had to plan for staffing on multiple levels. However with the advent of “the cloud”, resource planning for cloud applications is quite different. Before, organizations planned for staffing an IT/business ops team had to consider resources for network, hardware, security and even the build out the hardware at a co-location facility. With cloud applications, these resources are only needed in a limited fashion or not at all. For example, you may require security and network, however their roles are reduced to ensuring standards already in place and that users of the new cloud application can actually get access to the critical business function and data they require to do their jobs. Here are three critical areas to consider before you plan the resources to support and run your cloud application(s)
Environments and Complexity of System
Prior to securing the final number in resource planning for cloud applications, you must consider the complexity of the cloud environment. For example, has your cloud application been customized, and therefore, not use a lot of the baseline ‘out of the box’ features? If so, the resources required to manage and maintain your environment will be higher. However, if your cloud application is pretty simple and core features of the application are being used, less resources will required. I once worked with a company that only had 300 users, but this company had heavily customized the core functionality, thus requiring 3 IT staff to manage the environment versus the ½ resource if the company had leveraged the ‘out of the box’ functionality. As you know, the main factor for this increase in staff is you must account for your custom code working with the new features, testing cycles will be longer (more code to test) and support for the application will require additional skills. This all adds up to costs, time, and scalability in the long run. So while the business may get the functionality they want, its critical to know the long term cost of maintaining the application.
Number of Users
The number of users accessing the application is a critical component in resource planning for cloud applications. Its simple math in that if you have more users, you will need more IT / business ops resource to support those users. A generally good principle for Salesforce.com admin support/IT for an instance is 1 Salesforce Admin per 500-700 users. Again this can vary if there is complex custom code (see above) or several integration with upstream/downstream apps. With that being said the “1 admin to 500-700 users” guideline generally works. For example, if you are launching a global Salesforce (or other cloud application) to 5000 users in all time zones, you should have any where from 8-10 Salesforce admins, and 4-5 developers to support the environment. In previous roles in the past, I worked with a Salesforce environment that had over 26,000 users internally and 200,000 customers externally with multiple integration layers. With this, the complexity in staffing this model can be tough, but the same core determinants apply. One critical add I would suggest is to never staff your internal IT/Business ops teams to 100% capacity. To run a good operation, staff it about 80%, meaning you staff your teams to support 80% of the work. Why? Well, if you have lean times, you are not letting go of staff. To fill in this gap of 20%, you simply do a ‘Staff Augmentation‘ model that will allow you to operate effectively with the ebb and flow of requirements and funding that tend to go up and down through the years. There are many staff augmentation firms out there to help you with this, my personal recommendation is UST Global. For a better view of this model, see graph below on how this works in practice through the fiscal year.
Global vs Local
Is your company global or regional? This should be a consideration for two critical aspects of resource planning for cloud applications. The first is for global support, if you have a user base that is global, you need to plan for a support (and maybe the IT team) that is global as well. This is to ensure business operations run smoothly even when you are sleeping. Your company will take huge risks if you staff all in one geo-location. The other aspect of which is important is local cultural and language considerations. No matter where you company is headquartered, local culture and language is different around the world. You need a workforce that can both speak the language and work with the local users in their region.
In summary there are alot of variables to consider when resource planning for your cloud applications. I would like to offer the following simple spreadsheet I created and have used at a few Fortune 500 companies recently. What this spreadsheet does it it gives you a simple formula to determine staffing for Level 1, Level 2 & Level 3 Support for a cloud application such as Salesforce. You can apply this to any cloud application and certainly can apply it to not only support, but business operations, development, testing, business analyst ect. The example below is based on a Salesforce ServiceCloud instance with 6000 users, and takes into account customization and portal users.
Once you have a solid resource plan in place, you can place you can prep for other critical tasks such as release management and execution. Good luck and shoot me a message on twitter (@hectorperezjr) if you have any questions.
Hector Perez Jr