If everybody in engineering experiences the frustrations of dereliction in legacy code, why do we keep creating that dereliction? And how can we address it more productively on software teams?
Usually the problem isn't the engineers lacking skill: it's no system for managing the tech debt and maintenance challenges of the code base. In this retreat, we'll explore a system for doing that by working on an app of our very own.
We'll begin by discussing where our maintenance load, noting the misconceptions that allow that load to KEEP accruing even as we try to get rid of it. Then, we'll talk about how to quantify, visualize, and model our maintenance load for prioritization.
We'll explore an app together, treating the app as our "legacy" code base with past decisions, a current backlog, and relevance to future product plans. We'll put together some priorities for tech debt reduction and decide how to address them. Finally, we'll make some changes and practice socializing them so the broader team loses as little context on the code base as possible.
You'll develop a more complete and nuanced understanding of software maintenance, and you’ll also walk away with new techniques and activities to apply with your software teams to help them collaborate on the challenges of maintaining large, high-impact code bases.