Home » Book Reviews

Release It!: Design and Deploy Production-Ready Software

16 December 2008 62 views No Comment

Release It!: Design and Deploy Production-Ready Software 
by Michael T. Nygard 

Publisher: The Pragmatic Programmers 
RRP: $34.95 (Available in PDF for $22) 

Table of Contents

Buy at Amazon 
Buy Direct From Publisher 

Review By Niklas Saers 

Summary 
Release It is a great book if your day job, like mine, is to create enterprise systems that integrate lots of sub-systems. The author clearly states “I’ve targeted this book at architects, designers, and developers of enterprise-class software systems—this includes websites, web services, and EAI projects, among others.” For an Indie Mac developer or an up-and-coming iPhone developer, unless what you’re making is enterprise-class software that needs to integrate with lots of sub-system, you probably want to give this book a miss. 

Full Review
If you’re a Mac Indie and get this book because you need to integrate tightly with web systems, I’d recommend that you skip to chapter 11 and start from there. Up until there, the book is nice to read but won’t really apply to you. The book is written for younger developers who haven’t had ten years of development experience and thus have had relatively few opportunities to work on giant projects, and it aims to fill in their gaps of experience with the failures done by others. Since most of this audience has probably been heavily exposed to Java, the fact that the book is quite Java-centric shouldn’t be a problem. Regarding writing style the book uses too many hyphens for my taste, uses some terms before defining them and has quite a few forward-references, but apart from this the book is well written. 

While this book is called “Release It”, it should really be called “Designed for Stability” and have a nice QA stamp over it on the front cover. When reading it, I kept wondering about the title, because in my view, this book is not about getting your application out the door, it’s about designing it to face the harsh realities of living in a world with evil users and malfunctioning systems. The author does state multiple times that getting the software out the door is important to get working on the issues it will have, but it wasn’t really until coming to the end of the book and seeing that so many people were doing the same mistakes I know I have done that I began thinking that perhaps it would be ok to launch a system without having gotten every topic in the book under control. 

The book is very thick with lots of topics that aren’t covered in-depth, making me suspect at times that they are there to fill pages. Spending 10 pages to explain about TCP/IP and HTTP seems silly to me as this is stuff the target audience knows. A simple reminder of the key points would have been sufficient for the author to make his point. Having raised my pet complaint about spending all the pages on stuff you probably know, I must admit that if it’s been a couple of years since you left CS class at the university, the book does refresh your memory on very many subjects that you aught to be thinking about when building enterprise systems. While this book unlike the name suggests doesn’t focus on methodologies for how to get the work done or the product out the door, the book brings good examples and does it best at surprising you with problems in code that looks all right. 

I very much like that the book makes the case that you should be critical about client libraries and remember that they are often written by people like ourselves who are just as likely as us to make mistakes. In discussing this it teaches us to be cynical about software and assume it is going to fail. This is great as we often tend to write our code optimistically about how the systems we’re interacting with will behave. 

Rating: four out of six stars 

About Niklas
Niklas Saersis a Norwegian who with his computer science master degree and conservatory master degree enjoys juggeling hi- and low-fi around. He’s always been programming and has seen too many projects fail, which is why he researched software development methodologies for his CS master thesis. He got his network experience running a Norwegian ISP, has been a lecturer within computer/music and programming, and works today in the private sector in a little city on the Danish westcoast where he lives together with his beautiful wife. He finally got around to his long-time dream of learning Cocoa February 2008 motivated by the iPhone SDK beta launch. He loves dancing, prefers his beer dark and coffee freshly roasted and grinded, takes way to many photos and loves playing in early music ensembles. you can find Niklas on twitter as niklassaers

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.