Before you can begin refactoring, you need to know what to look for. I'm a very visual person, so whenever I work on refactoring a large or complex application, I begin by whiteboarding all components ...
A few weeks ago, I wrote about how a good software team will defer decisions as long as possible. Smart teams will design and build systems that don’t lock them into any particular implementation ...