Not so long ago I’ve decided to read Release It! by Michael T. Nygard, and it’s a really awesome book. It covers all technical parts software development process from initial design, and planning to deployment, operations and possible inevitable failures. The book has a bunch of anti-patterns with fun to read case studies when everything went bad, but sometimes eventually resolved. It also covers good approaches with examples, but without going to “silver bullet” world.
One of the best books that I’ve recently read.