9 / 11 · Book 17 · Branching Strategies← prev⊞ allnext →Get the book →
1.9Exercises
Beginner
- Identify which branching strategy your current team uses (or the team at your last job). Write down the branch names and what each one is used for.
- Draw the branch diagram for your project on paper or a whiteboard. Where do features, releases, and hotfixes live?
- List three advantages and three disadvantages of your current branching strategy.
Intermediate
- Map out when each type of test runs in your current workflow. Are there gaps where code can reach production without certain tests running?
- If your team uses GitFlow, identify tests that run twice (on
developand onrelease). Could you eliminate the duplication without reducing coverage? - If your team uses GitHub Flow, measure your PR pipeline time. Is it under 15 minutes? If not, identify the bottleneck.
Advanced
- Write a proposal for migrating your team from GitFlow to GitHub Flow. Include the prerequisites (pipeline speed, test reliability, etc.) and a phased migration plan.
- Design a feature flag strategy that would enable trunk-based development for your project. What flags would you need? How would tests interact with them?
- Create a test execution matrix for all three branching strategies, customized to your project's specific test types and environments.