[SalesForce] Salesforce deployment best practices

I am very new to Salesforce .In salesforce , there is no clear strategy for release management and I am asking the wider Salesforce community to help me to see if the proposed release plan is OK.

The current deployment model we use are multiple Sandbox environments and changeset to deploy change from Dev >> Test>>Preprod>>Prod . Here are the challenges I understand so far in Salesforce deployment.

You cannot rollback after a changeset is successfully deployed
Creating changeset is very manual
To address the first issue (You cannot rollback after a changeset is successfully deployed):

Backup the data by scheduling a weekly data export (my question would be , how we can use the data export to restore the data)
Backup the apex code (trigger, visual force…), we can use eclipse to deploy these changes so that the apex code can be rolled back.
Document all the schema changes, (custom object, custom fields, custom labels, tabs …) , if we do need rolled back we can manually delete all those changes..
To address second issue (Creating changeset is very manual)

We are looking at using Salesforce IDE or Salesforce migration tool to deploy the changes from environment to environment.

I am asking the same question in my blog, here is the link to that post.

https://ybbest.wordpress.com/2014/10/01/salesforce-deployment-best-practice/

Best Answer

This is an issue that is faced by many, many people. There are no straight answers especially since everyone's setup and dependencies are different. I am not offering any solutions just listing some gotchas.

For data backup and restore, please note that there are some things that are not restore-able. Salesforce provides a read-only view to some tables and if you try to restore them, the write/ update will fail. So, beware of any solutions that offer full backup and restore functionality.

For metadata, it is a little bit worse. Not all the metadata is supported by the metadata API. So, you cannot backup the entire Org even if you wanted to. Additionally, the governor limits allow you to take a backup of just 5000 metadata components in one shot. So, you can never have a complete backup of your Org. You have to make N number of round trips to make a full backup, and this is true irrespective of the client you use.

Related Topic