The third and final my Best Agile Books the 2007 Edition series. (Part II was Background Material). There will be even fewer notes than there were in yesterday’s. It really has been a long week.
Working Effectively with Legacy Code by Michael Feathers – Do you have legacy code? Does your code include areas that are untested and tightly coupled? Yes? Then you have legacy code. Michael focuses on the problem of teasing apart legacy
Refactoring: Improving the Design of Existing Code by Martin Fowler et al – One of the original Agile related books. It defines the concept of refactoring (personal bugbear – refactorings are small changes that don’t affect the behavior of the code), explains how to practice it and catalogs over 70 refactorings.
Test Driven Development by Kent Beck – The original TDD book. Clean, bug free, simple code. That is the promise of TDD. Its that simple nothing more to say. BTW the examples are in C# so some of the details won’t apply to Java/Ruby/Python coders.
Late Breaking news: J.B. Rainsberger introduced me to: Test Driven: TDD and Acceptance TDD for Java Developers by Lasse Koskela. I’m only about 120 pages in, but so far am very impressed. Its even caused me to change a few of my habits – specifically which test I choose to write first.
Another Late Breaking item – Robin Dymond gave this one a very strong recommendation: xUnit Test Patterns: Refactoring Test Code by Gerard Meszaros. I’ve not read this yet – but Gerard covers Test Smells and Refactoring. In other words how to spot trouble your test code and repair the damage.
Refactoring to Patterns by Joshua Kerievsky. Have mess, want to bring some order to it.
Head First Design Patterns by Elisabeth Freeman (et al). I struggled through the Original GOF Design Patterns book twelve years ago now. Thankfully Elisabeth and co. wrote a funny, irreverent and so you don’t have to.
What are your favorite Agile Books?
Coming up posts on: Iteration Length (another lesson learned that I didn’t think of in my original post) and Pair Programming vs. Code Reviews a rebuttal.
Mark Levison has been helping Scrum teams and organizations with Agile, Scrum and Kanban style approaches since 2001. From certified scrum master training to custom Agile courses, he has helped well over 8,000 individuals, earning him respect and top rated reviews as one of the pioneers within the industry, as well as a raft of certifications from the ScrumAlliance. Mark has been a speaker at various Agile Conferences for more than 20 years, and is a published Scrum author with eBooks as well as articles on InfoQ.com, ScrumAlliance.org an AgileAlliance.org.
Working Effectively with Legacy Code: The author makes suggestions that, while they make his life easier, make the code worse. We shouldn’t use sealed classes because instead of writing a proper unit test, he wants to extend and play with the internals of things. We should change private methods to public because no one else is using our code, and we want to test it (its not like we should instead test the public contract, therefore testing the private!). It goes on and on, with suggestions that make a consultant’s life easier and a developer’s a nightmare. Thanks Micheal!
While your list is full of old books (not quite 2007 material) – I definately think Refactoring to Patterns was great and deserves to be read. Its one of the few good design patterns books that have come out (GoF, POSA, PoEA, and EIP are the others).
Also, I would highly recommend reading books by real developers, not consultants.
Mark Levison says
Clearly we differ on the value of Michael’s book. Even if you didn’t find the techniques useful for your needs, did it at least challenge your thinking?
Yes alot of these books are older than 2007 – however all the title promises is that these are in my opinion the most interesting Agile related books that I’m currently aware of.