In my role at AutoRabit, I deal with the more advanced issues of CI/CD on Salesforce. Sometimes it’s easy to loose track of the most basic issues that Salesforce release teams experience.
When a new team contacts me, they’re looking for specific answers, but before that they start with “Why is it so difficult?”
(They ultimately search for an answer, assuming it doesn’t have to be like this.)
Many teams just accept the pain they’re experiencing as normal. So they don’t realize that there are solutions, and they don’t go looking for them.
SFDC and the force platform is a clicks-not-code solution.
That makes it very valuable and very powerful for simple configurations, but if you try to go beyond that it gets very frustrating very fast.
to do the promotions and very frustrating to keep track of changes. So up to a particular level you’ve got a great solution, but after that the efficiency drops off and ultimately gets in the way.
Here’s a graph that visually tries to convey what I’m saying deficiency versus Team size and complexity it’s very powerful at the beginning and becomes increasingly less efficient as it is manual and cumbersome, until finally there are negative returns to efficiency at the end.
The best returns are with 1-3 developers. At about four to five, we’ve noticed that teams need to seek help.
First step is to understand that the situation you’re in actually is not just normal but also a problem. I’ll probably let there are solutions for. A problem that there are solutions for.
Next step is to seek out Solutions. Some teams hire outside help. Some teams acquire a tool and train themselves on it. Some teams make a combination of the two.
I currently help large Enterprise teams typically with 10 or more Developers set up their SFDC environments for optimal development. That said there are many many more teams that are too small to use our enterprise-grade solution and still need something. Take a look at the app Exchange four different solutions.
Think about what your needs are:
- A simple replacement for change sets only? When you’re still at change set level, you may only look for a way to increase your speed of deployment and reuse your packages.
- Some way keep track of migrations and changes. This might include adopting Version Control, or it could be something simpler with manual logs.
- All the above, plus testing and post-deployment steps.
Also working with outside vendors and Developers? How will you incorporate their changes into your current stream, and keeping track are questions you may need to address and add to your spec sheet.
Depending on the maturity level of your team, you’ll fall into 1,2 or 3 above. From there you can consider solutions available on the app exchange for release management, or hire outside help to better manage your releases.
A note on Salesforce DX. Despite the buzz around DX, it’s not the solution for simple teams looking to replace Change sets. It’s a long way from what the small configuration team needs.