Code as a Crime Scene - The Workshop
We'll never be able to understand large-scale systems from a single snapshot of the code. Instead, we need to understand how the code evolves and how the people who work on it are organized. In this workshop you learn novel analysis techniques that support both technical and organizational decisions around your codebase.
The techniques are based on software evolution. They use data from the most underused informational source that we have in our industry: our version-control system. Combined with metaphors from forensic psychology you learn to analyze version-control data to:
- Identify the code that's most expensive to maintain amongst millions lines of code.
- Predict the modules that are most prone to defects.
- Detect architectural decay and learn to control it.
- Analyze different architectures such as layers and microservices.
Since large-scale software development is also a social activity, we'll make sure to cover techniques that let you:
- Build a knowledge map of your codebase.
- Understand how multiple developers influence code quality and what you can do about it.
- Get a psychological perspective on the challenges and pitfalls of large-scale development.
During the workshop you get access to CodeScene -- a project analysis tool that automates the analyses -- that we use for the practical exercises. Participants are encouraged to take this opportunity to analyze their own codebase. We'll also analyze systems written in different languages such as C#, Java, JavaScript, Scala, and more to illustrate that the techniques you learn are language agnostic. Once you've finished this workshop you have a new way to look at code together with powerful techniques to prioritize technical debt.