![](https://play-lh.googleusercontent.com/EGemoI2NTXmTsBVtJqk8jxF9rh8ApRWfsIMQSt2uE4OcpQqbFu7f7NbTK05lx80nuSijCz7sc3a277R67g=s32)
A Google user
"97 Things Every Software Architect Should Know" is a new title from O’Reilly. It is edited by Richard Monson-Haefel, you might know him from "Enterprise JavaBeans", "Java Message Services" or "J2EE Web Services". This time, his book is a set of guidelines collected from about 50 experienced software architects. Among them you can find Google, Microsoft, Sun Microsystems employees, authors of books, freelancers etc. My favorites are:
- Michael Nygard – "wrote: Release It! Design and Deploy Production-Ready Software (Pragmatic Bookshelf)…"
- Craig Russell – "is a practicing software architect specializing in object persistence and distributed systems. He currently works as a senior staff engineer at Sun Microsystems."
- Mark Ramm – "is BDFL for TurboGears 2, a python enthusiast, and a generally crazy dude … "
Each advice is maximum two pages long, with author's short biography note at the end. All 97 advices are based on real life experience. Often, there are short stories showing why is it important or how it works. There is even story about the design of F16 jet fighter aircraft! It really helps to remember information.
I like this book because it is very pragmatic. In my opinion the subtitle describes it in a perfect way, which is "Collective Wisdom from the Experts". All advices are based on many years of experience and in my opinion all of them are truly important. Some of them are very obvious, but it is good to read about it one more time. Each chapter is very short so you do not need a lot of time to read it. It is a perfect read for a bus or short break. My favorite hints are:
- "One Line of Working Code is Worth 500 of specification"
- "Commit-and-Run is a Crime"
- "Avoid Scheduling Failures"
If you are looking for a book which says about architecture problems and gives you "3000-Foot view" this one is for you. I didn’t like that high level problems, a lot of them should be dedicated to team leaders. I was looking for a book focused on design patterns, best practices and advices for software design, and this one is more about how to lead a group of people. For example, one of these advices says that you are supposed to stand up while talking to developers to increase effectiveness of your communication. I agree, it is important, but it is a book about software architecture not interpersonal communication. Read the titles of the chapters before buying it. It is probably my problem, because I am not an architect, I am rather software developer/designer.
I recommend "97 Things Every Software Architect Should Know" to team leaders and high level architects. For those who would like to summarize their knowledge. It is not a tutorial or "how to" book. I don't recommend it to software developers and designers, you might be bored.