Wednesday, February 03, 2010

Episode 68

James Bender, Mike Wood and Chris Woodruff created NPlus1.org to assist software architects, lead developers and those aspiring to these roles. In this interview, James and Mike discuss the goals and accomplishments of NPlus1.

Wednesday, February 03, 2010 7:47:35 AM (Eastern Standard Time, UTC-05:00)
 Monday, December 21, 2009

Complexity is the Enemy! 

This is the message driven home repeatedly by Roger Sessions in his book Simple Architectures for Complex Enterprises

Sessions recommends tackling a complex enterprise architecture by identifying the subcomponents of a complex system and dividing that system into autonomous subsystems. He refers to these subsystems as Autonomous Business Capabilities (ABCs) and the process of dividing them as a Simple Iterative Process (SIP).  

Before describing how to approach this process, Sessions presents a mathematical proof that subdividing a complex system into a set of subsystems reduces the complexity of the system as a whole. This seems intuitive to many of us, but the mathematics allow us to be more forceful in our commitment to this process. The mathematics is relatively simple (nothing beyond high school math) and he even recommends training team members in this mathematics before beginning any SIP.

A large part of an Enterprise Architect's job is to define the optimal way to partition the complex system. By applying mathematics to his model, he removes the emotions that so often dictate how a project is broken up.

The process of splitting a complex system into appropriate subsystem isn't overwhelming, but it is critical to managing complexity. According to Sessions, Each ABC should contain only elements that relate to one another; and the elements of one ABC should not relate directly to or communicate directly with any element in another ABC. Once partitioned, each ABC should be roughly the same size, although it is possible to split a subsystem further into sub-subsystems. It is also critical that communication between each subsystem take place only at a few clearly-defined points.

If this sounds like a recipe for Service Oriented Architecture, this is no coincidence. Sessions concludes his book with recommendations on moving from business partitions (ABCs) to software partitions, which he describes as "fortresses". These software partitions follow many of the same rules as ABCs created with the SIP, so making this transition is straightforward.

This is a good book for anyone who aspires to be an Architect (Enterprise or otherwise) and wants to apply a systematic approach to managing complexity.

Monday, December 21, 2009 2:45:02 PM (Eastern Standard Time, UTC-05:00)
 Thursday, July 30, 2009

NPlus1 is an organization designed to assist architects and lead developers and those aspiring to these roles.

The organization began last year with the launch of the NPlus1.org web site. This site features articles written by and for architects; links to screencasts and other resources; and announcements of upcoming events.

Recently, NPlus1 decided to expand its reach by organizing events of its own.  One of these events - the Architecture Summit - takes place Friday July 31 at the Microsoft office in Southfield, MI.  This event will feature three topics: "Introduction to Object Oriented Programming"; "Software Patterns"; and "How I Learned to Love Dependency Injection". The first topic is optional, as it is aimed at those who are new to Object Oriented Programming and, therefore might struggle with the concepts presented in the other two presentations.

I will be delivering the first two presentations (Intro to OOP and Software Patterns) while James Bender will deliver the Dependency Injection presentation.

It is not too late to register for this event and you can do so at https://www.clicktoattend.com/invitation.aspx?code=139245

Thursday, July 30, 2009 10:00:45 AM (Eastern Standard Time, UTC-05:00)