Salesforce Deployment Tools
Are you using the right tool for the job ?
Anyone who has gone through even just a small number of Salesforce deployments can tell you just how painful the whole process can be. Knowing the tools available and using the right tool for your job could save you countless hours spent on deployments while ensuring a faster and more reliable deployment process.
In this blog post, we are reviewing the available options and where each of the option is most suited for.
Change Sets
At the time of this writing, Change Sets is still the most popular Salesforce deployment tool. This popularity, however, is not equal quality. In fact, it becomes very clear how time consuming Change Sets is by looking at user comments on the idea exchange.
To start with, the UI for selecting components is very tedious. Uploading change set can take up to tens of minutes. Not being able to clone inbound change sets makes the process very fragile, non repeatable and extremely time consuming as you would have to manually rebuild the entire change set in order to move changes to up stream environments. To make this even harder, most deployments are often not successfully validated the first time. This means the entire cumbersome process needs to be repeated over and over again, taking hours of our already busy days.
Having said that, Change Set has its own merits. It is the only cloud-based solution out-of-the-box that does not require any technical set up. The declarative click-not-code approach is familiar to most non-technical Salesforce admins which is part of the reasons why it has gained popularity.
With the pros and cons mentioned, Change Sets can still find its use in smaller Salesforce organizations with simple and less frequent deployments. For anything above this scale, you should definitely consider other alternatives.
Eclipse IDE, VS Code and similar development tools
Firstly, Eclipse IDE or VS Code was designed to be a development tool, not deployment tool. The strength of these tools lies in its ability to quickly deploy Apex code and related development artifacts.
In many cases, Eclipse is used to overcome Change Sets weakness including the lack of agility and reusability. It is also used to deploy components that are not supported by Change Sets (ie. standard picklist values).
Even with all the power and flexibility, Eclipse IDE or VS Code has been designed for a completely different use case. It can be used on an ad-hoc basis to increment other tools but should not be the de facto deployment standard for any Salesforce organizations.
Ant migration toolkit
From a deployment capability perspective, ant migration toolkit is similar to Eclipse IDE except that it is intended to be used as a Salesforce deployment tool which can be scripted and automated without requiring UI interactions. This makes ant migration toolkit ideal for things like continuous integration and automatic deployment.
Compared to Change Sets, ant migration toolkit is more robust, flexible and more reusable. This advantage, however, comes at the expense of having to store and process XML files. More often than not, manually editing of XML files is required which introduces a different kind of overhead and opportunities for errors. Ant migration toolkit is often used in conjunction with source control and a build server to enable continuous integration. Source control and continuous integration for Salesforce is a major topic in itself and definitely deserves a separate blog post. In the absence of those, ant migration toolkit is still definitely worth exploring, especially if you have a few Salesforce developers in your team, since working with XML could represent some technical challenges.
As you can see, there are pros and cons in the above Salesforce deployment tools which explained why they have been co-existed for many years. The challenging nature of metadata deployment results in the needs for better Salesforce deployment tools to be developed over time.
If you are looking for something that combines the strengths of the above options, you should definitely checkout ClickDeploy.io. We are a passionate group of engineers and product designers who focus relentlessly on building the perfect Salesforce deployment tool that users love.
Love to hear your thoughts. Feel free to ask questions or comments below.