Beyond fixing bugs: case studies of creative collaboration in open source software bug fixing processes

Bug fixing is an important collaborative practice of open source software development. Creative collaborative bug fixing---collectively generating new and useful solutions to improve software quality---is important especially when bugs are difficult to fix. We find bug fixing practices are unavoidably creative by studying Mozilla and Python. We characterize their bug fixing process as four common subprocesses, problem identification, preparation, solution generation, and solution evaluation. We discuss the key challenges of creative collaboration during each subprocess, and recommend design implications to enhance creative collaborative bug fixing processes, including support for establishment of common ground, externalization of social networks, awareness of resolving progress, and articulation of design rationale.