We recently hosted a Dev TechTalk Live event to discuss Salesforce version control, why organizations are hesitant to implement it and best practices when implementing it in your organization.

Salesforce version control focuses on one concept: tracking changes over time. Development teams can work more efficiently and effectively if they implement a version control process within their organizations. In fact, the Salesforce Lifecycle Application training course says, “Using version control is considered to be the general best practice for software development … and ensures a quality development process.” With Salesforce reiterating version control as a best practice, why aren’t all SFDC development teams using some form of version control?

Why Teams Don’t Use Version Control

Development teams are sometimes hesitant to use version control. Here at Flosum, we’ve encountered 4 situations that act as barriers to organizational adoption:

  1. Limitations of the tools – While Salesforce provides the ability to modify the org in-place, there hasn’t been the same availability of tools to handle Salesforce source code.As a result,first-party tool support for extracting metadata and deploying changes is very limited. This has hindered wider adoption of version control.
  2. It’s only for big organizations – Many teams think that version control is for the large enterprises and not for smaller development teams
  3. Not knowing what you don’t know – There aren’t many best practices out there, so over-engineering a process happens a LOT and it can become more of a hindrance than a help.
  4. Technical barriers – Having version control experts in-house can be difficult, especially with the current tools in the market. Most Salesforce developers know the Salesforce UI, but maybe not command line and edit codes. Flosum eliminates these technical barriers.

What to look for when evaluating version control tools:

    1. Robust Architecture – There is seldom a situation in which one developer is developing on the Salesforce platform at any given time. In real life, there are many developers creating solutions and building fixes on the platform concurrently. Your choice of version control tool needs to be able to manage multiple users, branches and user stories. Look for tools that have a robust architecture that enables collaboration and conflict resolution across multiple developers and teams without complicated installation and with easy integration into existing workflows and tools.
    2. Compliance – Compliance has to be a top priority of any organization and all of its employees. When evaluating version control tools, look for a secure platform that adheres to all industry standards. Be careful when evaluating vendors and make sure they don’t pull data out of the Salesforce platform to another cloud for storage and then push it back into the Salesforce environment. This can expose data. Look for a solution that is native to Salesforce that stores and maintains all data within the Salesforce platform and takes full advantage of SFDC security.
    3. Ease of Use – The tools you use should make your life easy. Look for a solution that leverages the “clicks not code” concept so you can work more efficiently and quickly. Your solution should also look like something you are familiar with. If you are developing within Salesforce, find a solution that uses the Salesforce UI so your developers can spend time developing — not trying to figure out where buttons are located.

Version control is a very powerful tool for Salesforce development teams. When operated and executed properly version control can be a game changer for an organization. Be sure to check out our webinar around version control for Salesforce and the rest of the Dev TechTalk Live series.

signup for our blog


“Flosum is the best native release management tool that you will fall in love with. I have gained confidence in my role and has given me the ability to view release management from a whole different perspective.”

Faizan Ali

Faizan Ali
Salesforce Consultant at Turnitin