This is why Salesforce admins don't want to learn Git
I've had this discussion countless times with fellow Salesforce developers:
There's this perception that adopting Git workflows or CI/CD in Salesforce is hard because it's not clear how admins can participate in that flow because they don't have the skills to do so, or worse, they don't want to learn those skills.
But is that true?
I recently asked admins in my LinkedIn network if they were interested in learning Git through a course I'm planning to create (more on that later), and the engagement was very surprising.
Almost 150 said they really wanted to learn Git. Some also commented that they tried to learn Git in the past but didn't find the courses good enough.
So if so many Salesforce admins want to learn Git, what's stopping them? Why isn't it common to see admins using Git?
Git makes assumptions about your knowledge
First of all, let's remember that Git is an executable file you run on the terminal of your operating system. What?
Let's say that again:
Git is an executable file you run on the terminal of your operating system
If this sounds like gibberish, that's the first part of the problem. Using Git assumes some knowledge of how to use a terminal, how to run commands, etc.
Most admins have never had a reason to go this route, and why would they? Everything they do in Salesforce is done through tools on the cloud.
To make matters worse, the official Salesforce DX site has a link to Git's official site, which gives this "simple" definition of what Git is (I included the "wtf"s myself 😉 )
Git is a free and open-source distributed version control system (WTF?) designed to handle everything from small to very large projects with speed and efficiency.
Git is easy to learn and has a tiny footprint (WTF?) with lightning-fast performance.
It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows. (WTF? ++++++)
This is not a friendly definition, even for developers with years of experience.
This sounds like garbage for users who have done all their customizations in the cloud with point-and-click tools. It actually sounds like garbage even to me, to be honest.
Getting Git the work is a drag
The second obstacle is that actually getting Git to work on your computer is not always straightforward. Sometimes it can be real drag to get the
git command to work.
I just searched git command doesn't work in Google, and there are 28 million results.
There are also 200K results in StackOverflow, a popular question-and-answer website for all things software
What this means in practice is that even if you get past the official Git definition (the one with 3 "WTFs" in it) and decide to try it, you could spend days trying to get it to work.
This is perfect for removing any motivation you had about learning Git. I know I get super annoyed and frustrated when I spend more than 30 minutes searching for answers on Google and Stackoverflow when something doesn't work on my computer.
If you are not a technical user or only have a mild interest in learning Git, it's likely that you'll stop here and move on to something easier to learn and that has a much bigger impact.
Using Git with Salesforce is super weird
In traditional software development, Git is used for version control and for automating deployments to production (part of CI/CD).
Git is meant to be the source of truth of the code that makes your app.
With Salesforce, this is not the case. No matter what, there's only one source of truth for your Salesforce configuration: your Salesforce org.
If you are an experienced Git and Salesforce user, what I just said above probably sounds like heresy (a widely unpopular opinion that goes against religious beliefs). You are probably thinking that this kind of messaging is dangerous.
No matter what your opinion is, someone with an Admin profile can still go and make a change to a field in Production, and Git will never know about it. That is a fact.
The only way to make Git the source of truth of your Salesforce org is through discipline and an established process that your entire team follows. But Salesforce was not designed to have its "truth" stored in Git files. I talked more about this in this other article.
Until the day that Salesforce comes up with a "Disable manual changes in Production" setting, Git will always be playing catch up.
The point of this section is that you could learn Git with online tutorials and still have no idea how to use it properly with Salesforce because the dynamics are completely different.
No good tutorials out there
There don't seem to be many good tutorials on how to learn Git the Salesforce way.
Yes, there are hundreds of thousands of Git training courses. But none of them are aimed at non-technical people, and they don't teach Git with a Salesforce admin mindset.
There's a conflict of interest
Many Salesforce DevOps vendors use this argument as a reason to buy their products.
Your team can't learn Git? Don't bother; use this instead!
I think there's huge value in using a Salesforce DevOps vendor. I also agree that for teams who are struggling with Git, using an easier product is a good idea. In fact, I work for Salto, and we also help teams adopt better Git workflows.
However, I don't agree that this is a reason not to learn Git.
You can learn Git and still decide that a paid product is the right solution for your team. Knowing how Git works will only help you make a better purchasing decision when shopping for DevOps vendors.
You may also change jobs, your new company may not use a DevOps vendor, and you might need to resort to using Git "manually."
I'm on a mission to fix these problems. I'm working on creating a FREE course on Git for Salesforce Admins that will assume no prior knowledge of anything (other than Salesforce) and will be tailored to an admin mindset.
I'm doing a round of early-access users. If you are interested, you can sign up here
Should you learn Git?
Now, if you are an admin and read all the above, you might be asking yourself if you should actually invest time in learning Git.
Obviously, I'll say YES to that, but not for the reasons you may think...
I'll talk about that in my next article. I can let you know when it comes out...