CI/CD (continuous integration and continuous deployment) has been popularized in the last few years, and for good reason. In an age of digital transformation, business units are demanding more from development teams than they can keep up with. In response to this, most have adopted the practice of CI/CD to keep processes running smoothly and quickly, all in an Agile fashion. Salesforce development teams on the other hand haven’t caught up to speed as fast.
Simply put, CI/CD is a process used to integrate the output of development teams and to deploy that output in a sane fashion. A team practicing CI/CD well will be encouraged to make many small incremental changes so that code can be grappled with in a granular way. The first half, continuous integration, is used to merge those outputs and deal with the inevitable conflict that the changes will create. The second half, continuous deployment, is used to test, approve, and deliver those changes to users how they want them to be.
Although CI/CD has become popular in the software industry as a whole, it hasn’t ramped up to speed within the Salesforce community as quickly. This is likely because: not all Salesforce orgs rely on code, source control programs tend to be arcane to use, and Salesforce exposed a GUI way to move code between orgs. Salesforce had good reason to be hesitant to errode Orgs as the “source of truth”, the trade-off was that teams were not able to practice modern software development. Fortunately, that’s changed and now there are a variety of tools that make CI/CD a lot easier to implement into Salesforce.
Within Salesforce, CI/CD tools allow for more reliable development and release cycles. They afford the ability for developers to build, test, and ship code faster. Because the pipeline is automated with CI/CD, the process enables development teams to focus on code quality while meeting business and security needs.
If the Salesforce development team that you’re working on isn’t already using source control to manage your code, you might be dealing with a handful of challenges. These challenges can range from not having a comprehensive view of the code history to not having the ability to easily roll back changes. Without source control, in Salesforce you might also deal with team members making changes that conflict with other developers' work, or overwriting each other's code. These kinds of inefficiencies artificially bottleneck the development workflow and prevent development teams from being able to deliver working solutions frequently.
Implementing CI/CD in your Salesforce development process may seem like a daunting task, but it’s often more of a discipline and coordination problem than it is a technical one. Once the Salesforce team you’re working on gets familiar with the tool, the benefits of implementing CI/CD into Salesforce are countless. To name a few: there will be a single source of truth for the code, different branches of code can be created to develop and test new solutions, merging and cloning those different branches can be done easily, and there is the ability to revert a code branch to any previous version that is needed. Overall, Salesforce CI/CD provides more transparency into the development process and that contributes to reliable solutions being released frequently.
See what one of our developers has to say about Salesforce CI/CD Episode 0.5 of The Developers Speak.