Until recently I had a naive idea of trunk-based development:
every commit goes straight to main, and as soon as CI is green, it is deployed to production.
My interpretation was that branches were frowned upon, even short-lived feature branches, and release branches all the more.
I had planned a blog article explaining why I did not consider that sensible. During my research, however, I learned that I was quite wrong and that the definition of trunk-based development is by no means as naive as I thought:
Release branches are even explicitly provided for, and short-lived branches, even with review, are the norm.
Admittedly, I have never worked on a project that claimed to be trunk-based. In hindsight, the workflow of some of those projects was trunk-based development after all. And my own projects come very close to the ideal of trunk-based development.
To classify workflows more precisely, I built a self-test following trunkbaseddevelopment.com. It asks what happens in a team’s daily work, not what the team calls its workflow. Questions, options and weighting reflect my current state of research and probably not the absolute truth. Deeper dives into the individual questions, as well as some critical remarks, will follow in a series of articles I am currently writing.
(No data is stored or transmitted; the evaluation runs entirely in the browser.)The value is a self-assessment based on the practices of trunkbaseddevelopment.com, not a measurement.
What the Result Means and What It Does Not#
The degree of adoption describes, as I understand it, how many of the practices that trunkbaseddevelopment.com names for trunk-based development a team actually applies in daily work, weighted by their importance for short integration intervals. It is a self-assessment, not a measurement: The test only asks about what seems typical to me, and only as honestly as it is answered. Nor is it meant as a measure of quality: A high value is not “better” than a low one, because what probably matters more is which way of working fits the respective context. Anyone deliberately working with long-lived feature branches gets a low value here and may still have a well-functioning workflow.
This article was translated from German with AI assistance.
