↓ Skip to main content

Self-Test: How Trunk-Based Is My Workflow?

·7 mins
Michael Hönnig
Author
Michael Hönnig
Until autumn 2027 only available for consulting engagements with a small number of hours – remote, in German and English.

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.)
1. How long does a typical development branch live until it is merged into main?

Waiting time for review and approval counts.

2. How often does an individual developer integrate changes into main?

Per developer or AI agent, not the whole team.

3. What has to be achieved before a change may go into main?
4. When is a change reviewed by another person?
5. How quickly are open domain questions decided during development?
6. How many development branches are open in the team at the same time, compared with the number of developers and AI agents?

Release branches do not count here.

7. Which technique keeps unfinished functionality on main invisible?
8. How are interdependent changes handled?
9. How long does the automated verification of a change take?
10. What are branches used for that live longer than a week?
11. How does work proceed in the days before a release?
12. How often does a developer pull the current state of main into their working copy?
13. How many people work on the same development branch at the same time?
14. How does a fix for an already released state come about?
15. How large is a typical backlog item before it may go into main?
16. How does the local build work before a change is pushed?
17. What happens when the build on main is red?
18. Who may change which code, and what does a review decide on?
19. Against which state is a change verified before it lands on main?
20. How quickly could the current state of main be released?

This is about technical and quality readiness, regardless of whether a release is currently permitted, announced or approved.

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.