Rocket ship badge DevOps Launchpad

Rob Cowell · 3rd August 2023

What to consider when selecting a Salesforce version control tool

Version controlling your Salesforce code is a bit of a no-brainer these days. But with so many options out there for DevOps tools, how do you pick the right version control tool that meets all the needs of your organization? Here are some factors that you should consider when you’re getting started with version control.

Git integration

Git — a distributed version control system — is the de facto standard for version control across the industry, so it’s no surprise that most Salesforce tools integrate with it. But don’t just assume that you need to use Git if you already have other version control systems in place. Using what you already have in place can save tons of time and money compared to bringing in something totally new!

Distributed version control systems like Git are generally considered to be more robust than centralized systems. There is no single point of failure, because multiple developers can clone repositories on their distributed version control workstations, which creates multiple backup copies. This makes it easy to revert to a previous version if needed. In addition to this, most developers are familiar with Git workflows and leveraging that knowledge can minimize training requirements.

Many Salesforce version control tools essentially act as wrappers around Git functionality. They provide tight integration with Git repositories and specialized UIs for common Salesforce tasks like deployments, as well as enabling automated deployments.

Some even include Git hosts as part of the offering, while others integrate with external repos like GitHub or Bitbucket. Think about which approach best fits your needs.

Make sure you assess the actual Git capabilities — branching strategies, merge handling, rebasing support etc. You want those fundamental version control capabilities plus Salesforce smarts.

Existing version control systems

For enterprises with established version control infrastructure for non-Salesforce development, it's worth considering whether those systems can be extended to cover Salesforce as well.

For example, if developers are already using Git repos managed in GitHub, adding Salesforce to that ecosystem may be simpler than introducing an entirely new tool.

The key questions that you need to make sure you answer are around functionality and support. Can existing systems handle Salesforce metadata and development processes efficiently? Is there adequate Salesforce expertise to ensure a smooth transition?

Evaluating potential integration challenges upfront will help determine if leveraging your current tools is the best path forward. Relying on existing version control investments can really pay off, but equally keeping hold of systems for the wrong reasons can cause headaches further down the line.

Support for multiple clouds

It’s important to remember that Salesforce isn’t just one platform. It includes multiple distinct clouds like Sales, Service, Marketing, Commerce, and more. Each cloud has its own architecture, metadata structure, and tooling considerations, and there are some stark differences within these. This becomes really important for version control, where tools need to properly handle the nuances of each cloud.

Make sure to clearly scope out which Salesforce clouds are in use so you can accurately assess version control support. It’s definitely preferable to consider this in advance and choose a suitable solution, rather than realizing halfway through an integration that the tool in question is only going to work on a portion of your Salesforce instances.

Also make sure you think about longer term roadmaps. If there are plans to expand into new Salesforce clouds down the road, choose a flexible tool that can grow with you to avoid nasty surprises later.

Ease of use

Ease of use is extremely important, as version control and DevOps can be complex beasts to wrangle at times. When evaluating tools, be sure to consider how easy they are to use and adopt. The goal is to get teams productive as quickly as possible. Intuitive user interfaces, built-in guidance, and robust documentation all facilitate a smooth and efficient ramp up, as well as improving collaboration. Less time learning means more time building!

Also look for features like configurable workflows that match your team's processes, instead of rigid out-of-the-box flows. The tool should adapt to you and your way of working.

For larger teams, capabilities like permission management and selective access controls can aid onboarding as well. Give new users only the functionality they need to start off — this can help reduce conflicts and make the whole process run more smoothly.

Finally, don't underestimate the value of quality vendor support. Knowledgeable technical experts can help you avoid the learning curve pitfalls.

Scalability

Salesforce org scaling is an important criteria when selecting a version control solution. A tool that works for a small team might crumble under large enterprise deployment workloads, and needs between the two differ drastically.

Several factors impact scalability:

  • Performance: Can the tool handle large and complex codebases without slowing down?
  • Concurrent users: What is the maximum number of simultaneous users supported?
  • Change volume: How well does it handle high frequency commits or large metadata payloads?
  • Integration complexity: Are integrations with other tools and platforms robust and well-tested?

Make sure that you evaluate available scalability metrics like performance benchmarks, data storage limits, and transaction throughput. Also dig into whether the licensing model changes based on usage tiers. You don't want to be surprised by unexpected cost spikes as your org grows.

CI/CD and DevOps integration

A key benefit of version control is integration into broader CI/CD pipelines and Salesforce DevOps toolchains. When evaluating options, check which complementary capabilities are natively included versus those that need external tools — the tool should slot neatly into your existing pipelines and processes without disruption.

For example, built-in Salesforce validation on commit, automatic deployments, and org sync can eliminate toolchain gaps. Open and documented APIs can also ease integration with other solutions.

Finally, understand the release management and continuous delivery approaches. You want a tool that is aligned with your current processes and roadmap.

Security and compliance

Don't gloss over security, access controls, and compliance capabilities, even though they may seem dry. These features are critical for enterprise adoption. Review available permission schemes such as source code access by profile or permission set. Audit logs should track all user activity and changes to your production org.

Data encryption both in transit and at rest is essential. Understand encryption schemes and key management options. For regulated industries, the support of compliance standards like SOC2, ISO 27001, and GDPR are table stakes.

Making sure that you follow industry best practices for secrets management, least privilege access, and separation of duties, all of which increases overall security. The goal is to minimize compliance risk exposure while maximizing development velocity — a delicate balance! All of this might be boring, but the essential compliance stuff is crucial. Trust us, you’ll be thankful when audit season rolls around!

Licensing and support

Finally, the practical considerations of licensing costs and vendor support should not be overlooked. Evaluate both open source and paid tools to understand the relative tradeoffs. Open source offers more customization flexibility but typically requires more effort.

Paid tools deliver higher out-of-the-box capability but do come at a cost. You should make sure that long term costs align with available budgets, but it’s critical not to underestimate the value of quality technical support. Knowledgeable staff can fast-track onboarding and support long term DevOps success.

Next steps

Hopefully this gives you a solid starting point for evaluating your Salesforce version control options. If you’d like to learn more about Salesforce version control, check out our free Version control fundamentals course on DevOps Launchpad covering the benefits of version control, how to get started, and when your team should consider moving to a Git-based workflow.

If you’d like to delve deeper into which version control system and Salesforce DevOps setup is best for your requirements, the Gearset team would be happy to help you find the right solution. Get in touch today!