Code as a Crime Scene: The Workshop
by Adam Tornhill, September 2015
I'm happy to announce that I've now opened my Code as a Crime Scene workshop. Please Contact Me if you're interested in a workshop. I do either 1 or 2 days and all material is adapted to your company. That is, we'll focus on the programming languages and environments that you use!
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'll learn novel analysis techniques to support both those 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 systems. Combined with metaphors from forensic psychology you'll 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.
We'll analyze systems written in different languages such as C#, Java, and Scala. Since the techniques you'll learn are language agnostic, you will be able to apply them to your own codebase immediately. Once you've finished this workshop you'll have a completely new way to look at your codebase and a powerful toolbox.
This workshop is delivered in a practical hands-on style. We'll mix theory with hands-on analyses. The exercises are done by analyzing real-world systems to find real problems.
This workshop is for programmers, software architects and technical leaders. While we use Git for the exercises, the techniques aren't limited to Git and we'll also discuss how you use them with other version-control systems such as Subversion and Mercurial.
I'm also happy to customize the workshop towards your version-control system!
Book a Workshop
Please Contact Me to book a workshop for your company or conference.