Refactoring in the 4th Dimension

Physicists tell us that there are at least four dimensions that are important to us.  We typically only think of the three spatial dimensions: length, width, and depth, but time is a dimension as well. It is clearly as important as the other three dimensions but we don't often think about it because it is not in front of our eyes. Time presents the same problem in refactoring.  We see the current structure of our code, but what we don't see in front of us is its history.  We make assumptions about how changes occur based upon conception tools like the Open/Closed Principle, but we can make our decisions based on actual data.  After all, we have version control histories of our code. In this workshop, we will mine the change histories of several open source projects and use them to identify patterns that unfold in time within codebases.  We will also discuss how what we've learned can inform and affect our reasoning about refactoring. Participants in this workshop should bring a laptop with Java development tools installed and Ruby 1.8.

Type: Tutorial

Author: Michael Feathers

Duration: 4 hours

When: 13 of May at 9:00

Where: Habana meeting room