Most Helpful Customer Reviews
|
|
10 of 11 people found the following review helpful:
5.0 out of 5 stars
Architectural Common Sense, July 12, 2008
I have managed to talk to quite a few good software/enterprise architects over the years. When I do, the issues that we often talk about most are simplicity of design and how to manage complexity. In general, understanding that the management of complexity is the fundamental task of architecture is what defines a good architect. This book indicates that Roger really gets this issue. He also seems to get the business alignment issues that are sometimes lacking from architecture texts.
From Roger's advice on partitioning a solution to his advice on implementing a system using an incremental approach everything here is sound and well articulated. This book is a short read but almost definitely worth your time if you are building anything in software from an enterprise down. Much of the principles he professes are the same principles that are important in regular software architecture. Components and object oriented design are merely methods of figuring out internal equivalence classes and appropriately partitioning solutions. Iterative development and some of the new agile principles are based on the same idea he advocates for the enterprise, incremental delivery.
If for nothing else, this book is useful because Sessions is very successful in mathematically proving that many of his ideas should work. Most texts advocating incremental methodologies or problem decomposition can sound evangelical. This book does not.
Overall, SIP sounds like it is a very good foundation for a company's enterprise architecture.
That said, I am sure my advice would mean more if I did enterprise architecture. I hope that it is merely enough to say this.. I am in software development. I have helped provide or provided the technical architecure on quite a few projects. I feel that in general Roger has the core concerns nailed with his book.
|
|
|
5 of 5 people found the following review helpful:
4.0 out of 5 stars
Not 100% applicable, January 30, 2009
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
|
|
|
5 of 6 people found the following review helpful:
2.0 out of 5 stars
Where's the Beef?, December 9, 2008
That's the question I kept asking myself as I re-read Simple Architectures for Complex Enterprises. Let me say at the outset that I'm totally open to the possibility that I missed the point--again!
The book starts off with an interesting discussion of complexity. Ok, not bad. Then, Sessions introduces the set-theoretic concepts of equivalence classes and partitions as means to reduce complexity. At this point, being a math enthusiast, I was well baited. By Chapter 5, where he first begins to discuss the SIP process, I had high expectations. By the time I completed Chapter 6, I was completely disappointed. His fundamental equivalence relations--synergistic and autonomous--are intriguing in their definition, but amount to being completely arbitrary and subjective. I found no real mathematical grounding at all, which is a major premise and selling point of his approach.
After reading about his type system, with its implementations and deployments, I came away feeling that I had read yet another description of how to do a functional decomposition (FD). This time, though, it comes wrapped in terminology that is pedantic. His "laws of partitions" are nothing more than heuristics for checking a FD:
- The First Law basically says that the FD is hierarchical. That is, a node can have only one parent.
- The Second Law states that the FD must make sense.
- The Third Law states that each level of the FD should contain 3-8 child nodes.
- The Fourth Law says that each child node in the FD should be about the same in scope, complexity, and importance as the other child nodes at the same level.
- The Fifth Law is not so much a FD rule so much as it is a statement about low coupling and high cohesion.
I think Roger Sessions is very smart and innovative (e.g., his metaphor of Software Fortresses is very well done). So, I want to give him the benefit of the doubt. But I don't think there's anything new here, folks. It seems to be a rehash of some Structured Analysis and Design concepts and other concepts from the past.
Someone please show me where I missed the boat!
|
|
|
Most Recent Customer Reviews
|