From the description:
To understand large legacy systems we need to look beyond the current structure of the code. We need to understand both how the system evolves and how the people building it collaborate. In this session you’ll learn about a Clojure application to mine social information such as communication paths, developer knowledge and hotspots from source code repositories (including Clojure itself). It’s information you use to improve both the design and the people-side of your codebase. We’ll also look at some interesting libraries like Incanter and Instaparse before we discuss the pros and cons of writing the tool in Clojure.
From the presentation:
“Laws” of Software Evolution
Continuing Change
“a system must be continually adapted or it becomes progressively less satisfactory”
Increasing Complexity
“as a system evolves, its complexity increases unless work is done to maintain or reduce it.
Those two “laws” can be claimed for software but they are applicable to any system, including semantics.
Adam develops code that uses source control logs to identify “hot spots” in code, which is available at: Code Maat.
You are likely to also be interested in Adam’s book: Your Code as a Crime Scene: Use Forensic Techniques to Arrest Defects, Bottlenecks, and Bad Design in Your Programs
Early in his presentation Adam mentions that the majority of a programmer’s time isn’t spent programming but rather “…making changes to existing code and the majority of that, trying to understand what the code does….” Imagine capturing your “understanding” of existing code using a topic map.
That increases your value-add to the organization. Yes?