Typically when organizations have been using Salesforce for a while it’s fairly common to see that investments have been made to cater for immediate needs and budget restrictions.

Here is the issue: the layered development of customization and packages often results in a very complex Salesforce environment.

This means sandboxes are out of synch, there’s a lack of version control and difficulty in both data and meta-data deployment..Pretty much a nightmare to foresee the consequences of any new Salesforce release! These are the internal releases initiated by the business, not the releases by Salesforce.

*But fear not!* For every problem there is a solution so here are some of the practices I found to be most helpful to deal with challenges related to development and deployment life cycle.

 

Version control 

Version control software allows you to have numbered iterations of a project. It show the changes that are made to the code over time, and allows you to backtrack if necessary and undo those changes. When the entire project code is stored in a central repository, there is a better control over deployment. This also means an easy way to roll-back changes.

Potential solutions:

Git is such a repository. It’s a popular system trusted by developers around the world and is suitable for Salesforce-based development teams. There are different implementations such as

GitHub, Bitbucket and the more recent SalesforceDX platform can also facilitate version control.

 

Continuous integration and release management

Managing deployments can be complex with a risk of negative business impact. Change sets are an important tool for quick changes and small organizations. However it is difficult to identify all dependencies and often manual post-deployment steps have to be performed. Tools such as Jenkins and Gearset provide an important assistance with this process, for example by automating testing, monitoring changes and quickly creating datasets for testing.

 

Data loading/integration/synchronization

Another important area has to do with managing data – importing/exporting between sandboxes, synchronizing data and, of course, backup and restore. It is true that all these operations are possible using the standard Salesforce Data Loader however it involves repetitive manual work. 

There are clever solutions out there that help streamline and automate those processes and reduce risk. Skyvia is a popular cloud-based tool that solves many of those problems. XL-Connector is a tool that I use a lot and definitely recommend – it allows performing data import/export/update/sync directly from Excel, saving time on configuration and performing multiple updates. 

 

Recommended further reading:

Git for Salesforce admins webinar by Gearset