Modern QA2026Interview Depth Check
Log inJoin
1 / 1 · Book 17 · Branching Strategies · drill: interview Q&A⊞ allGet the book →

1.11Interview Depth Check

Question 1

Prompt: Your company currently uses GitFlow with a two-week release branch stabilization period. The VP of Engineering wants to move to weekly releases. The test suite takes 45 minutes to run, and the flaky test rate is around 8%. How would you advise the team on changing the branching strategy, and what prerequisites would you insist on before making the switch?

What a strong answer should cover:

  • Recognition that the current pipeline speed and flaky test rate are blockers for faster release cadence
  • A phased migration plan rather than an overnight switch
  • Specific, measurable prerequisites (pipeline under 15 minutes, flaky rate under 2%)
  • The relationship between branching strategy and test execution timing

Example answer:

  • I would first present the current blockers: a 45-minute pipeline means PR feedback loops are painful in GitHub Flow, and an 8% flaky rate would block PRs constantly. Before migrating, we need to parallelize or shard the test suite to get under 15 minutes, and quarantine or fix flaky tests to get under 2%. I would propose a phased approach: first, move to GitHub Flow on one service as a pilot while keeping GitFlow on others. Measure the pipeline time, flaky rate, and developer satisfaction on the pilot. Once the prerequisites are met, roll out across the organization. I would not recommend trunk-based development until feature flags are in place and the pipeline is under 10 minutes.

Question 2

Prompt: A team member argues that trunk-based development is inherently riskier than GitFlow because there is no stabilization period. How do you respond?

What a strong answer should cover:

  • The distinction between risk mitigation via process (stabilization branch) versus risk mitigation via automation (continuous testing, feature flags)
  • That trunk-based development shifts risk management left, not eliminates it
  • The hidden costs of long-lived branches (merge conflicts, delayed integration, duplicated testing)

Example answer:

  • I would acknowledge the concern and reframe it: trunk-based development does not eliminate the stabilization phase -- it replaces a manual stabilization branch with continuous automated verification. Every commit runs the full test suite, which means regressions are caught within minutes rather than discovered during a two-week stabilization window. The trade-off is that this requires investment in test automation maturity, pipeline speed, and feature flags. GitFlow gives you a safety net at the cost of slower feedback loops and duplicated testing effort. Trunk-based development gives you faster feedback at the cost of higher upfront investment in automation. Neither is inherently riskier -- the risk profile depends on the team's infrastructure.

Question 3

Prompt: You join a new team and discover they are using GitHub Flow, but the main branch has been broken three times in the last month. Deployments were rolled back twice. What is your diagnosis and remediation plan?

What a strong answer should cover:

  • Root cause analysis: likely insufficient PR-level testing, inadequate branch protection rules, or test gaps
  • Specific remediation steps: branch protection, required checks, test coverage analysis
  • Monitoring and metrics to prevent recurrence

Example answer:

  • My first step is a post-mortem on the three breakages: what type of failures were they (test gaps, flaky tests that were ignored, missing test types like integration or E2E)? Then I would audit the branch protection rules -- are PR reviews required? Are CI checks mandatory before merge? Is the branch required to be up to date with main before merging? I would add mandatory status checks for unit, integration, and E2E tests on every PR. I would review the test suite for gaps in the areas that broke. I would also introduce a post-merge smoke test that runs immediately after merge to main, with an automatic rollback trigger if critical tests fail. Finally, I would set up a dashboard tracking main branch stability over time so the team has visibility into the trend.