Agile Software Development

So it's been a while since I updated this. It's time for another book report.
I've been working through Agile Software Development, by Robert C. (Uncle Bob) Martin, of Object Mentor, Inc. This is not his latest work, and it was a long time in the oven as it was, so the book is somewhat dated. A couple of the larger examples are in C++ (which in on my backburner for now) and were written before Agile, XP, or Test-Driven Development.
But the beginning of the book is solid - the Principles on which he measures "good" OO software, and the Practices (Agile, mostly XP) that help to create it. This stuff is kind of like normalizing a data structure - the really good DBAs know how to normalize anything, but often don't in order to optimize something besides the remote chance that data could be duplicated and then corrupted. Uncle Bob knows how to write "perfect" OO software, but then tempers those design goals with the real world of performance and maintenance. He is not lazy, and doesn't encourage laziness. Instead, he points out the trade-off of code complexity vs. great design, and chooses simplicity more often than not.
I have a feeling that this book will bang around in my head quite a bit as I write code, and as I go on to teach others to write code.
Recommended, but not my highest recommendation yet. Looking forward to the next one of his that I have: "Clean Code."
In the meantime, I have started The Art of Agile Development, by James Shore and Shane Warden. Too bad I don't work at or for a F1000 company - this stuff is excellent, but too often irrelevant for just little old me.
Updates on GUIs and Frameworks in the next post.

Categories: Books