The metaphor of technical debt acknowledges that development teams sometimes accept compromises in a system in one dimension (for example, modularity) to meet an urgent demand in another dimension (for example, a deadline), and that such compromises incur a “debt.” If not properly managed, the interest on this debt may accrue, hampering system stability and quality and impacting the team’s ability to deliver enhancements at a pace that satisfies business needs.
Although unmanaged debt can have disastrous results, strategically managed debt can help organizations take advantage of time-sensitive opportunities, fulfill market needs, and acquire stakeholder feedback. Because architecture has such leverage within the overall development lifecycle, strategic management of architectural debt is important.
This tutorial introduces practical aspects of managing technical debt. During this session, we will discuss the technical-debt metaphor and learn about techniques for measuring and communicating technical debt. We will play the Hard Choices game, an engaging technique for communicating the tradeoffs of technical-debt management to colleagues and managers. After the game, we’ll compare strategies and share practices to help make these choices. We will conclude by raising awareness of efforts to provide software engineers a foundation for managing tradeoffs based on models of their economic impacts.
Learning Outcomes
- Understand key concepts
- Acquire a technique for communicating the tradeoffs of technical debt to colleagues and managers
- Learn about practical tools and techniques that can address part of the problem today
- Gain knowledge of a foundation for managing tradeoffs based on models of economic impacts