On "Release it".

18 Dec 2013

“Release It” by Michael Nygard has been forever in my to-read list, not until now I need it the most. With DevOps methodology rising, I ended up more involved with the support of a production system that I also help develop. In that moment the Book was a mandatory read for me.

What they do not teach in school.

Statistics gurantee that the majority of programmers have nerver worked on really large, mission-critical software. First, salary surveys consistently show that most programmers have less than ten years of experience. Second the histogram of project sizes is heavely weighted toward the smaller end of the scale. So, take a young population with the relatively few opportunities to work on a giant projects, and it’s not surprice that experience at that level is hard to find.

These issues certainly aren’t covered in colleges and universities. Where optimization regards to tweaking up some search algorithm.

That alone is the main reason why I am happy I read the book. As mentioned several time in the book, getting your application to ship is only half the battle. Your application still has to survive in the field, with failing integration points, high peak of concurrent users or slow responses from a third party web services. This book is packed with expirience and advices to make your application ready to survive “production”.

Misconceptions tackle by the book

Patterns and Antipatterns for Production ready software

Antipatterns:

Patterns:

Quotes

Some great quotes I gather from the book:

Design and architecture decisions are also financial decisions. These choices must be made with and eye toward their implementation cost as well as their downstream costs


In the world of bussines it all come down to money. Systems cost money. And to stay in bussines, you need to make money.


Why Agile? Their emphasis on early delivery and incremental improvements means software gets into production quickly. Since production is the only place to learn how the software will repond to real-world stimuli. I avocate any appproach that begins the learning process as soon as possible.


Enterprise Software systems - enterprise class symple means that the software must be availbale , or the company loses money.


Bugs will happen. They cannot be eliminated, so they must be survived insted.


I realized that the development team were building everything to pass testing, not to run in production.


One of the biggest lesson from the book:

The funsion of technical and financial viewpoints is one of the most important recurring themes in this book.

Go Read The Book.

The book is a classic and a must read for any developer. Full of knowledge and expirience is a good way to get familiar with the problems faced in production enviroments, that not everyone in the software development world get the opportunity to experience. I left the best book quote for the end:

The true birth of a system comes not on the day that design and development begins, or even when the project is conceived, but on the day it launches into production. This is a beginning, not an end. Over time, the system will grow and mature. It will gain new features. It will lose defects, and perhaps gain some too. It will become what it was meant to be, or, even better, it will become what it needs to be. Most of all, it must change. As system that cannot adapt to its environment is stillborn.