Chapter 4

The Enterprise as Complex System

Perhaps the biggest aha moment on the road to Agile Architecture is when you realize that implementing such an architecture isn't traditional systems engineering (TSE) at all, but rather a fundamentally different approach to dealing with complexity in the IT environment. Needless to say, this realization is an especially big wake-up call for people with TSE backgrounds! The fundamental shift in thinking is this: TSE focuses on building big systems out of small components, where the behavior of the resulting system depends directly on the properties of the components. Essentially, TSE boils down to a “connecting things” way of thinking about distributed computing, where integration is the central activity, and what you end up with when you're done with all the integrating is at best what you expected to build.

Agile Architecture, on the other hand, calls for an entirely different approach—Complex Systems Engineering (CSE). In this context, we focus on building and maintaining the Business Service abstraction, which supports inherently unpredictable behavior as the business composes Services to support fundamentally dynamic business processes. Essentially, with Agile Architecture we're building for change, whereas with TSE, we're building for stability. The problem with stability, of course, is it only takes the business so far—if the organization requires business agility, then it's much better off implementing Agile Architecture.

Engineering ...

Get The Agile Architecture Revolution: How Cloud Computing, REST-Based SOA, and Mobile Computing Are Changing Enterprise IT now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.