100% found this document useful (1 vote)
287 views60 pages

Agile Architecture in Practice

Agile Architecture in Practice

Uploaded by

Rasha Mansour
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
287 views60 pages

Agile Architecture in Practice

Agile Architecture in Practice

Uploaded by

Rasha Mansour
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 60

Agile Architecture in Practice

with RCDA
Eltjo Poort
TU/E Guest lecture 15 October 2019
PDEng Software Technology

© 2019 CGI Inc. Risk and Cost Driven Architecture 1


RCDA PhD
Founder / owner
CGI’s agile architecture Improving Solution
approach Architecting Practices

Architecture
Practice Lead
Reviewer
Coach
Agile transformer

Linda Northrop
14 Architecture
Peer-reviewed publications
Award
2 Best paper awards
Dr. Eltjo Poort

© 2019 CGI Inc. Risk and Cost Driven Architecture 2


Architecture Fundamentals

© 2019 CGI Inc. 3


Architecture is structure

Architecture of a system: a collection of


computational components together with a
description of the interactions between these
components—the connectors.
- Mary Shaw

© 2019 CGI Inc. 4


Architecture is design

“All architecture is design, but not all design is


architecture”
– Grady Booch

Discuss:
What differentiates architecture
from other design disciplines?

© 2019 CGI Inc. 5


Architecture versus design

Architecture Design
Fundamental properties All properties
Define guidelines Follow guidelines
Cross-cutting concerns Individual components
High impact (risk, cost) Details
Business stakeholders Developers
Manage uncertainty Avoid uncertainty

Conceptual integrity Completeness

© 2019 CGI Inc. 6


Architecture is decisions
“Architecture represents the significant design
decisions that shape a system, where
significant is measured by cost of change.”
– Grady Booch
Discuss:
Do architects make
“Software architecture is the set of design decisions?
decisions which, if made incorrectly, may
cause your project to be cancelled.”
– Eoin Woods

© 2019 CGI Inc.


Architecture is communication
Successful architects spend about 50% of
their time on stakeholder communication.

Success depends on architects’ ability to


speak stakeholders’ language(s):
• Business language (risk, cost, value) – cf.
“Why they just don’t get it” (Jochem
Schulenklopper on YouTube)
• End-user language
• DEV and OPS languages
• Security language
• …

Source: Philippe Kruchten

© 2019 CGI Inc. 8


Architecture is abstraction
To be able to reason about complex systems,
we need to leave out details.

The Architect Elevator


The ability to move quickly between levels of
abstraction and audiences while adjusting
communication style accordingly.
It’s not so much where your base is, but how
many floors up or down can you travel (and
how fast).

Gregor Hohpe, architectelevator.com


© 2019 CGI Inc. 9
Diagram: Grady Booch

Architecture is context
Business
Architects cannot make the right design
Schedule
decisions without understanding the context of Cost Mission
the solution they are designing.
Resources Legal
Relying on generic design principles is not Values
Environment
good enough for the trade-offs architects have
to make. Compatibility Ethical/Moral

Flavors of context:
Complexity Dependability
• Business context
• Operational context
• Security/privacy context Production Quality

• Development context Development Operations


Resilience Performance
• Domain/market context Functionality

• …
© 2019 CGI Inc. 10
What do we architect?

Internal structure of IT infrastructure for


software Software CI/CD pipelines application landscape

Integrated software
systems Enterprise IT systems Embedded systems

© 2019 CGI Inc. 11


Source: Dana Bredemeyer
Architecture is self-similar

Enterprise architecture
decisions
Domain architecture
decisions
Enterprise scope
Application architecture
decisions

Domain A scope Domain B scope

Application scope
Component scope

Component owner decisions

© 2019 CGI Inc. 12


Architecture according to ANSI/IEEE/ISO

Architecture: fundamental concepts or


properties of a system in its
environment embodied in its elements,
relationships, and in the principles of
its design and evolution.

ANSI/IEEE/ISO Std. 42010-2011, Architecture


Description (Systems and Software
Engineering)

© 2019 CGI Inc. 13


History of digital (software) architecture
Fred Brooks Mary Shaw Jansen & Bosch Poort & van Vliet
Conceptual integrity David Garlan Tyree & Akerman Risk and cost driven
Architecture as high- Architecture as architecture
level abstractions design decisions

1968 1995 2000 2010

1975 1996 2005 2011

Edsger Dijkstra Philippe Kruchten IEEE 1471 George Fairbanks


Software structure 4+1 Views for Standard for Risk-driven
matters architecture architecture architecture
documentation documentation

What How Why


© 2019 CGI Inc. 14
What architecture is about
Architecture is
Understanding context
Context

Architecture as an
abstraction Making Architecture as a set
Modeling
Shaw, Garlan Decisions of design decisions
Tyree, Bosch, Kruchten, Woods
Architecture as a set of
structures
SEI, Kruchten, Rozanski & Woods

Architecture is about
Architecture as a risk and cost Validating Delivery the important stuff
management discipline (whatever that is)
Fairbanks, Poort Fowler

© 2019 CGI Inc. Risk and Cost Driven Architecture 15


Agile Architecture Maturity

An organization’s architecture function is Understanding


Context
mature if:

• It pays balanced attention to all five


Making
responsibilities Modeling
Decisions
• Activities in the five responsibility areas are
coherent and related to each other

Organizations can be mature irrespective of


how the architecture function is organized, or
what it is called (roles, teams, boards,…). Validating Delivery

© 2019 CGI Inc. Risk and Cost Driven Architecture 16


Up-front Adaptive
Traditional versus Agile
Architecture

© 2019 CGI Inc. 17


Combining Architecture with Agile working
Conflicting paradigms?

Too much architecture leads to… Too much agile practice leads to…
• Late business value delivery? • Ill-considered, inconsistent choices?
• Trouble responding to change? • Re-inventing the wheel?
• Slow learning from experience? • Technical debt accumulation?
• Wasted design effort? • Short-lived solutions?

© 2019 CGI Inc. Risk and Cost Driven Architecture 18


Traditional architect involvement

Architecture Department

Check
Architecture Guidance
points

Solution Delivery

BUFD MYOB
MYOB

Agile team perception of architect involvement

© 2019 CGI Inc. Risk and Cost Driven Architecture 19


The Waterfall Wasteland

Understanding
Context

“We don’t take


Modeling Making decisions, we only
Decisions
advise management”

“Our design was


perfect, but the
Validating Delivery
builders were
incompetent”

© 2019 CGI Inc. Risk and Cost Driven Architecture 20


The Agile Outback

Understanding
Context

“The best
architectures Modeling Making
Decisions
emerge”

“Fail early and Delivery


Validating
fail often”

© 2019 CGI Inc. Risk and Cost Driven Architecture 21


Benefits of combining Agile and Architecture

Architecture Balance Agile


• Up-front design • Shortening the learning cycle • Experimentation
• Structural stability • Just enough anticipation • Business features
• Standardization • Decentral if possible, standards if necessary • Local optimization
• Stability • Architectural design with a short feedback loop • Flexibility
• Risk and cost control • Based on business rationale and not on dogma • Quick business value

© 2019 CGI Inc. Risk and Cost Driven Architecture 22


Agile architecture has short feedback loops

Better understanding of context Better design leads


leads to better fit design to better systems

Building
Communication
Experimentation
Analysis
Analysis

(working)
Stakeholders Architectural Systems
design
Better understanding of design Understanding of architecture in
leads to better formulated needs operation leads to more feasible design

RCDA Practices: Stakeholder Workshop, Decision Making, Modeling, Prototyping


© 2019 CGI Inc.
When do we architect?
Traditional context Agile context

Project Epic/Feature/Story

Funnel Backlog Analysis Implem.

Specify Design Build Test

© 2019 CGI Inc. 24


The thing we architect

Traditional approaches refer to the “thing”


being architected as the System.

We use the term Solution because:

• A Solution can be a System, but can also be


an incremental change / transformation

• A Solution may comprise not only hardware


and software, but also “soft” parts like
business processes, ecosystems,
organizational changes and manual work.

© 2019 CGI Inc. 25


Definition of Solution
Solution: a coherent set of changes delivered to meet a defined set of stakeholder needs

• Changes: solution elements are created, modified or removed


• Delivered: coordination and responsibility depends on methodology and level:
• agile or traditional
• value stream, team, program or project
• contractual or otherwise
• Defined: format and timing depends on methodology:
• Epic / set of (user) stories
• Program / project definition
• Contract Encompasses systems (of systems),
• Change request transformational solutions and
• Capability combinations

© 2019 CGI Inc. 26


Principles of Agile Architecting

Architecture as a stream of decisions

Let business impact determine your focus

Use just enough anticipation

Architecture is teamwork

© 2019 CGI Inc. Risk and Cost Driven Architecture 27


Traditional architect involvement

Architecture Department

Check
Architecture Guidance
points

Solution Delivery

BUFD MYOB
MYOB

Agile team perception of architect involvement

© 2019 CGI Inc. Risk and Cost Driven Architecture 28


Architectural decisions are your primary deliverable
Say goodbye to The Architecture Document Say hello to The Architectural Decision (as
(as your primary deliverable) your primary deliverable)
• Takes weeks or months to produce • Finer granularity of artifact
• Forces approval of all decisions in one go • Easier to speed up feedback cycle
• Allows individual decision timing

© 2019 CGI Inc. Risk and Cost Driven Architecture 29


Architectural Decision Timing

Decision There's an art of knowing when.


time Never try to guess.
Toast until it smokes and then
twenty seconds less.

- Pat Hein

Cost of delaying decision Risk of wrong decision

Timing architectural decision is balancing risk, cost and delivery time:


• too little information  risk of not meeting key requirements
• waiting too long  project delays, wasted resources

© 2019 CGI Inc. Risk and Cost Driven Architecture 30


The Architecting Microcycle
Workflow for architectural decision making
Architectural Architectural concerns
decisions (backlog)
Identify &
prioritize
architectural
concerns

Decide best Research


fitting possible
strategy strategies

© 2019 CGI Inc. Risk and Cost Driven Architecture 31


Continuously share concerns and decisions
Do not be afraid to share unfinished work

• The sooner you share, the faster you learn


• Share when aware decision must be taken
• Make sure decision status is clear

• Give stakeholders opportunity to contribute


from the start
• Make access as easy as possible

© 2019 CGI Inc. Risk and Cost Driven Architecture 32


Invite immediate feedback from stakeholders
• Are architects perfectionists?
• Can’t afford to wait until it’s perfect!
• Don’t wait for “official review moments” to
ask for feedback (“version 0.9”)

• Make it easy!
• Put a pencil on a string next to your
architecture wallpaper
• Let everyone know you welcome feedback

Most architectures emerge from a dynamic process of


frequently identifying new concerns, repeatedly finding
out new facts and continuously adjusting partial
decisions that interact with each other and our context.

© 2019 CGI Inc. Risk and Cost Driven Architecture 33


Light-weight architectural decision record
Decision story
In the facing
Context Concern(s)
Adventure holidays back-end systems for hotel and flight the need to respond quickly to new market
booking, developments in the travel market,

we decided and not


Decision Alternative strategies not chosen
to use CQRS-based events to communicate between the to use a shared database,
business services
(Command Query Responsibility Segregation),

to achieve accepting
Criteria Drawbacks of decision
independence between teams working on the services, the additional complexity inherent in CQRS.

© 2019 CGI Inc. 34


Exercise: Documenting Architectural Decisions
Individual exercise
Time: 10 minutes
Then: 4 participants present their results to the plenary group (2 min. each)

• Choose an architectural decision in a current or recent solution.


• Phrase the decision as “In the <context>, facing <concern>, we decided <decision> and not
<alternative options> to achieve <criterion>, accepting <downside>.”
• Use the template slide.

© 2019 CGI Inc. 35


Decision Story
In the facing
Context Concern(s)

we decided and not


Decision Alternative strategies not chosen

to achieve accepting
Criteria Drawbacks of decision

© 2019 CGI Inc. 36


Principles of Agile Architecting

Architecture as a stream of decisions

Let business impact determine your focus

Use just enough anticipation

Architecture is teamwork

© 2019 CGI Inc. Risk and Cost Driven Architecture 37


Why do we architect?

Architecture’s primary business goal is risk


and cost reduction, and it works.

Projects that apply architecture practices


have:
• Reduced uncertainty in feasibility of solution
• Reduced risk of delivery troubles
• Better predictability of solution cost
• Less budget overrun

“Architecture is about the important stuff.


Whatever that is.”
Source: Raymond Slot, PhD Thesis, 2010
© 2019 CGI Inc. Risk and Cost Driven Architecture 38
Architecture is risk and cost control

Result Benefits of applying architecture practices


Budget predictability 2-3 x better Std dev 32  13
Budget overrun 7 x less 22%  3%
Time overrun 6 x less 48%  8%
Troubled projects 3 x less 38%  13%
Customer satisfaction 1-2 points better 10 point scale
Results delivered +10%

*Survey among 49 software development projects between €50,000 and


€2,500,000.

Source: Raymond Slot

© 2019 CGI Inc. 39


RCDA: Risk and Cost Driven Architecture

Architecting principles and practices based on a view of


architecture as a risk and cost management discipline

• Applicable in agile and traditional engagements


• Scalable and pragmatic
• Architectural decision making based on economic trade-offs
• Architecture communication in economic terms
• Traceability from requirements to solution cost

© 2019 CGI Inc. Risk and Cost Driven Architecture 40


Risk- and Cost-Driven Architecture
Architecture for the Digital Age
RCDA results reported by architects: RCDA publications:
• Effective agile solution shaping • Journal of Systems and Software
• Focus on economic reality • IEEE Software Magazine (Sept. 2014, Nov. 2016)
• Scalable architecting • Leading architecture conferences: SATURN,
• Better risk and cost control in delivery LAC, WICSA (best paper award)
• 2016 Linda Northrop Software Architecture Award

13 Open Group
1400 recognized in the Certified “"Strong architectural decision making
Architects trained Proven practices Architect program is key to getting the most bang for the
buck. Applying RCDA helps us
maximize business value in an agile
environment, while optimizing
associated cost and risks."
Linda Northrop
300 14 Award
Rijn Buve, Group Chief Architect,
TomTom.
Pages of guidance Peer-reviewed
publications Software Engineering
Institute

© 2019 CGI Inc. Risk and Cost Driven Architecture 41


The Cone of Uncertainty

Evolution of amount of uncertainty


(in solution life cycle)

Cone is narrowed by:


• Research
• Decision making
t

Architecture narrows the cone by researching


strategies to architectural concerns and
making architectural decisions.

Source: Steve McConnell, Barry Boehm

© 2019 CGI Inc. Risk and Cost Driven Architecture 42


Principles of Agile Architecting

Architecture as a stream of decisions

Let business impact determine your focus

Use just enough anticipation

Architecture is teamwork

© 2019 CGI Inc. Risk and Cost Driven Architecture 43


Just enough anticipation
How much up-front design?
Lower Business Criticality Higher

Smaller/Simpler Size Larger/Complexer

Higher Volatility Lower

Cost of architecture change


# Decisions # Decisions
Cost of architecture change

Committing to the architecture Committing to the architecture

© 2019 CGI Inc. Risk and Cost Driven Architecture 44


Just Enough Anticipation
Flow of architectural decisions ahead of development
Metaphor (from SAFe): Runway extended while in operation
• Just long enough to accomodate anticipated airplanes

27
09

Key tools to determine right amount of anticipation*:


• Dependency analysis
• Technical debt control
• Economic trade-off: Net Present Value, Real Options Analysis

*Brown, N., Nord, R. L., & Ozkaya, I. (2010, November/December). Enabling Agility Through Architecture. CrossTalk.

© 2019 CGI Inc. Risk and Cost Driven Architecture 45


Balance your backlog
Architecture and other solution improvements
Indirect business value
Direct business value
“Enablers”

Visible Invisible

New features Architectural,


Positive
Added Structural What’s in your backlog?
Value
functionality features (or Work Breakdown Structure /
Project Portfolio / Feature Funnel)

Negative
Value Defects Technical Debt

Source: Philippe Kruchten

© 2019 CGI Inc. Risk and Cost Driven Architecture 46


Scrum and the architecture microcycle

Stakeholders

© 2019 CGI Inc. Risk and Cost Driven Architecture 47


Architecture Roadmapping
Reasoning with Just Enough Anticipation

Just Enough Anticipation


achieved by:

• Dependency Analysis
• Technical Debt Control
• Economic Reasoning

Poort, E. R. (2016, Nov/Dec). Just Enough Anticipation: Architect your Time Dimension. IEEE Software.
© 2019 CGI Inc. Risk and Cost Driven Architecture 48
Architecture Roadmapping
Strategy 1: Value-first roadmapping
Start Rel 1.0 Rel 1.1 Rel 1.2 Rel 2.0

• In line with Agile philosophy


• May increase TCO (more refactoring)
• Too “greedy” algorithm may run project into wall (complete rebuild)
• Good in volatile environments

© 2019 CGI Inc. Risk and Cost Driven Architecture 49


Architecture Roadmapping
Strategy 2: Architecture-first roadmapping
Start Rel 0.1 Rel 0.2 Rel 1.0 Rel 1.1

• In line with plan-driven philosophy


• Late delivery of value  risk of cancellation
• Risk of building wrong architecture (if context changes)
• Good for complex solutions

© 2019 CGI Inc. Risk and Cost Driven Architecture 50


Principles of Agile Architecting

Architecture as a stream of decisions

Let business impact determine your focus

Use just enough anticipation

Architecture is teamwork

© 2019 CGI Inc. Risk and Cost Driven Architecture 51


Agile architecture is evolutionary

Classic architecture: broad standardization

Hard rules Left open


Responsibility: Architecture Responsibility: Delivery

• “Emerge” does not imply “without thinking”, Evolutionary architecture: eventual integrity

“for free” or “magically”. Hard rules Suggestions Left open


• It does stimulate re-thinking ownership of Responsibility: Delivery

architectural decisions. Responsibility: Architecture

Source: Stephan Toth

© 2019 CGI Inc. 52


Architecture is teamwork
Organizing across teams: architecture owners

Multidisciplinary feature
teams touch all components

Virtual
architecture
team owns
conceptual
integrity A
Experts own components

© 2019 CGI Inc. Risk and Cost Driven Architecture 53


Architecture is teamwork
Levels of distributed architectural ownership
Crowd-sourced Centralized

a
b

=
c

No ‘named’ architect Architecture marshalls Architecture owner Classic architect

Project size Architecture base Discipline


Different locations External dependencies Organizational context
Domain expertise Familiarity, experience

Source: Stefan Toth

© 2019 CGI Inc. Risk and Cost Driven Architecture 54


Thank you

(spare slides follow)

© 2019 CGI Inc. Risk and Cost Driven Architecture 55


Simplify your architecture documentation template
Separate architecture documentation goals

Each of these goals requires its own rhythm


Goals and language
1. Evidence to stakeholders their concerns
are being addressed Disadvantages of “One Architecture
2. Storing architectural knowledge for later Document”:
(delivery, operation) • Different audiences don’t speak each
3. Collaborate & communicate architectural other’s language
decisions • Big document delays progress and
maintenance

© 2019 CGI Inc. Risk and Cost Driven Architecture 56


Value-driven architecture documentation
What Why How (examples) When

Evidence stakeholder Collaborate with Presentations Epic/story advance


concerns are stakeholders (incl. Wordy docs Program increment
addressed, in delivery, operations) Whiteboard Project milestone
stakeholders’ Support mgt decisions (Modeling tools for (On demand)
Arch Views language Pass milestones some stakeholders)

Architecture models, Collaborate on knowledge Modeling tools As knowledge


patterns, analysis gathering Wiki becomes available
results, research Preserve knowledge for Content Mgt Systems
outcomes, unfinished later (analysis, design,
Arch Knowledge business delivery, operation)
Repository
Architectural Collaborate on decisions Jira As soon as aware
decisions, including Communicate decisions Wiki of need for decision
status, rationale, Drive progress Content Mgt Systems
consequences
Arch Decision
Register

© 2019 CGI Inc.


Value-driven architecture documentation
When stakeholders need them,
snapshots of the decision register
and knowledge repository are
curated in views in the stakeholders’
Stakeholders
language to demonstrate that their
concerns are addressed by the
architecture

Arch View 1 Arch View 2

The architecture
microcycle, driven by Models,…
stakeholder concerns, Arch Knowledge
feeds the knowledge Repository
t
repository and
decisions register

Decisions
Arch Decision Register
In the course of the solution lifecycle, the
knowledge repository and decision register grow as
the architecture is elaborated and maintained

© 2019 CGI Inc.


Evolutionary architecture and business governance
Rigor and control with clear baselines
Start-up Initiation Realization Operation

Architectural Requirements
Prioritization

Architectural Decision
Making

Applying Architectural
Strategies

Architecture Modeling

Solution Costing

Independent Architecture
Assessment

Archtiecture Roadmapping

Architecture AD 0.1 AD AD AD
documents are (Outline) 1.0 N.M X.Y

snapshots linked to
Project Brief PID Phase plan LCM plan
project deliverables
© 2019 CGI Inc. 59
References
Abrahamsson, P., Babar, M. A., & Kruchten, P. (2010, March/April). Agility and Architecture: Can They Coexist?
IEEE Software.
Boehm, B. (2010). Architecting: How Much and When? In A. Oram, & G. Wilson, Making Software: What Really
Works, and Why We Believe It . O'Reilly Media.
Brown, N., Nord, R. L., & Ozkaya, I. (2010, November/December). Enabling Agility Through Architecture.
CrossTalk.
Fowler, M. (2003, July/August). Who Needs an Architect? IEEE Software, pp. 2-4.
Jansen, A., & Bosch, J. (2005). Software Architecture as a Set of Architectural Design Decisions. Working
IEEE/IFIP Conference on Software Architecture.
Malan, R., & Bredemeyer, D. (2002, september/oktober). Less is More with Minimalist Architecture. IT Pro, pp. 46-
48.
Poort, E. R., & van Vliet, H. (2012). RCDA: Architecting as a Risk- and Cost Management Discipline. Journal of
Systems and Software, 1995-2013.
Poort, E. R. (2014, Sept/Oct). Driving Agile Architecting with Cost and Risk. IEEE Software.
Poort, E. R. (2016, Nov/Dec). Just Enough Anticipation: Architect your Time Dimension. IEEE Software.
Slot, R. (2010). A method for valuing architecture-based business transformation and measuring the value of
solutions architecture. Amsterdam.
Toth, S. (2015). Vorgehensmuster für Softwarearchitektur: Kombinierbare Praktiken in Zeiten von Agile und Lean.
Hanser Fachbuchverlag.
© 2019 CGI Inc. Risk and Cost Driven Architecture 60

You might also like