I am software architect with almost 20 years in IT.
I have read tons of book on IT, and I can state, without any hesitation, that this book is one of the best (if not THE ONE) I have ever read on software architecture. It gives a very practical architecture METHOD to tackle complex projects based on robust, yet simple, theoretical grounds (viewpoints and perspectives), you can get this from the first chapters.. following chapters can be used as a reference while tackling a project, as it contains many details on specific concerns (security, availability...etc). This book has been written by Practitioners, for Practitioners...
It is important to note that this book is NOT about enterprise architecture, NOT a software design best practice book giving tips on the latest java frameworks and best practices. It rather provides very opinionated and rigorous view on WHAT architecture is and HOW to do architecture. While this may seem obvious, I know for sure that most of existing so called "IT architecture practitioners" do not have strong method on how to do architecture, I was one on them... not any more thanks to this book !
As a developer moving into an architect role which has been newly created the prospect of what sort of processes to follow and what to deliver is a bit daunting. The great thing about this book is that it does very much lead you by the hand, with comprehensive checklists and explanations.
It covers what the role means in different contexts, what different stakeholders will benefit from and how to approach your design using viewpoints. I found this book an extremely useful resource and would thoroughly recommend it.
My reason for buying this book was to hear what the authors had to say about handling cross-cutting architectural concerns (such as security), which they refer to as "perspectives". The authors offer refreshing insights into how such concerns should be interwoven with the architecture views/viewpoints with which many architects will already be familiar when documenting their software architectures. But now that I've finally finished reading the book (500+ pages) I have to say that this book is so much more. This is essentially a "book of 2 halves". The first half discusses fundamental architecture concepts, and various elements of the architecture process. However, the second half of the book is dedicated to a catalog of viewpoints and a catalog of perspectives. These sections are, I think, the most valuable, and offer probably the best overview of different architectural concerns (such as concurrency, deployment, operations, security, availability etc.) I've come across. And the whole book is liberally sprinkled with pragmatic advice, and examples, based on the authors' experiences. In summary, the book makes a great "handbook" for both novice and experienced architects.
I'm half-way through this book, it is very easy to read and really relevant for a practitioner. The material is well organized, and orderly divided into section. Practical guidelines on the different phases of architectural design and description are actionable and useful as a reference. I found many of the concept to be generic enough to be widely applicable, yet useful and explained with a supporting set of examples. I'm really satisfied so far.
This book will serve the new and experienced architects equally. For new architects, it provides an excellent guide to a fairly contemporary world of systems architecture and helps in looking at it from various "viewpoints" and "perspectives" used by the author. This will help enormously in finding a rationale for choice of methods in any part of architecture you are involved in, be it application, data, infrastructure, security, performance & scalability etc. For the experienced ones, it will help in focussing on a particular area and delve into it in more detail. I found the examples cited to be useful and author's usage of structure UML to illustrate the examples. I would also suggest to read the Bass, Clements' book on Documenting software architecture together with this book.
Full disclosure: I used to work with Nick and Eoin in Sybase UK's consulting division. One of the ongoing arguments we would always have was, what exactly architecture, when applied to software systems, actually is. So, finally, I have a book that I can point to and say, the stuff that's in there is a pretty good basis for what architecture is for and more importantly how architects should do it. And (please believe me), these two guys definitely know how to do it. The book builds on the old 4+1 viewpoints stuff, though Nick and Eoin rename some of them for clarity. They've also introduced one further one to end up with 6 in all. Then they've introduced a new concept - perspectives - that serves as a handle for all the cross-cutting stuff, eg security, i18n and so on. So we have a 2-dimensional space of things to think about. Of course, it's impossible for any architect to fully explore this space before the building must begin, but in this book the authors help show how to prioritize work best to maximise success. If there's one thing this book skirts around, it is how architecture fits into agile development processes. But if you are an architect who's always bluffed it, or a developer wanting to move into architecture, then I recommend you buy this book.
I was expecting same quality eventhough this book as a used one but was in really good condition. Hats off to seller :). Also the way author has written the book is explaining some good scenarios for people who are doing lateral move from development to architecture and that is really helpful in my scenario.