- Martin Fowler in Refactoring: Improving the Design of Existing Code
This is cool stuff. As long as I've been a software engineer, it's been assumed that software designs die off quickly. My ten-year-old system is seen as a dinosaur that is better off dead, and perhaps rightfully so, so much stuff has been hacked into it to fit the new requirements we've been given. A software system can't change as quickly or as easily as the real world it's supposed to emulate, and even the best started design can't take into account all the changes that marketing, users, and even the developers themselves want to incorporate into it. It goes with the assumption that all good software starts with a good design, which is then implemented into code.
This book presents the tools with which one can redesign an existing system, given new requirements, and make it not only 'just work' with the new requirements (otherwise known as "the hack") but makes the design and structure of the system fit the additional code. It can even take badly design code and make a happier future for the designers that have to work on it. That's where it's so cool. I can't believe how many times I've heard about old systems that were quickly cobbled together and how terrible they are to work on. Usually that signals a time for the old code to 'die' and a new replacement be written from scratch, which is then followed by much screaming and tears from end users who have to learn a whole new system or have some favorite functionality that now either works entirely differently or doesn't do what it used to do.
With the tools in this book, it's now possible to just keep evolving and make the evolved code cleaner than it used to be. Yowza.