University of Minnesota
Software Engineering Center

You are here

Refactoring with Observability: Novel Practices For Learning

Date of Presentation: 
Thursday, January 16, 2020
Presented By: 
In this example-heavy session, I'll share two techniques we've invented within our dojo immersive learning environments to increase the design-time observability of complex software systems: refactoring with telemetry and architecture mapping. Refactoring with telemetry establishes a tight feedback loop between structural changes a development team makes and sometimes esoteric code quality metrics. It's an easy-to-use learning tool that makes clear the close relationship between small, continuous refactoring and long term sustainability. To map architectures and previsualize changes, we use the C4 Model of software architecture. A subset of UML, C4 turns diagrams into useful maps relevant for different audiences and contexts (business stakeholders, ops, and dev staff). I'll share how we engage teams in the mapping process and use the maps to align technical debt repayment with the delivery of value, invite multiple perspectives and new ideas, and engender shared mental models around larger legacy systems. Think of it as story mapping for systems.