The general approach to any grand IT problem is to break it down to smaller manageable pieces. Pieces that our pathetically puny brains can contain and work on at a time. Any decent software developer would have known that. And yet, we still continue to produce massive, monstrous, monolithic code that is a complete beast to interpret, comprehend, and modify. In other words, a mesh of _unmanageable_complexity_. There is without a doubt such technical misshaping contribute significantly to the schedule and budget overrun in way too many large projects, and ultimate failure.
But what am I talking about? This book is not about software applications. As an enterprise architect, Author Roger Sessions takes us up several floors to show us where he believes all these complexity evil germinates - the failure to control the complexity of IT inter-system communication across the organisation. He writes this volume to explain the problem of complexity can be illustrated via mathematical models, and purports that the application these mathematical exercises and further concepts of organisation will help divide the enterprise into simple easy pieces.
_That_ is a rather mighty claim. Is this for real?
Roger Sessions starts out strong. He begins mentioning existing methodologies and frameworks used to organise architectures in the present industry and highlights rather glaringly the missing piece in all of them - the deliberate effort to ensure the output of the work is simple. The next two chapters quickly move on present some simple real-world scenarios (like a rubik's cube, chess games, team and store organisation, etc) and then the math behind them, on how dividing them - partitioning - into smaller pieces of a bigger whole helps to solve the problem they present in a much less troublesome manner. The mathematics introduced is simple enough to understand and convincing. But somehow the lessons would be re-taught every now and then; I found the repeated explanations to be redundant and approaching incessant. It is almost as though the author fears the readers may not be convinced enough and needed reminders. Or there is the assumption the intended audience largely failed elementary math in school.
As convincing as the principles behind the math are, my disappointment set in when the transition from pure math theory into real-world business modeling began. If you think it sounded too good to be true that real-world architecture can be tackled with simplistic mathematical models, well, it is. Even Roger Sessions himself admits that real-world circumstances is in fact, not that simple. The problem with the absolute black-white nature of mathematical theory is it excludes many (grey) inter-object relationships or channels that real-world organisations would inherently possess; they cannot be blindly ignored. Take for example, the Five Laws of Partitions
'First Law of Partitions - Partitions must be true partitions.
'Second Law of Partitions - Partition definitions must be appropriate to the problem at hand.
'Third Law of Partitions - The number of subsets in a partition must be appropriate.
'Fourth Law of Partitions - The size of the subsets in a partition must be roughly equal.
'Fifth Law of Partitions - The interactions between subsets in the partitions must be minimal and well defined.
With such vague "laws" I predict a chasm of opportunities for unending subjective debates over what "appropriate", "equal size", "minimal", or "well defined" can truly mean when it comes to discussing how to partition a real organisation into smaller units. Therefore the fourth chapter's technique of Autonomous Business Capabilities (ABC) did not resonate well with me as I pondered how this applies to real departments and divisions. It is just not that simple. However, Roger Sessions' intention is squarely - and rightfully - focused on breaking things down simple enough to benefit the _business_.
On a side note, I found his deliberate avoidance to discuss application systems somewhat isolative. As a software developer, I find many of the principles he puts forth are directly applicable, and even taught, at the level of software architecture and design. Like it or not, the lifeblood of any enterprise is the myriad of software applications; keeping their design simple is as important as keeping the enterprise simple. In fact the SIP (Simple Iterative Partitions) process he recommends resembles Agile practices a lot. Somehow, I get the feeling Roger Sessions has forgotten failure in IT projects is contributed by many things happening at all levels, not just enterprise architecture alone.
It is difficult to label this book as truly seminal; due to the various falling pieces, I cannot feel the utter greatness. But don't be deceived - it has been a good _mind-stretching_ exercise (not mind-blowing). Roger Sessions has presented some eye-opening ideas that allowed me to gain new light in this argument for simplicity. His message is clear - there not enough people consciously considering simplifying things they work on; and accomplishing things by smaller projects of iterative sequence. I wholeheartedly agree on this. If the word "simplicity" never flashed across your mind (are you reading this, CIOs, CTOs, and architects???) while you were thinking through architecture or design, you need this book to yaw yourself in the right direction.
OVERALL RATING: 7/10
GOOD: Refreshing perspective; interesting model & approach for architecture; gets the point across
BAD: Repetitive; model not 100% mapped to real world; concept not 100% new; the IT problem spans across more than one area