A Progressive Apex Trigger Framework

If you work on a larger Salesforce Org, you probably need a trigger framework to implement the single trigger per SObject best practice. This is especially challenging when you work on multiple, well-separated second-generation packages (2GP). Requirements for a...

Why We Do Test-Driven Development (TDD)

Test-Driven Development (TDD) is funny: Most developers hesitantly agree we should do it more often. Yet, I rarely see a whole team doing it. It seems to me, most of us still don’t understand why it is so powerful. As a result, some of us still reject it...

A Story About Failure In Software Projects

This is a story about failure. Think about anything that can go wrong when building software. In our last project, we made almost every mistake you can think of. But this is also a story about how to learn from failure. And I learned what separates good management...

Organize Metadata For Scalability

A common challenge when designing a Salesforce CI pipeline is how to organize the metadata. Which components should be put into a package? Which components are better kept in the famous „happy soup“? To solve this challenge, an architect has to understand...

Package-Based CI with CircleCI and SFDX

Today I want to dive deeper into package-based deployment processes with SFDX. Interestingly enough, there are very little resources out there that explain how to set up a continuous integration (CI) pipelines to deploy a second-generation (2nd-gen) unlocked package...