All Collections
Salesforce DevOps
An introduction to version control
The benefits of version control driven development
The benefits of version control driven development

How version control compares to in-org development

Jason Mann avatar
Written by Jason Mann
Updated over a week ago

Version control has a range of benefits over in-org development which makes it a great choice for small and large development teams alike. 

Single source of truth

The master branch of a repository becomes the source of truth for tracking changes and resolving conflicts. Everyone in the development team can see at a glance what code is currently ready for release and what is being worked on in branches. This simplifies releases and ensures the whole team is aware of what is currently live.

Manage code conflicts and deployment risk

Version control systems can help teams identify and manage conflicts early, during merging, rather than at deployment time. This means by the time they deploy, they’re already confident that they’re pushing exactly what they want. 

The importance of this can’t be overestimated - with in-org development, finding and resolving conflicts would only happen at the point of release to sandbox or production. Release windows are often tight, and unexpected delays can have big impacts on the business. Using version control, teams can handle conflicts when merging branches, and the result is ready to be deployed to any subsequent environments for testing. This happens as a natural part of the development workflow, rather than a week or two down the line when it’s being deployed.

Enable parallel development streams

By allowing each developer to work in their own branch, multiple development streams can easily be maintained. Teams no longer have to worry about another user accidentally modifying an item they are working on, or trying to disentangle their changes in a shared sandbox. This also helps separate feature work from hotfixes.

Maintain a full audit trail

Through commits, all changes are annotated and associated with a team member, so the whole team is able to monitor and track who made these changes and why. This can be invaluable if they ever need to go back to review historical work or bring new team members up to speed, and is a requirement of some compliance regulations.

Reduce bugs through code review

During the merge process, all changes should have an associated assignee, so they can be reviewed before being pushed into production. This peer review of code enables teams to find and fix bugs prior to release and increases overall code quality.

Deploy consistently across environments

Branches provide stable release points to quickly and reliably propagate the same set of changes to staging, UAT, and finally production environments. Teams can rely on the knowledge that they’re thoroughly tested exactly what will be released, without the need for manually updated deployment tracking documents.

Simplify rollback

In the event of a rollback, it’s simple to revert a merged branch and return an org to its previous state. Through the detailed history of changes, and the merging process, teams can then go back in time to understand why things went wrong, and identify who knows most about each part of the system to resolve the issues.

Release faster

Version control encourages an increased release cadence, deploying smaller number of changes more frequently than is traditionally possible with in-org development. With a well-designed process which doesn’t slow teams down, this reduces risk while enhancing the speed of project delivery.

Did this answer your question?