You are on page 1of 34

The Architecture Business Cycle

(ABC)
Paul Clements

clements@sei.cmu.edu
Where Do Architectures Come From?
Software architecture is based on much more
than requirements specifications.
It is the result of
Technical influences
Business influences

Social influences

Itsexistence, in turn, influences the technical,


business, and social environments. These will
affect future architectures.
Factors Influencing Architectures
Architectures are influenced by
  system stakeholders
 the development organization
 the technical environment
 the architects background and experience
Influence of System Stakeholders
Stakeholders have an interest in the
construction of a software system and might
include
 customers
 users
 developers
 project managers
 marketers
 maintainers
Stakeholders have different concerns that they
want to guarantee and/or optimize.
Customers
Customers are the people who pay for the
systems development.
Customers are not always users.

Customers concerns include the systems


 cost
 functionality
 lifetime
 development time/time to market
 quality
 flexibility to do many things on delivery day and
over its lifetime
Users
Users are the people who will use the system
End users are concerned primarily with a systems
ease of use in terms of functionality to help them do
their jobs.
System administrators are concerned with a

systems ease of use in terms of their ability to


 configure the system
 manage users
 establish security and detect security breaches
 back up information
 recover and rebuild the system
Management
Management stakeholders include those
managers from the
 development organization
 customer organization
Managements concerns include
 amortizing development costs
 growing/maintaining the workforces competency
 investing to achieve strategic goals
 staying within budget and schedule constraints
 maintaining product quality
Other Stakeholders
Developers are concerned about languages,
technology, and the best mix to solve the
problem.
Maintainers want a system they can fix,
improve, tune, configure, deploy, extend, and
so forth.
Marketers want features that meet or exceed
those of the competition at a competitive price.
Exercise
 Name three stakeholders for a system.
 For each one, describe their concerns.
 Describe how do their concerns relate to
architecture.
Concerns of System
Stakeholders
Development
organizations Marketing Maintenance
End-user organization Customer
management stakeholder stakeholder stakeholder
stakeholder stakeholder

Low cost, Neat features, Behavior, Modifiability!


keeping people Low cost, timely
short time to market, performance, delivery, not changed
employed, leveraging low cost, parity with security,
existing corporate very often!
competing products! reliability,
assets! usability!

Architect
How can I make
sure the system
has all that?
Stakeholder Involvement
The organizational goals and system
properties required by the business are rarely
understood.
Often, they are not written down at all.

Customers quality attribute requirements are


seldom documented. This results in
 goals not being achieved
 inevitable conflict between stakeholders
Architects and stakeholders
Architectsmust identify and actively engage
stakeholders early in the life cycle to
 understand the real constraints of the system
 manage the stakeholders expectations
 negotiate the systems priorities
 make tradeoffs
Factors Influencing Architectures
Architectures are influenced by
 system stakeholders
  the development organization
 the technical environment
 the architects background and experience
Development Organizations
Influence on Architectures
Software architecture can be shaped by
business/mission concerns, including
time to market existing architectures
rollout schedule plans for long-term infrastructure
use of legacy systems organizational structure
available expertise projected lifetime of the system
support for existing products workforce utilization
targeted markets cost
political interests investment in existing assets
Factors Influencing Architectures
Architectures are influenced by
 system stakeholders
 the development organization
  the technical environment
 the architects background and experience
Influence of Technical Environment
on Architectures
The technical environment that is current
when an architecture is designed will influence
that architecture.
Extreme Programming

Technology du Jour
Discussion

 Name some factors in your technical


environment that affect architectures.
Factors Influencing Architectures
Architectures are influenced by
 system stakeholders
 the development organization
 the technical environment
  the architects background and experience
Influence of Architects Background
on Architectures
Architectsmake choices based on their past
experiences:
 Good experiences will lead to the replication of
those prior designs that worked well.
 The methods, techniques, and/or technology that
led to bad experiences will be avoided in new
designs, even if those methods or techniques
might work better in subsequent designs.
 An architects choices might be influenced by
education and training.
Influences on the Architecture
Architects influences

Stakeholders

Requirements Architect(s)
Development Architecture
organization

Technical
System
environment

Architects
experience
 Architectures Affect the Factors That
Influence Them
Once the architecture is created and a system
is built, both will affect
 the structure and goals of the development
organization
 stakeholder requirements
 the architects experience
 technical environment
Architectures Affect the Factors That
Influence Them
Once the architecture is created and a system
is built, both will affect
  the structure and goals of the development
organization
 stakeholder requirements
 the architects experience
 the technical environment
How Architectures Affect the
Development Organization 1
Architectures can influence the structure of the
development organization.
Architectures prescribe the units of software
that must be implemented and integrated.
In turn, software units are the basis for
 team formation
 development, test, and integration activities
 resource allocation in schedules and budgets
How Architectures Affect the
Development Organization 2
Architectures can influence the goals of an
organization.
A successful system built from an architecture
can enable a company to establish a foothold in
a particular market area:
 The architecture can provide opportunities for the
efficient production and deployment of similar
systems.
 The organization might adjust its goals to take
advantage of new market opportunities.
Architectures Affect the Factors That
Influence Them
Once the architecture is created and a system
is built, both will affect
 the structure and goals of the development
organization
  stakeholder requirements
 the architects experience
 the technical environment
How Architectures Affect Stakeholder
Requirements
 Knowledge of similar systems leads
customers to ask for certain of features.
 Stakeholders want certain kinds of
architecturesservice-oriented, client-server,
Java, .NET, etc.
 Stakeholders will demand quality architectures in
future systems.
 Stakeholders will alter their requirements
based on the availability of existing systems.
Architectures Affect the Factors That
Influence Them
Once the architecture is created and a system
is built, both will affect
 the structure and goals of the development
organization
 stakeholder requirements
  the architects experience
 the technical environment
How Architectures Affect the
Architects Experience
The process of building systems influences
the architects experience base. This, in turn,
influences how subsequent systems in the
organization are constructed:
Successful systems built around a technology,
tool, or method will engender future systems
that are built in the same way.
The architecture for a failed system is less
likely to be chosen for future projects.
Architectures Affect the Factors That
Influence Them
Once the architecture is created and a system
is built, both will affect
 the structure and goals of the development
organization
 stakeholder requirements
 the architects experience
  the technical environment
How Architectures Affect the
Technical Environment
Occasionally, a system or architecture, such
as those listed below, will actually change the
technical environment in which system builders
operate and learn:
relational databases Java
compiler generators J2EE
table-driven operating systems EJB
spreadsheets service-oriented architecture
Windows n-tier client-server
the World Wide Web
A Cycle of Influences
The relationships among business goals,
product requirements, architect experience,
architectures, and fielded systems form a cycle
with feedback loops that an organization can
use and manage to
 handle growth
 expand its enterprise area
 take advantage of previous investments in
architectures and system building
Architecture Business Cycle (ABC)

Architects Influences
Stakeholders

Requirements Architect(s)
Development Architecture
organization

Technical
System
environment

Architects
experience
Architecture in the life cycle
 There are important activities in an
architecture-based life cycle
 Creating the business case for the system
(understanding the BUSINESS GOALS)
 Understanding the requirements, especially the ones
that will affect the architecture
 Creating or selecting the architecture
 Documenting and communicating the architecture
 Analyzing or evaluating the architecture
 Implementing the system based on the architecture
 Ensuring that the implementation conforms to the
architecture
Summary
Architecture involves more than just the
technical requirements for a system. It also
involves nontechnical factors such as the
 architects background
 organization (structure, business goals, core
competency, experience)
Architecture influences factors that affect it
 architects learning from experience
 changing the organization
 new markets being entered
 the state of the practice being advanced

You might also like