Agile Code Reviews, Part 2

In my post on agile code reviews, I described how we were attacking our code through automated refactorings that we trusted to apply without tests. Mostly we applied a series of Extract Method refactorings to long methods in the process of performing a Compose Method refactoring on the long method. Eventually, your team will run out of situations where you can apply automated refactorings to improve the design of your code and you’ll have to start applying actual code changes. Several of the commenters on my previous post remarked that making changes without unit tests implies risk that can only be averted with sufficient manual testing and that such risk is better mitigated by automated tests. In this followup post, I’ll describe the results from our team at applying the decoupling techniques described by Michael Feathers to our legacy code so that we could backfill unit tests onto the legacy code in preparation for a design change we want to make.

Read the rest of this entry »

Exploding Software Engineering Myths

Gery Derbier forwarded a link on the agile list for “Exploding Software Engineering Myths”, an article by Janie Chang at Microsoft Research. Chang describes the research of the Empirical Software Engineering and Measurement (ESM) research group at Microsoft . The group investigated a number of software engineering myths empirically using the large software engineering teams at Microsoft.

Read the rest of this entry »