Unpacking Software Engineering's Most Polarized Practices: TBD, Estimation, and Backlog Dogma
In a recent episode of the ‘Modern Software Engineering’ podcast, hosts Daniel Terhorst-North and Dave Farley delved into what they consider the most polarized practices in contemporary software development. Their discussion quickly converged on practices rooted in Extreme Programming (XP), with Test-Driven Development (TDD), Pair Programming, and especially Trunk-Based Development (TBD) topping the list. Farley noted that all technical practices within XP seem to generate unusual polarization. Citing Jez Humble’s insights from the Accelerate research, TBD was identified as singularly contentious, despite robust academic evidence linking daily merges to the main branch with higher quality and faster software delivery. Farley underscored that true Continuous Integration (CI) is essentially synonymous with TBD, advocating for frequent merges to prevent divergence and ensure a consistent system state, an approach he argues is factual rather than debatable.
The conversation then expanded beyond technical implementations to project management and planning, particularly the contentious topic of estimation. Farley described traditional feature or task-based estimation as “meaningless” due to the myriad of variables influencing work complexity. North proposed a “blink estimation” approach, leveraging experienced judgment to establish broad, accurate timeframes (e.g., “not less than X, unlikely more than Y”) to manage uncertainty and risk, rather than chasing elusive precision. This method shifts the focus from fixed deadlines to understanding investment and reducing uncertainty through valuable work. Complementing this, the hosts challenged the dogmatic adherence to product backlogs, sharing an anecdote from a banking project where culling 75% of a 3000-item backlog resulted in minimal user impact and delighted five key stakeholders. Both presenters, long-time practitioners, emphasized that their preferences for these practices stem not from dogma, but from extensive experience and evidence demonstrating their superior effectiveness in building better software faster.