Overview
Explore techniques for prioritizing and addressing technical debt in large-scale software systems through data-driven decision-making. Delve into methods that leverage the collective intelligence of development teams to uncover problematic code and organizational issues. Learn how to analyze software evolution patterns, detect complexity trends, and identify temporal coupling in codebases. Examine real-world case studies, including the .NET Core Runtime, to understand practical applications of these techniques. Discover ways to measure team coordination, assess the impact of Conway's Law, and evaluate the effectiveness of feature teams. Gain insights into the social dimensions of software development and how they influence code quality and system architecture. Apply psychological concepts to better understand and mitigate issues like the normalization of deviance and the diffusion of responsibility in software projects.
Syllabus
Intro
Questioning Technical Debt
Collective Intelligence Uncover Evolutionary Patterns In A System
Case Study: The .NET Core Runtime
Normalization of Deviance
Supervise your complexity Trends
Code is Auto-Destructive Art
Temporal Coupling
The Microservices Shotgun Surgery Pattern
Process Loss
Measure Team Coordination The Diffusion of Responsibility
Measuring Conway's Law
The Perils of Feature Teams
Taught by
Devoxx