InfoQ

News

Book Excerpt and Review: Release It!

Posted by Ryan Slobojan on Dec 27, 2007

Community
Agile,
Java,
Architecture,
.NET,
Ruby
Topics
Deployment / Datacenter ,
Enterprise Architecture ,
Stories & Case Studies ,
Delivering Quality ,
Performance & Scalability
Tags
Book

Release It!: Design and Deploy Production-Ready Software by Michael Nygard discusses what it takes to make production-ready software, and explains how this differs from feature-complete software. On his website, Nygard described the motivation behind writing this book:

This book comes from my extensive experience living with systems in production. I've often been the one to get woken up at three in the morning when some supposedly 24x7 system goes down.

Other books on design and architecture only tell you how to meet functional requirements. They help your software pass QA. In "Release It!", I'll show you how to make your software production ready. If you don't want to wear an electronic leash, you need this book.

Read Book Excerpt and Review: Release It!

From the article:

InfoQ: There seems to be a tension between the up-front work involved in creating production-ready software and the Agile idea that you do something only when you need to, and refactor as necessary - what are your thoughts on this?

Michael Nygard: As an agile developer, I struggle with this tension myself. I don't have a perfect answer for resolving it, but I think there's a parallel here to good object-oriented design.

Once you've written some code and some unit tests that pass---regardless of which came first---you refactor the code to improve the design. "Improve". Well, what does it mean to improve the design? Doesn't that mean you have to have some notion of "better" and "worse" as it applies to OO design? It does, and that's where Martin Fowler's "code smells" from Refactoring come in. "Code smells" are a qualitative way to talk about better and worse design without getting all hung up on metrics.

I think there's something similar for the architecture. For me, a remote call without a timeout is an "architecture smell". So is a SOAP call or a REST GET that tries to fetch all orders for a customer, without applying a limit.

So, while I do not subscribe to big design up front, or "big architecture up front", I do believe in defining the boundaries within the system, designing failure modes into it, and eliminating "architecture smells" as we encounter them.

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

Superb book by Stefan Tilkov Posted Dec 21, 2007 8:18 AM
Re: Superb book by Mirko Nasato Posted Dec 28, 2007 7:26 AM
It sounds very interesting by hernan garcia Posted Dec 24, 2007 11:33 PM
Excellent Article by Ranjiva Prasad Posted Dec 26, 2007 6:52 AM
  1. Back to top

    Superb book

    Dec 21, 2007 8:18 AM by Stefan Tilkov

    Michael's book is among the best IT books I've read in the past five years. Thoroughly recommended!

  2. Back to top

    It sounds very interesting

    Dec 24, 2007 11:33 PM by hernan garcia

    As the lead of an agile team that is some time wake up at three in the morning I really feel the urge to read this book, just adding it to my queue.

  3. Back to top

    Excellent Article

    Dec 26, 2007 6:52 AM by Ranjiva Prasad

    I will be buying this book as a belated Xmas present for everyone on my team. I have lost count of the number of times that I have been woken up at 3am in the morning, because my developers did not think about how an application they built would behave in a production environment. The extra sleep I will get will far offset the costs of buying 20 copies of this book!

  4. Back to top

    Re: Superb book

    Dec 28, 2007 7:26 AM by Mirko Nasato

    +1

    An excellent book indeed, and a needed one. I really think "the industry" (i.e. we developers) need to put more focus on how applications behave in production.

    Maybe part of the problem is also that many developers will never get awakened at 3am anyway, because operations will be someone else's job, and they don't get a chance to learn much about this very important aspect of software development.

    I think it would be interesting to investigate "organisational" patterns as well that can help improve application robustness, in addition to the technical design patterns.

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.