Why Salesforce DevOps is more than just hooking up a git repo to a Salesforce org
The term DevOps encompasses so many expectations and so much tooling nowadays that a simple question such as ‘Is my team doing DevOps?’ can lead to wildly different answers depending on who you ask. In the worst case this leads to unfulfilled expectations: you think you’re increasing velocity because you’ve set up a ‘DevOps tool’, when in reality you’re still constrained by lagging functionality or uncovered use-cases.
Source code versioning is a great example of DevOps functionality that can still fall short. With the increased popularity of DevOps for Salesforce, there are now plenty of solutions for hooking up an org to a git repo. But that’s just the tip of the iceberg: sure you might get a revision history, but are you truly able to seamlessly merge work from different sandboxes? Let’s dive into the nitty gritty of what it really takes to enable a DevOps workflow in Salesforce!
The beauty with Git is that the minute you set it up in your workflow (and embrace the notion of committing), you immediately gain out-of-the-box benefits. This includes:
Compare that to where the community was when Change Sets were the only option, and you’ve made leaps and bounds forward already in terms of developer tooling and experience.
This ability to thoroughly track changes over time already proves very convenient to dev teams. It’s your backup and complete history in one place, all separated in small, bit-sized changes from individual devs. It gets more tricky when you look at the work currently ongoing: multiple devs may be working on the same feature, in overlapping sections of the code. Consolidating and deploying such changes smoothly requires more complex functionality, and leads us to talk about merging.
At Blue Canvas we’ve heard too many Salesforce teams share their frustrations about ‘good enough’ git tooling that was letting them down any time developers would submit conflicting changes. Different tools can show different behaviors:
The typical scenario involved looks like this:
This is where merging comes handy. If you’re familiar with Git it’s likely one of the features you benefit most from. If you’re however new to it, then merging is a concept which might still be hard wrapping your head around. The documentation for git-merge alone demonstrates the extent of the topic (showing conflicts; resolving them; merge strategies…). While it may be overwhelming from a technical standpoint, functionally the implications are pretty clear:
This set of problems is why Salesforce DevOps is more than just hooking up a git repo to a Salesforce org. A reliable git workflow requires a proper merge conflict resolution functionality in place. One that both warns the dev team when a conflict is arising, and also one which guides developers in pushing the expected (and safe) code to UAT and production.
At Blue Canvas we believe that solving this problem is at the crux of enabling ‘DevOps for Salesforce’. It is what will truly enable teams to collaborate together in one same Salesforce environment, with multiple developers that can each work in their own sandbox, and then reliably and efficiently combine their work together to deliver features in production.
It’s a common saying in software engineering that ‘there is no silver bullet’ and we believe that this totally applies to improving git workflows as well. Having received feedback from companies and organizations of all sizes, we’ve quickly realized that various features can actually help on the ‘team has conflicting changes’ problem. Some concrete examples which we've implemented over time:
All in all this is a continued focus on enabling teamwork and reducing time to deploy. 🚀 More can be done of course, including on that specific merge solving problem. By the end of the year we will announce a new Blue Canvas feature, introducing a revisited git integration that allows for complete 3-way-merge detection and resolution straight from our deployment UX. Less last-minute surprises, more control over your code changes, and a (once more!) sped up deployment! Stay tuned as we will update you on the latest.
This blog post is the first of a series where we will regularly update about our milestones in offering top-notch git source control for Salesforce Teams. You can already read about our recent efforts in reducing sync speed to less than a minute between a sandbox and a git repo, which as we mentioned in this post is a foundation to more advanced git functionality.
In the meantime we invite you to sign up for free already at https://accounts.bluecanvas.io/signup. Just connect your orgs, compare them in seconds, and speed up your deployment workflow . We hope you’ll love the experience, would be thrilled to get your feedback, and look forward to delight you with more new features this year. You can stay in touch by subscribing to our Newsletter, or following us on Twitter @bluecanvasio!
EDIT: our next blog post on Salesforce+Git is now live! Read about Why merging is the hardest part of integrating Git with Salesforce
Best,
The Blue Canvas Team