Monday 12:10 p.m.–12:55 p.m.
Code Unto Others
- Audience level:
- Best Practices & Patterns
Large codebases written by many authors over long periods of time too often become tragedies of the commons riddled with complexity and technical debt. We’ll cover the pathologies that specifically encumber collaborative software development (drawing on examples from the Mercurial codebase) and describe alternative practices, their efficacy, and the costs of adopting them.
Large codebases need not be tragedies of the commons so riddled with complexity and technical debt, but so many are. How does that happen? By what mechanisms and pathologies do a large number of locally reasonable decisions by intelligent authors add up to unmaintainable software? How can it be that the end result of everyone doing everything right is a system “too dangerous to touch” that can’t be modified without likely breaking something? We’ve written that software, we’ve maintained that software and brought it back from the brink, and we’ve trained others in what is required to avoid trouble. We’ll share what practices work, and why and how they do. We’ll dive into the designs of classes, functions, modules, and packages. We’ll evaluate the tradeoffs of global state and other dark magic. We’ll even dig into and get personal about naming.