Creating a salesforce release management for the first time
If you are an enteprise organization and want to get started on managing your salesforce releases, there is always questions on where to start, how do we fit the release schedule within our your corporate IT Releases and manage the user requests etc. So this blog would help you to get started and move you in the right direction.
- Governance for user requests.
- Categorize releases for quick, medium and high complex needs.
- Automate deployment to fit your release schedule.
- Create support and training to follow up on release.
Governance for user requests
Collect all your user requests in a request system which can be a project request application, case management system or just use salesforce to log the requests. For each request, identify the effort involved to get it done. You can categorize the effort as less than a week, more than a week or a days job if it is a configuration change. Now you can categorize the requests as simple( 1 day job), medium ( less than a week) and complex( more than a week) and keep them in 3 buckets.
Create a customer governance council which would include one representative from each line of business, IT and management side. The purpose of the customer governance council is to prioritize user requests and allocate them to the corresponding releases.
Once the requirements are categorized based on effort, you can start setting up a release schedule with the following categories.
- immediate release
- minor release
- major release
An immediate release is a release which can be done in an adhoc manner which involves very simple changes like reports, page layouts etc. All your requirements which are categorized as simple should be assigned for immediate release. If you want to keep a schedule for this, choose Wednesday of every week as a release day for immediate releases.
Minor releases would have all the requirements of type medium which can be done in a week. To have a schedule you can make it a biweekly release every month where all the minor releases would be released to production.
Major releases would involve complex changes like integration, apex jobs etc and should include all your requirements which are more than a week effort . This should include your complex requirements type. These can be planned for release every month or bimonthly to fit your corporate IT needs if there are dependencies with external Legacy applications.
To fit ongoing needs, you would need to think about automating your deployment process using continuous integration. Using tools like subversion, github all the code components like apex classes, visual force pages should be checked in on a daily basis by the developers . Ant scripts should be used to deploy the code components to your environment sandboxes on a regular basis to fit your release schedule .
For configuration changes, you can use changesets or ant builds to deploy configuration changes.
Support and Training
This is the last piece of the puzzle which needs to be addressed. You should have a support team and a process to handle user support needs and inquiries. Issues should be logged in a system and categorized and fixed and deployed on a priority basis.
Communication is the central part of the entire release management process. Prior to starting a release , an email or notification on features released, the impact it would have on their current work, the benefits should be posted on chatter or a wiki site where users would access for ongoing needs. The wiki site should serve as a self service community where users can regular access to address any questions on usage and training.
By focusing on the above 4 areas, release management can be immediately deployed in your organization. Please feel free to email me or post your comments on this blog and I would be glad to address them for you.