Release It! - Design and Deploy Production Ready Software by Michael T. Nygard
If you are in the business of making software systems, odds are that you might have heard about Nygard's book. People have raved about it since it was published in 2007.
That being the case, it had been on my to-read list for a while, but without any urgency. Then I went to the JAOO conference last month, and heard two sessions with Michael Nygard presenting his ideas. After that, I knew I had to get hold of the book straight away.
Release It! is something as rare as a book which is groundbreaking while stating the obvious.
First of all, Nygard makes the simple point that we (meaning the people in the business) are all too focused on making our systems ready to pass QA's tests and not on making ready to go into production. This is hardly news, but it's the dirty little secret of the business. It's not something you're supposed to say out loud. Yet Nygard does that. And not only that, he dares to demand that we do better.
Having committed this heresy, he goes on to explain how we can go around doing that.
He does that in two ways. First he present us for the anti-patterns which will stop us from having a running system in production, and then he present us for the patterns which will make it possible to avoid them. Or, if it's not possible to avoid them, to minimize the damage caused by them.
That's another theme of Nygard's book. The insistence that the system will break, and the focus on implementing ways to do damage control and recovery.
The book is not only aimed at programmers, though they should certainly read it, it's also aimed at anyone else involved in the development, testing, configuration and deployment of the system at a technical level, including people involved in the planning of those tasks.
As people might have figured by now, I think the hype around the book has been highly warranted, and I think that any person involved in the field would do well to read the book.
Spectrum of Change - I’ve come to believe that every system implicitly defines a spectrum of changes, ordered by their likelihood. As designers and developers, we make decisi...
1 month ago