Rethinking Bug Trackers: A Separation of Concerns
After years of using various bug trackers, the author identifies a fundamental flaw in their data representation, leading to recurring frustrations. Three key issues are highlighted: a unified 'Fix Version' field conflating facts and plans; a two-tiered Status and Resolution system blurring the lines between code reality and future intentions; and the conflation of bug lists with to-do lists, creating awkwardness for non-bug tasks. The author proposes a 'separation of concerns' principle, suggesting a split into 'facts' and 'plans' tables. The facts table records objective bug information (existence, version, severity), while the plans table tracks intentions, timelines, and subjective priorities. This separation streamlines bug tracking, better accommodates different project types, and even allows for the complete omission of the plans table for projects focused solely on bug resolution.