Book Roundup

A list of recommendations for software engineering books

I’ve been meaning to write a compilation of what are some good books on software engineering, for quite some time. Although I previously wrote here some reviews for specific books (for example for Release It!), I wanted to do a general roundup of several titles in a more lightweight fashion rather than some in-depth comment.

I’ve finally compiled such a list in a page for book DNA titled The best books on building high-quality enterprise software.

Read more...

Book Review: Release It!

I've been meaning to read this book for a long time, and finally got the chance and finished it! It's been a fantastic journey throughout the main important topics of modern software architecture.

Following the DRY principle, I won't repeat myself, so here's the review I left on GoodReads.

Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)Release It!: Design and Deploy Production-Ready Software by Michael T. Nygard
My rating: 5 of 5 stars

It's a fantastic book about good software engineering from non-traditional viewpoints.

It takes another approach on good practices of software architecture: it considers more than just classic quality attributes, and it makes you think you to architect your system in a way that's not only reliable and with good quality, but also easy to operate with. Concepts such as evolutionary architecture, adaptable architecture are reivewed throughout the chapters on the last section. In particular I enjoyed to read more about how to make the architecture easy to build and integrate continuously, deploy it safely to production, and make changes on it (because, of course, "change is the defining characteristic of software"). It finishes with a great introduction to chaos engineering.

It covers all important topics on good software architecture: stability patterns, deployability, security, how to avoid typical errors (like cascading failures, and what to do in such scenarios), 12-factor app, and more.

I really liked the concept of cynical software: rather than assuming everything is going to be fine, ask what could possible go wrong, and expect (and be prepared to) the software to fail. Failures will inevitable occur, and we have to think what to do about it.

As an experienced software engineering practitioner, it was highly enjoyable for me to read the case studies presented, as their analysis and conclusions were deeply enlightening.

All in all, a fantastic read, which gave me a lot of food for thought.

View all my reviews
Read more...