Commit daily
Commit your work daily, even if it's a WIP. Push it to the server. Open a pull request. Don't be afraid of sharing your incomplete work.
Long-lived branches discourage refactoring
Every refactoring tends to entangle all the other functional changes together, which makes it even harder to advance changes to the production branch.
Reader response: Feature flags as an enabler for trunk-based development
Feature flags are often misunderstood to be for front ends only. It is very possible to put all development behind a flag.
How my web site mirrors software delivery
Several software delivery principles are widely applicable, beyond the strict definition of "software".
Subscribe to the Daily Commit
Every day I write about improving software delivery at small companies like yours. Don't miss out! I will respect your inbox, and honor my privacy policy.Unsure? Browse the archive.
The blury line between Trunk-Based Development and Continuous Integration
If you practice TBD with days-long branches, is it still TBD? I don't know. But it's certainly not continuous integration.
Two flavors of Trunk-Based Development
There are two related practices that are often called "Trunk-Based Development", which can lead to some confusion.
Large batches obscure your bottlenecks
Are things moving slowly, but you don't know why? Reduce your batch size.
New hires means more overhead
Lines of communication go up as team size increases, but that's not all. Consider merge conflicts.
Can we use a staging environment with trunk-based development?
Push to your staging branch as needed, but don't make it a mandatory step toward production.
If it hurts, do it more
We natrually postpone painful experiences, but if we do them more often we're incentivized to reduce the pain.