Refactor Legacy Code

Retrofitting Tests

Retrofitting tests into legacy code is difficult process but can give us the ability to redesign and improve the quality of that software as we go. It is generally a good idea to add tests before refactoring code. Tests serve as a safety net so if I make a mistake in refactoring the test will …

Read More
Specify Behaviors with Tests

Test Driven Documentation

Part of allowing change to happen during development is by building software with engineering practices that support change. The most important of these practices is correctly using unit tests. Tests represent a way to both embody understanding of the system and prove that the system works. Unit tests are really a form of specifications because …

Read More
Rants

Resistance to Change

The biggest impediment to change is a cultural one. Change means things are going to be different and human beings resist this at some level. Change requires being able to adapt and this can be difficult so as a result we tend to resist it. I often run an interesting experiment in some of my …

Read More