Dismantle the overwhelming complexity in your IT projects with strategies and real-world examples from a leading expert on enterprise architecture. This guide describes best practices for creating an efficient IT organization that consistently delivers on time, on budget, and in line with business needs.
IT systems have become too complex and too expensive. Complexity can create delays, cost overruns, and outcomes that do not meet business requirements. The resulting losses can impact your entire company. This guide demonstrates that, contrary to popular belief, complex problems demand simple solutions. The author believes that 50 percent of the complexity of a typical IT project can and should be eliminated and he shows you how to do it.
You will learn a model for understanding complexity, the three tenets of complexity control, and how to apply specific techniques such as checking architectures for validity. Find out how the authors methodology could have saved a real-world IT project that went off track, and ways to implement his solutions in a variety of situations.
Review By: Jennifer Gau 02/16/2009"Simple Architectures for Complex Enterprises" written by Roger Sessions is a well written, well organized book that is both informative and relatively short. This book is geared for someone with basic familiarity of enterprise architecture and its myriad of problems or someone looking to improve upon a preexisting architecture. One aspect I really enjoyed is the use of stories and examples that aptly illustrate the main points of each section. Another bonus is the appendix, which highlights the main points of the book–notes for the reader in a rush. Unlike some technical volumes, this book is not all theory, but theory followed by the application so the reader can understand how each concept is relevant in the real world. The book provides a sensible framework for identifying complexity, makes a strong business case for reducing complexity, and then provides a process for iteratively removing complexity from the enterprise architecture. This is ideal for someone looking to suggest improvements to their team. The book is divided into two sections: an exploration into complexity involving theory, followed by a quest for simplification which makes up the meat of the book.
In the chapter on complexity, Roger Sessions lists the issues that plague enterprise architecture. As a company encounters more and more issues, the architecture becomes increasingly convoluted leading to unreliable information, untimely information, and poor relationships across business units. After discussing all the issues plaguing enterprise architecture, Sessions continues by exposing three frameworks that are used for classifying and developing architecture, going through the pros and cons for each. Then Sessions examines several ways the concept of partitioning can simplify a situation. By dividing a complicated problem into several partitions that follow five basic rules, the problem can be overcome, made clear, understandable, and–most importantly–manageable.
Next, Sessions investigates why it is in the architect's favor to reduce complexity following a rational mathematical explanation. He further delves into reasons for making partitions follow the rules explained in Chapter Two. In addition, he covers how to measure complexity by looking at the number of decision points in a system modeled through dice throws. Thus, a user can assess how complex a problem is and how to reduce the complexity to a more manageable amount. While interesting, these sections are mathematically heavy and seem longer than necessary.
In the quest for simplification, Session reviews the goals with Simple Iterative Partitions (SIP) and how it differs from the current methodologies. SIP does not care about implementation of a function but is concerned with breaking down the enterprise into a series of simpler functions and understanding the relationship between the functions. It focuses on relationship types and how understanding them allows you to discover ways they can be simplified. Many of these concepts will sound similar to those familiar with the best practices in software engineering.
The main goals of the SIP process that are unique amongst the other architectural methodologies include complexity control, logic based decisions, value driven deliverables, reproducible results, and verifiable architectures. One section I really like in Chapter Five is addressing how SIP addresses each issue that plagues enterprise architecture. The steps to achieving SIP are clearly spelled out and are comprised of preparation, partitioning, partition simplification, partition prioritization, and iteration. This section provides a common process and vocabulary, such as an advanced process for "divide and conquer." Overall, I found the book interesting and informative, a good read for anyone interested in working in enterprise architecture.