The English language
is well known for its subtlety. Sometimes it’s a delight, but on other occasions
it can be very frustrating. If I use the term Gothic Architecture you will
immediately understand I am describing a style of architecture that flourished
in medieval times. And if like me you are interested in ecclesiastical architecture
you will know that this style was used in many of the great cathedrals and
churches across Europe, which were distinctive because of key architectural
patterns that enabled great increases in height and internal light of the
buildings without increasing the size of supporting pillars.
Now if I use the term
Agile Architecture, what am I referring to? In today’s Agile world I would
hazard a guess that most readers will think I am referring to the architecture techniques
and tasks undertaken in the context of an Agile software development project, not
the collection of patterns and practices that enable agile business systems. That
is, an architecture that enables agility.
This potential for
miscommunication is a core issue for enterprises. There is ample evidence that
Agile Architecture is a primary contributor to business agility, yet we do not
have a well understood architecture management system that integrates with
Agile methods.
What Bezos did here
was to lay down key business and technology architecture principles that you
might reasonably conclude were central to the extraordinary level of business
agility that we have seen demonstrated by Amazon.com, Inc. That widely
circulated edict contained the foundations of the Amazon reference architecture.
In the October 2004 CBDI
Journal we
commented, “Two of the most successful and enduring dotcom start-ups, Amazon
and eBay, now expose their core applications as Web Services. In doing so they
have created a new class of platform that could have a profound impact on
end-user organizations and IT vendors alike.”
And so the reference
architecture became the enabler of growth and agility for the Amazon business, not
we understand as a
grand plan, but through natural technological evolution. The services formed
the platform that allowed the extraordinary expansion of the Amazon business
that I would be certain not even Jeff Bezos imagined, back then in 2004. That is
real business agility, and it was delivered by smart architecture backed up by clear
policies and realized by agile processes.
Although Amazon has clearly
evolved in pursuit of solutions to specific business opportunities and
challenges, it’s also clear they have established a de facto architecture and
architecture management system that guides the work of the many product
delivery teams and ensures consistency of approach where it’s required. Let’s
consider how an enterprise might establish a similar agile architecture
management system.
A reference
architecture articulates primary principles that are typically central to an entire
enterprise. Principles should be focused on establishing the product and
solution independent environment in which agility can be delivered and
maintained, so they would be stable over time. We might refer to reference
architecture as a Level 1 architecture perspective (L1) that exists purely as a
set of models and guidelines.
Larger enterprises should
explore the business value potential of platform based architecture as a mechanism
to deliver cross enterprise consistency of core reference architecture behaviors
and to enable closer integration with the wider ecosystem including customers,
suppliers, end consumers etc. This is an extended management services platform which
encapsulates the technology infrastructure and enables rapid delivery of business
services.
The platform
architecture defines common services that manage business delivery including security,
life cycle management, change management, release management and operations, as
well as catalogs, eCommerce, B2B, regulatory control and risk management,
standardizing these key capabilities and reducing the footprint of business
domain services. The platform will also manage important behaviors that deliver
on specific business goals such as scalability and availability. For example, Amazon
services are usually very fine grained, specifically to reduce the scope of
each service in order to facilitate narrow focus SLAs and maximize scalability
by reducing individual service complexity. We might refer to platform
architecture as a Level 2 architecture perspective, engineered to be relatively
stable in support of large numbers of business
services and consumers, but also engineered to evolve and respond rapidly to
business and technology change. Not all enterprises will see business value in
making their platform and business services available to their ecosystem, but some
will.
Enterprises clearly
vary considerably in their make up in terms of geographic and organizational,
product and process standardization and differentiation, but typically there
will be considerable potential for an inventory of shared assets that leverage agile
architecture to support business agility. The assets may include:
· Common services, frameworks and components that
are designed to deliver common behaviors to all parts of the enterprise. For
example core services that establish genuinely enterprise wide services such as
Customer, Ticket, eCommerce etc; services that deliver business value by
standardizing common business services and processes.
· Configurable services, frameworks and
components that are designed to provide common behaviors but are engineered to
be customizable in local situations to accommodate many aspects of localization
ranging from the simple – taxation, geography etc, to the complex – variant
ordering patterns, variations in event and process sequence dictated by local de
facto business practices. Configurable services may provide business value
simply by providing reusable components, or they may establish a common core of
business process and information that establishes common reporting and
regulatory control in a local context, or both. Configurable services may also
be an important time to market strategy for service providers who customize
their services for each client or customer group.
· Information architecture and services.
Establishing a coherent approach to information is commonly a major issue for
large enterprises and this architecture level defines an integrated approach for
structured and unstructured (big) data, transactional and reference, enterprise
reporting and regulatory control and so on.
Common and
Configurable assets together with the Information Architecture might form a
Level 3 architecture perspective and be widely applicable across a large,
distributed enterprise.
We then have two
further levels which are closely related, Family Architecture and Product Line
Architecture. Whilst many architects chose to view Family and Product Line as
synonyms, I recommend that they are kept separate. A Family architecture is a
domain framework that is much more specialized that L3 assets that would be
applicable on a broader basis. The Family architecture establishes core business
(domain) services and possibly other artifacts specific to the domain, where
the domain is likely to be a subject area or a cluster of major types. For
example Customer, Supply Chain, Manufacturing, Risk etc. Families are also
commonly acquired products.
In contrast Product
Line architecture is what it says – it’s the architecture for a product
offering. The product is an offering that has direct relationship to end customer
revenue and usually continuity of purpose over multiple releases. Although from
a narrow technical perspective the Product and Family architectures might be
similar, the way a product is managed must mirror the business product life
cycle. Family architectures may therefore be engineered for stability, whereas,
depending on the industry sector, product line architectures may be engineered
for maximum agility and minimum response time.
Finally we have the Solution architecture level, the
architecture specific to solution project delivery, where the focus is on feature
architecture and integrating solution architecture with the Level 1 to 5
architecture perspectives. It’s important to note that where product line
architecture is used, then this may subsume the Solution architecture.
These six architecture
levels provide us with a nomenclature for agile architecture that will be central
to managing agility into the delivered product/solution. The architecture perspective
guides the structure of programs and projects and the incorporation of
architecture and reuse goals into delivery charters. The architecture also provides
traceability and governance over realization of core architecture principles.
The question of how Agile
Architecture integrates with Agile delivery is likely to prove contentious
because architecture introduces a form of direction that contradicts Agile
concepts. Yet the lessons from Amazon are insightful. The most senior business
management need to be fully engaged and actively leading the development of architectural
direction. Further in large enterprises customer project demand needs to be
managed and aligned with business strategy and architectural direction.
There’s no reason why
these Demand and Definition processes shouldn’t adopt Agile concepts, notably
cross functional teams, time boxes and backlogs. The outcomes should be excellent
visibility and traceability of key strategies and policies that provide real clarity
of purpose for projects, that will increase the probability of success. In a typical
large enterprise use of existing (or well understood) organizational concepts,
adjusted to use aspects of Agile methods as discussed, will meet less
organizational resistance. For example:
1. Architecture
Review Board (ARB) or
equivalent, a cross functional team (senior representatives of business,
product management, architecture and delivery), that provide direction and
funding to all architecture development.
2. Design
Authority (DA), also a cross
functional team (domain specific expert level representatives of business,
product management, architecture and delivery), that transform raw customer
demand stream into project charters and manage the portfolio view. It is the DA
that takes responsibility for aggregating and decomposing customer and strategic
demand, chartering Common, Product Line and Family architecture, typically as
integral elements of delivery projects, which can demonstrate business value.
3. Investigatory
architecture projects – short
duration projects that validate assumptions prior to chartering composite
architecture/delivery projects. Sometimes carried out as part of a Definition
Phase activity concurrent with outline requirements and knowledge discovery. Using
patterns as a mechanism to increase consistency of architecture decisions and communicate
them to delivery projects at sensible level of detail that is useful to
delivery teams. Recommend includes
delivery team members as appropriate.
Note this is a
recursive model, and the process may executed at enterprise and program level.
You may ask where Enterprise
Architecture is in this. The answer is that enterprise architecture is a role
and responsibility that must coordinate and govern all levels of architecture. Enterprise
Architects are most likely to be assigned to a specific architecture
perspective level. The notion of, “one architecture to rule them all” really
doesn’t exist.
Each enterprise should
develop its own architecture management approach, and integrate this into an
end to end architecture, delivery and governance process. The term Agile
Architecture should be used to describe and deliver architecture that
facilitates the agile business by compliance with reference, platform and other
architectures that facilitate evolution, customization and plug and play.
Faster cycle time and quality outcomes are then a function of both the reusable
patterns and parts available for assembly and the Agile delivery process.
In medieval times the
builders of the Gothic cathedrals didn’t start their designs from scratch. But
equally they didn’t have finely detailed (ivory tower) plans – the technology didn’t
exist to support that. Master builders moved from city to city bringing their
proven architecture in their heads, often together with experienced craftsmen, to
new projects. Craftsmen and master builders together tried out new designs and
gradually evolved core patterns such as the flying buttress, which became standard
components in cathedrals across Europe. Sometimes the great buildings fell down
during construction and the builders had to adapt the architecture and try
again. They were truly early adopters of Agile methods as they combined
architecture and build in what clearly was from time to time an empirical delivery
approach, but they also had their equivalent of a reference architecture and
patterns that enabled systematic reuse of proven designs. Of course their
delivery cycle time was a little longer than today’s Agile project!

Talk to Everware-CBDIabout the Agile Enterprise Workshop. This is
currently available as an in-house, intensive workshop. Public scheduled
classes will hopefully follow next year.