
Andrew Hanna

Andrew Hanna

Short answer: nothing happens for about a fortnight. Then a Salesforce release changes an API version, a certificate expires, a runner image drops a dependency, and the deploy fails with an error nobody left behind a note about. A hand-rolled Salesforce pipeline is rarely infrastructure. It is a personal project with a bus factor of one, and the bill arrives roughly eighteen months in.
Because the build genuinely is cheap. The public tutorials are good: JWT auth into a
connected app, secrets in the repository, a workflow file per branch,
sfdx-git-delta to deploy only what changed, a test run gated at the
coverage threshold (Salesforce Ben has a solid walkthrough). A capable engineer gets that running in a couple of weeks, and for the first year
it works.
What the tutorials do not cover is who owns it afterwards. Read the comment threads under any of them: deprecated commands, expired auth, a Java version that vanished. Those comments are the maintenance bill in miniature.
Because everything underneath it moves and the YAML does not.
None of these is hard on its own. They are hard because they arrive on a Tuesday afternoon, in a release window, in a repository whose author left in March.
It is a permanent, unbudgeted part-time job. The vendor literature agrees on the shape even if the numbers come from different places: Gearset, citing Harvard Business Review, puts overruns on self-build software projects at 70% (build or buy), and Copado says established DevOps vendors spend 10 to 15% of their development capacity purely on keeping up with Salesforce platform changes (the hidden costs of building your own). Read together, the point is simple: a specialist vendor treats platform compatibility as a full-time engineering programme. Your pipeline gets what is left of one person's Friday.
The costs that never make it into a business case:
Five questions. Answer them honestly this week rather than during a resignation.
If four of those answers are one person's name, you do not have a pipeline. You have a dependency.
When the pipeline is treated as a product rather than a favour: a named owner who is not the only one, a second person who has actually fixed it, documentation someone has tested by following it, pinned dependencies, and a line in a budget. Plenty of teams meet that bar, particularly those with a real platform engineering function and requirements no vendor covers.
What does not work is the middle: a bespoke system with no owner, in a team whose actual job is delivering Salesforce features.
That last decision is where a supported platform earns its keep. Serpent exists so a Salesforce pipeline is not one person's side project: deployments are ticket-based with Git running underneath, so admins and consultants can raise and track releases without the CLI, and platform compatibility is our problem rather than your leaver's. It installs nothing in your org, pricing is flat per company with unlimited users, and a free Essentials tier lets you try it on your own org.
Are GitHub Actions a bad choice for Salesforce CI/CD?
No. It is a strong CI system and plenty of teams run on it successfully. The risk is not the tool, it is a bespoke pipeline with a single owner and no maintenance budget.
How long does a hand-built Salesforce pipeline usually last?
It typically works well for the first year, then starts costing real time as Salesforce releases, CLI changes, expiring credentials and runner updates accumulate.
What breaks first when the author leaves?
Authentication, usually. Expired certificates and rotated secrets fail loudly, and they fail in a part of the setup that was configured once and never documented.
How do we reduce the bus factor without replacing the pipeline?
Give it a named owner and a named deputy, put a tested runbook in the repository, diarise every credential expiry, and make a second person run a real deployment unaided at least once a month.
Is buying always cheaper than building?
Not always. Building is defensible when you have real platform engineering capacity and a funded owner. It becomes expensive when the pipeline is a favour done by someone whose actual job is delivering features.
Commitment free!