Killing legacy code

Michael C. Feathers defines legacy code as code without tests. I find it’s also likely, as a consequence, to be heavily coupled, with deep tendrils interconnecting multiple components. Indeed, many of the patterns in his Working Effectively With Legacy Code are about how to sever those tendrils safely in order to test the components individually. … More Killing legacy code

Usable APIs follow-up

Following the Usable APIs guided conversation at CodeCraftConf, I wanted to capture some of the thoughts that came out. Starting an API (as a user or a developer) Does the API documentation include examples of usage (i.e. have they thought about the client) How mature is the API? How well maintained is it? How long … More Usable APIs follow-up