Code Maat: VCS-based Software Analysis
September 2013
The history of our code predicts its future
Code Maat is an open-source command line tool used to mine and analyze data from version-control systems (VCS). I'm using Code Maat to accompany the techniques in my book Code as a Crime Scene.
An early version of Code Maat is available at my GitHub repo. CodeMaat is written in Clojure and still evolving. Stay tuned on my RSS or follow me on Twitter where I'll announce new versions.
The ideas behind Code Maat
To understand large-scale software systems we need to look at their evolution. The history of our system provides us with data we cannot derive from a single snapshot of the source code. Instead VCS data blends technical, social and organizational information along a temporal axis that let us map out our interaction patterns in the code. Analyzing these patterns gives us early warnings on potential design issues and development bottlenecks, as well as suggesting new modularities based on actual interactions with the code. Addressing these issues saves costs, simplifies maintenance and let us evolve our systems in the direction of how we actually work with the code.
About the name
Maat was a goddess in ancient Egyptian myth. She was the one who gave us order out of the initial chaos in the universe. Code Maat hopes to continue the work of Maat, albeit on a smaller basis, by highlighting code with chaotic development practices and suggest the directions of future refactorings to bring order to it. Further, maat was used in ancient Egypt as a concept of truth. And metrics never lie (except when they do).