SlideShare a Scribd company logo
1 of 65
Why We Need
Architects (and
Architecture) on
Agile Projects
Rebecca Wirfs-Brock
rebecca@wirfs-brock.com
www.wirfs-brock.com
©2013 Wirfs-Brock Associates
Three Questions…
• How much architecting do you need and
when?
• How can you manage architecture risk on
small as well as large, complex projects?
• What is the role of an agile architect?
? ? ?
Agile Design Values
• Core values:
– Design Simplicity
– Sustainable systems
– Continuous improvement
– Teamwork
– Communication
– Trust
– Satisfying stakeholder needs
• Constant learning
Qualities of Good Architecture
• Pragmatic. Does what it needs to without
extras
• Designed for test
• Modular
• No unintentional data redundancy or
overlapping functionality
• Supports
performance, reliability, modifiability, usability
,….
How Much Architecting Do You Need?
Alistair Cockburn’s project characteristics grid
What’s a Small Project?
• A team of 6-8
• Working on non-life critical
projects
• Architecture typically
evolves along with
implementation without
much risk
• May or may not need extra
architecture attention
Small Project Architecture Practices:
Design “Spikes”
• Goal: Figure out a
design approach
• Time: Few hours to
a few days
• Tools: CRC
Cards, exploratory
coding, whiteboard
sketching
Small Project Architecture Practices:
Experiment on Branches
• Goal: Experiment away
from main code branch
• Time: Few hours to a
few days
• When done: Merge or
throwaway branch
code
Small Project Architecture Practices:
Incrementally Refine Abstractions
• Goal: Refactor to
eliminate redundant
code
• Time: Few minutes
• When done:
Whenever you spot
duplication
Small Project Architecture Practices:
Manage Technical Debt
• Term invented by Ward
Cunningham
• Piles up when you
continually implement
without going back to
reflect new
understanding
• Can have long term
costs and consequences
All Tasks Aren’t Alike
• The Core—fundamental to
your software’s success
• The rest—requires far less
creativity or inspiration
• The Revealing—lead to
new, deeper understanding
– Always a surprise
– Require invention and innovation
– Hard to predict when they will be
done
– Don’t neatly fit into a planned
iteration cycle
Keeping Architecture in Mind
• Sort tasks into “problem
buckets”: core and the rest
• Make sure each iteration
gets enough core work
accomplished
• Get team involved on core
issues
• Use post-iteration
reflections to ask why
things were harder than
they first appeared
Architectural Practice:
Reduce Technical Debt
• Integrate new learning
into your code
– Refactoring
– Redesign
– Rework
– Code clean up
• Unit tests
(functionality)
• Test for architectural
qualities
(performance, reliabilit
y,…)
Best Practices for Small Project
Architecture
• Pay attention to architecture
• Don’t only work on feature
implementation
• Strive for design consistency. “This
is the way we do x”
– Coding standards
– Consistent implementation practices
(API use, errors, logging…)
• Code stewards for architecturally
critical areas
THE MORE THERE IS TO
COORDINATE
The Bigger the Project….
Team Size Matters
• >9 and any group splits
into teams
• No one knows everything
or everybody
– Expertise uneven
– Skills varied
– Specialists
• Work needs coordination
• Architecture allowed to
“naturally” emerge often
reflects the
organizational structure
Types of Project Risks
• Schedule & budget
• Operational
– execution
– resources
– communications
• Technical
– too complex
– poorly defined
– misunderstood
Risk Management Strategies
• Avoid
• Share: Insure or transfer
• Retain: Accept and budget for
• Reduce: Mitigate
– Develop incrementally
– Integrate often
– Design innovate if needed
Iterative & Incremental Lifecycles
Reduce Technical Risks
THE LAST POSSIBLE MOMENT
Especially on Large Projects, Some Decisions are too
Important to Leave Until
Agile Misconception: Upfront
Thinking, Planning, Investigating, Archi
tecting is Wasteful
• A reaction to “too much” thinking without
“doing”.
• Reality:
– You need to strike a balance: Find the right time and
effort for your project
• Some upfront planning is critical for large, complex projects
• Ongoing thinking, prototyping, and architecture experiments
are important too.
CHOOSE THE MOST RESPONSIBLE
MOMENT
A Better Way to Act:
Stuart Brand’s Shearing Layers
• Buildings are made of components that evolve
at different timescales.
• Layers: site, structure, skin, services, space
plan, stuff. Each layer has its own value, and
speed of change (pace).
• Buildings adapt because
faster layers (services) are
not obstructed by slower
ones (structure).
—Stuart Brand, How Buildings Learn
Yoder and Foote’s
Software Shearing Layers
“Factor your system so that artifacts that change at similar rates
are together.”—Foote & Yoder, Ball of Mud Pattern
• The platform
• Infrastructure
• Data schema
• Standard frameworks and components
• Abstract classes and interfaces
• Classes
• Code
• Data
LayersSlower
Faster
Agile Architecture Values
• Respect your system’s shearing layers
– Understand the rates of what changes
– Isolate rapidly changing parts/components from more stable
ones
• Make what is too difficult, time consuming, or tedious
easier
– Create tools, leverage design patterns, build or use
frameworks, use data to drive behavior…
• Don’t overdesign!!!
• Don’t under architect
• Architect for sustainable development/delivery of
features and customer value
Being Agile Does Not Mean
• You can make
significant architecture
changes at the last
moment
• Good architecture
always emerges from
“good” development
practices
• Sometimes you need to
do more
Architecture Debt
• Compromises in the
system that have
significant impacts
• Not isolated
• Costly to reverse
• Examples:
– reliance on a poorly
designed framework
– inconsistent service
interfaces
Architecture Risk Reduction Tools for
Larger Projects and Programs
• Grooming and vetting project/product road
maps and timelines
• Landing zones
• Architecture spikes
• Risk reduction backlogs
• Set-based design
Component
Design Choices
Design Cycle Decision to Eliminate
x
x
x
Product Roadmaps As Guides
• Where you expect
to go
• What features and
when? Relative
time when feature
is needed
• Influence
architecture work
and efforts
Sherwood, Oregon
Portland International Airport
Product Landing Zones
• A range of acceptable
values for important
system qualities
– Minimal: OK, we
can live with that
– Target: Realistic
goal, what we are aiming
for
– Outstanding: This
would be great, if
everything goes well
Good Landing Zone Criteria
• Define acceptable range of values for some
characteristic or system quality
(performance, usability, reliability, etc.)
– # transactions, average latency of a transaction under
load, click through rate, up time….
• Broader in scope than an acceptance criteria
• SMART
• Specific
• Measurable
• Achievable (minimum value)
• Relevant
• Timely
Within
acceptable
limits
Within
acceptable limits
Good Acceptance Criteria
• Focused on a single thing (a rule or step of a
process)
• A specification of what should happen/what must
be true written in the language of the domain
• SMART
• Specific
• Measurable
• Achievable
• Relevant
• Timely
What’s Different?
Acceptance Criteria
Free 2-day shipping is offered to
Amazon Prime customers for all
items in an order that are sold
directly by Amazon
If an Amazon prime customer
wants faster shipping, they pay
standard shipping fees.
Automated tests can be written
(fairly easily)
Landing Zone Criteria
Selection of shipping options
should be completed with 99%
customer accuracy
Test, but usually in production or
staging environment
May require instrumenting
“hooks” and making several
measurements that are
aggregated/interpreted
Too many landing zone criteria and you lose track of what’s important
Define a core set, organize and group
Break down aggregate targets into measurable architecture-specific
goals/targets
To be agile, re-calibrate values as you implement more functionality
Managing Landing Zones
Minimum Target Outstanding
Throughput (loan
payment txns per day)
50,000 70,000 90,000
Average loan payment
txn time
2 seconds 1 second < 1 second
Intersystem data
consistency between x,
y, z systems (per cent
critical data attributes
consistent)
95% 97% 97%
ETL data accuracy for
claims data
97% 99% >99%
Performance
Data Quality
Agreeing on Landing Zone Targets
• Someone makes a first “rough cut”
• Base targets on history & evidence
• Discuss and fine-tune as a group
– product manager, architects, QA lead
• Informed consensus-building
How Architects Use & Interact with
Landing Zones
• Create them along with Product Owners and
other Stakeholders
• Identify high architecture risk items
• Establish/verify target values
• Explain architecture tradeoffs and costs
• Monitor architecture health
• Recalibrate landing zone values based on
emerging design
Landing Zones on Agile
Projects
• Helps make sense of
the bigger picture:
– What happens when
one attribute edges
below minimum?
– When will targets be
achieved?
– What do we need to
do architecturally to
achieve targets?
Architecture Spikes
• Answer deep questions
about potential solutions
for achieving landing
zone targets
• Not as tactical or
incidental as an XP
Design Spike
• Try out radical changes in
how things are done
before committing to
them
• How can we scale up, scale
out, re-distribute, re-
think…????
XP Design Spike
“A spike solution is a very simple program to explore
potential solutions. Build the spike to only addresses
the problem under examination and ignore all other
concerns. Most spikes are not good enough to
keep, so expect to throw it away. The goal is
reducing the risk of a technical problem or increase
the reliability of a user story’s estimate.”
—Don Wells
http://www.extremeprogramming.org/rules/spike.html
What You Do In an Architecture Spike
– prototyping
– design noodling
– looking outside
– experimenting
– modeling
– proving ideas
Criteria For an Architecture Spike:
Answer Bounded Questions
• Buys information
– Feasibility
– Reasonable design
approach
– Alternatives
• Better estimates
• Actionable
Criteria For an Architecture Spike:
Actionable Results
• Buy information
that
– Feeds into future
release planning
– Adjusts the
release roadmap
– Recalibrates your
landing zone
– Drives new
development and
design
Actionable
or
evidence
Architecture Spikes
• Example spikes:
– Business
transaction
redesign
– Document parsing
investigation
– Fact
representation &
rule simplification
– Automated
location of
external resources
Architecture Spike Best Practices
• Small, smart, goal-oriented teams
– avoid us vs. them mentality
• Evidence-based answers
– working prototypes
– existing similar things
• Time-boxed
– Limited scope and duration (2-6
weeks)
• Failure is an option
– permit answers that will shift your
goals
3 Ways To Manage Architectural Tasks
Architecturally
meaty feature
Design spike
related task
Architecture
investigation
Prototype Framework
development
Roadmap
exploration
What Can Go On An Architecture
Backlog?
WHAT DO AGILE ARCHITECTS DO?
Primary Architecture Responsibilities
system
integrity
balance elegancearchitecture
views,
explanations,
sketches
system structure
design approach
module
subsystem
system
X
51
The Agile Architecture Landscape
The Integral Triad
Agile Architecture Wayfinding
• Scouting—looking
enough ahead
• Exploring potential
paths
– Short experiments
– Extrapolations
– Conclusions based
on
experience, intellig
ence gathered &
intuition
• Explaining and
selling architectural
ideas
Differences Between Agile and Traditional
Architecture
Traditional
• Big picture thinking
• Produces Models and
blue prints
• Not so hands-on
• Focused on
compliance
Agile
• Balances big picture &
details
• Produce what’s needed to
make informed decisions
• Hands-on
• Focused on sustainability
55
Models
“Big M” vs. “little m”
• Lots of time invested
• Intended to last
• “Definitive”
• Usually formal
• May not be widely used
or understood
• Not a lot of time invested
• Intended to communicate
• Often discarded
• Can be formal or informal
• Made to be viewed
Agile architects create models as needed
Model
Maintain problem
related info
Broadcast change
notification
View
Render the model
Transform
coordinates
Model
Controller
Controller
Interpret user input
Distribute control
Model
View
“A Laboratory For Teaching 
Object-
Oriented Thinking,”
Kent Beck, Apple Computer, Inc., Ward
Cunningham, Wyatt Software
Services, Inc.
OOPSLA 89
CRC Cards: A “little m” model
The First CRC Cards
Example:
Component Responsibility Descriptions
Application
Support
Business
"Applications"
Allowed to
use
Attribute
Defintion
Business
Rule
Customer xxx
Price
Definition
Offering Term
Underwriting Sourcing
Note
Custody
Pooling
Payment
Management
Default Relationship xxx
Data Import/Export xxx xxx xxx Reporting
Fraud
Management
Loan Account Contract Agreement xxx xxx xxxBusiness
Infrastructure
Attribute
Defintion
Key
Business
Subysystem
“The Customer component is responsible for knowing the organizations and
individuals. It includes authentication and role-based authorization for detailed
tasks and contact information for organizations.”
Example:
Database
“Responsibilities”
Values Important to Agile Architects
• Balance
• Testable
architectural
qualities
• Being hands-on
– programming, des
igning, reading
code, building
things…
• Sustainable
development
Sustainable
Architecture
• Stewardship
– Follow through
– Ongoing attention
– Not ignoring the little things that
can undermine our ability to
grow, change and adapt our
systems
Sustaining an Architecture
• Minimize architectural
debt: Support the ability
to change/adapt what
needs to change
• Make what is too
difficult, time
consuming, or tedious
easier
• Decide at the most
responsible moment, not
the last possible moment
• Learn and evolve
62
Keep the system “livable” for its users and developers
Agile Values Drive Architectural
Practices
• Do something. Don’t debate or
discuss architecture too long.
• Do something that buys you
information
• Prove your architecture ideas
• Reduce risks
• Make it testable
• Prototype realistic scenarios that
answer specific questions
• Incrementally refine your
architecture
• Defer architectural decisions that
don’t need to be immediately made
Do
something!
Prove &
Refine.
Indicators You’ve Paid Enough
Attention to Architecture
• Defects are localized
• Stable interfaces
• Consistency
• Developers can easily add
new functionality
• New functionality doesn’t
“break” existing architecture
• Few areas that developers avoid because they are
too difficult to work in
• Able to incrementally integrate new functionality
65

More Related Content

What's hot

OSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdf
OSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdfOSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdf
OSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdfNETWAYS
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsWeaveworks
 
Adopting OpenTelemetry
Adopting OpenTelemetryAdopting OpenTelemetry
Adopting OpenTelemetryVincent Behar
 
How To Create An AppD Centre of Excellence at AppD Global Tour London
How To Create An AppD Centre of Excellence at AppD Global Tour LondonHow To Create An AppD Centre of Excellence at AppD Global Tour London
How To Create An AppD Centre of Excellence at AppD Global Tour LondonAppDynamics
 
IT Change Management Using JIRA
IT Change Management Using JIRAIT Change Management Using JIRA
IT Change Management Using JIRAAtlassian
 
Reconstructing the SRE
Reconstructing the SREReconstructing the SRE
Reconstructing the SREBob Wise
 
Engineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous DeliveryEngineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous DeliveryMike McGarr
 
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...Splunk
 
Observability, what, why and how
Observability, what, why and howObservability, what, why and how
Observability, what, why and howNeeraj Bagga
 
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)Konveyor Community
 
Matthew Skelton_What is Platform as a Product_ Clues from Team Topologies - D...
Matthew Skelton_What is Platform as a Product_ Clues from Team Topologies - D...Matthew Skelton_What is Platform as a Product_ Clues from Team Topologies - D...
Matthew Skelton_What is Platform as a Product_ Clues from Team Topologies - D...VMware Tanzu
 
Opentelemetry - From frontend to backend
Opentelemetry - From frontend to backendOpentelemetry - From frontend to backend
Opentelemetry - From frontend to backendSebastian Poxhofer
 
Agile Everywhere! - Henrik Kniberg
Agile Everywhere! - Henrik KnibergAgile Everywhere! - Henrik Kniberg
Agile Everywhere! - Henrik KnibergAgile Montréal
 
Introduction to DevSecOps
Introduction to DevSecOpsIntroduction to DevSecOps
Introduction to DevSecOpsSetu Parimi
 

What's hot (20)

OSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdf
OSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdfOSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdf
OSMC 2022 | OpenTelemetry 101 by Dotan Horovit s.pdf
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOps
 
Adopting OpenTelemetry
Adopting OpenTelemetryAdopting OpenTelemetry
Adopting OpenTelemetry
 
Elastic-Engineering
Elastic-EngineeringElastic-Engineering
Elastic-Engineering
 
Microservices chassis
Microservices chassisMicroservices chassis
Microservices chassis
 
How To Create An AppD Centre of Excellence at AppD Global Tour London
How To Create An AppD Centre of Excellence at AppD Global Tour LondonHow To Create An AppD Centre of Excellence at AppD Global Tour London
How To Create An AppD Centre of Excellence at AppD Global Tour London
 
IT Change Management Using JIRA
IT Change Management Using JIRAIT Change Management Using JIRA
IT Change Management Using JIRA
 
Reconstructing the SRE
Reconstructing the SREReconstructing the SRE
Reconstructing the SRE
 
Observability
ObservabilityObservability
Observability
 
Engineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous DeliveryEngineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous Delivery
 
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
 
Observability, what, why and how
Observability, what, why and howObservability, what, why and how
Observability, what, why and how
 
Observability
Observability Observability
Observability
 
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
 
Observability
ObservabilityObservability
Observability
 
Gitops Hands On
Gitops Hands OnGitops Hands On
Gitops Hands On
 
Matthew Skelton_What is Platform as a Product_ Clues from Team Topologies - D...
Matthew Skelton_What is Platform as a Product_ Clues from Team Topologies - D...Matthew Skelton_What is Platform as a Product_ Clues from Team Topologies - D...
Matthew Skelton_What is Platform as a Product_ Clues from Team Topologies - D...
 
Opentelemetry - From frontend to backend
Opentelemetry - From frontend to backendOpentelemetry - From frontend to backend
Opentelemetry - From frontend to backend
 
Agile Everywhere! - Henrik Kniberg
Agile Everywhere! - Henrik KnibergAgile Everywhere! - Henrik Kniberg
Agile Everywhere! - Henrik Kniberg
 
Introduction to DevSecOps
Introduction to DevSecOpsIntroduction to DevSecOps
Introduction to DevSecOps
 

Viewers also liked

Software architecture in an agile environment
Software architecture in an agile environmentSoftware architecture in an agile environment
Software architecture in an agile environmentRaffaele Garofalo
 
Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0iasaglobal
 
Agile enterprise architecture
Agile enterprise architectureAgile enterprise architecture
Agile enterprise architectureScott W. Ambler
 
User story estimation with agile architectures
User story estimation with agile architecturesUser story estimation with agile architectures
User story estimation with agile architecturesRaffaele Garofalo
 
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?Jason Bloomberg
 
Microservices: Architecture for Agile Software Development
Microservices: Architecture for Agile Software DevelopmentMicroservices: Architecture for Agile Software Development
Microservices: Architecture for Agile Software DevelopmentEberhard Wolff
 
Agile, TOGAF and Enterprise Architecture: Will They Blend?
Agile, TOGAF and Enterprise Architecture:  Will They Blend?Agile, TOGAF and Enterprise Architecture:  Will They Blend?
Agile, TOGAF and Enterprise Architecture: Will They Blend?Danny Greefhorst
 
Comparing Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD)
Comparing Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD) Comparing Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD)
Comparing Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD) Rodney Bodamer
 
Maintaining Your Code Clint Eastwood Style
Maintaining Your Code Clint Eastwood StyleMaintaining Your Code Clint Eastwood Style
Maintaining Your Code Clint Eastwood StyleRebecca Wirfs-Brock
 
Agiles 2009 - Agile Architecture - Diego Fontdevila
Agiles 2009 - Agile Architecture - Diego FontdevilaAgiles 2009 - Agile Architecture - Diego Fontdevila
Agiles 2009 - Agile Architecture - Diego FontdevilaAgiles2009
 
The tension between agile and architecture
The tension between agile and architectureThe tension between agile and architecture
The tension between agile and architecturePeter Hendriks
 
Agile Architecture and Design
Agile Architecture and DesignAgile Architecture and Design
Agile Architecture and DesignPratip Mallik
 
Searching for Inspiration: User Needs and Search Architecture
Searching for Inspiration: User Needs and Search ArchitectureSearching for Inspiration: User Needs and Search Architecture
Searching for Inspiration: User Needs and Search ArchitectureTim Hill
 
Architecture in agile projects
Architecture in agile projectsArchitecture in agile projects
Architecture in agile projectsLeonardo Rosales
 
Agile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeAgile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeGary Pedretti
 
Shearing Layers: An architectural response to uncertainty & change
Shearing Layers: An architectural response to uncertainty & changeShearing Layers: An architectural response to uncertainty & change
Shearing Layers: An architectural response to uncertainty & changeMartin Burns
 
Agile DC 2013 - Comparing Scaled Agile Framework (SAFe) with Disciplined Agil...
Agile DC 2013 - Comparing Scaled Agile Framework (SAFe) with Disciplined Agil...Agile DC 2013 - Comparing Scaled Agile Framework (SAFe) with Disciplined Agil...
Agile DC 2013 - Comparing Scaled Agile Framework (SAFe) with Disciplined Agil...Greg Pfister
 
Análisis de arquitecturas de software
Análisis de arquitecturas de softwareAnálisis de arquitecturas de software
Análisis de arquitecturas de softwareJorge Rodriguez
 

Viewers also liked (20)

Software architecture in an agile environment
Software architecture in an agile environmentSoftware architecture in an agile environment
Software architecture in an agile environment
 
Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0
 
Architectural runway
Architectural runwayArchitectural runway
Architectural runway
 
Agile enterprise architecture
Agile enterprise architectureAgile enterprise architecture
Agile enterprise architecture
 
User story estimation with agile architectures
User story estimation with agile architecturesUser story estimation with agile architectures
User story estimation with agile architectures
 
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
Does Agile Enterprise Architecture = Agile + Enterprise Architecture?
 
Microservices: Architecture for Agile Software Development
Microservices: Architecture for Agile Software DevelopmentMicroservices: Architecture for Agile Software Development
Microservices: Architecture for Agile Software Development
 
Agile, TOGAF and Enterprise Architecture: Will They Blend?
Agile, TOGAF and Enterprise Architecture:  Will They Blend?Agile, TOGAF and Enterprise Architecture:  Will They Blend?
Agile, TOGAF and Enterprise Architecture: Will They Blend?
 
Comparing Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD)
Comparing Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD) Comparing Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD)
Comparing Scaled Agile Framework (SAFe) and Disciplined Agile Delivery (DAD)
 
Maintaining Your Code Clint Eastwood Style
Maintaining Your Code Clint Eastwood StyleMaintaining Your Code Clint Eastwood Style
Maintaining Your Code Clint Eastwood Style
 
Agiles 2009 - Agile Architecture - Diego Fontdevila
Agiles 2009 - Agile Architecture - Diego FontdevilaAgiles 2009 - Agile Architecture - Diego Fontdevila
Agiles 2009 - Agile Architecture - Diego Fontdevila
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile Architecture
 
The tension between agile and architecture
The tension between agile and architectureThe tension between agile and architecture
The tension between agile and architecture
 
Agile Architecture and Design
Agile Architecture and DesignAgile Architecture and Design
Agile Architecture and Design
 
Searching for Inspiration: User Needs and Search Architecture
Searching for Inspiration: User Needs and Search ArchitectureSearching for Inspiration: User Needs and Search Architecture
Searching for Inspiration: User Needs and Search Architecture
 
Architecture in agile projects
Architecture in agile projectsArchitecture in agile projects
Architecture in agile projects
 
Agile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeAgile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New Hope
 
Shearing Layers: An architectural response to uncertainty & change
Shearing Layers: An architectural response to uncertainty & changeShearing Layers: An architectural response to uncertainty & change
Shearing Layers: An architectural response to uncertainty & change
 
Agile DC 2013 - Comparing Scaled Agile Framework (SAFe) with Disciplined Agil...
Agile DC 2013 - Comparing Scaled Agile Framework (SAFe) with Disciplined Agil...Agile DC 2013 - Comparing Scaled Agile Framework (SAFe) with Disciplined Agil...
Agile DC 2013 - Comparing Scaled Agile Framework (SAFe) with Disciplined Agil...
 
Análisis de arquitecturas de software
Análisis de arquitecturas de softwareAnálisis de arquitecturas de software
Análisis de arquitecturas de software
 

Similar to Why We Need Architects (and Architecture) on Agile Projects

Technical stories v1.2
Technical stories v1.2Technical stories v1.2
Technical stories v1.2Jim Brisson
 
Cloud Enablement Engine Role Definition and Mapping
Cloud Enablement Engine Role Definition and MappingCloud Enablement Engine Role Definition and Mapping
Cloud Enablement Engine Role Definition and MappingTom Laszewski
 
City universitylondon devprocess_g_a_reitsch
City universitylondon devprocess_g_a_reitschCity universitylondon devprocess_g_a_reitsch
City universitylondon devprocess_g_a_reitschalanreitsch
 
Software Architecture – Centric Methods and Agile Development
Software Architecture –   Centric Methods and   Agile DevelopmentSoftware Architecture –   Centric Methods and   Agile Development
Software Architecture – Centric Methods and Agile Developmentsathish sak
 
Road to rockstar system analyst
Road to rockstar system analystRoad to rockstar system analyst
Road to rockstar system analystMizno Kruge
 
Agile Architecture – Enabling the Organisation’s Successful Digital-Agile Tra...
Agile Architecture – Enabling the Organisation’s Successful Digital-Agile Tra...Agile Architecture – Enabling the Organisation’s Successful Digital-Agile Tra...
Agile Architecture – Enabling the Organisation’s Successful Digital-Agile Tra...NUS-ISS
 
Working with software architects - advice to project managers
Working with software architects - advice to project managersWorking with software architects - advice to project managers
Working with software architects - advice to project managersYaniv Pessach
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation ProjectsAmazon Web Services
 
Software development Life Cycle
Software development Life CycleSoftware development Life Cycle
Software development Life CycleKumar
 
An Agile Overview @ ShoreTel Sky
An Agile Overview @ ShoreTel SkyAn Agile Overview @ ShoreTel Sky
An Agile Overview @ ShoreTel Skygirabrent
 
Scrum Project Management with Jira as showcase
Scrum Project Management with Jira as showcaseScrum Project Management with Jira as showcase
Scrum Project Management with Jira as showcasejavadch
 
Nimble Framework - Software architecture and design in agile era - PSQT Template
Nimble Framework - Software architecture and design in agile era - PSQT TemplateNimble Framework - Software architecture and design in agile era - PSQT Template
Nimble Framework - Software architecture and design in agile era - PSQT Templatetjain
 
Wbs, estimation and scheduling
Wbs, estimation and schedulingWbs, estimation and scheduling
Wbs, estimation and schedulingSulman Ahmed
 
Comparing Legacy and Modern e-commerce solutions
Comparing Legacy and Modern e-commerce solutionsComparing Legacy and Modern e-commerce solutions
Comparing Legacy and Modern e-commerce solutionsMike Ensor
 
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFPractical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFMichael Sukachev
 
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...Scrum Bangalore
 
Who needs EA… when we have DevOps?
Who needs EA… when we have DevOps?Who needs EA… when we have DevOps?
Who needs EA… when we have DevOps?Jeff Jakubiak
 

Similar to Why We Need Architects (and Architecture) on Agile Projects (20)

Technical stories v1.2
Technical stories v1.2Technical stories v1.2
Technical stories v1.2
 
Cloud Enablement Engine Role Definition and Mapping
Cloud Enablement Engine Role Definition and MappingCloud Enablement Engine Role Definition and Mapping
Cloud Enablement Engine Role Definition and Mapping
 
City universitylondon devprocess_g_a_reitsch
City universitylondon devprocess_g_a_reitschCity universitylondon devprocess_g_a_reitsch
City universitylondon devprocess_g_a_reitsch
 
Software Architecture – Centric Methods and Agile Development
Software Architecture –   Centric Methods and   Agile DevelopmentSoftware Architecture –   Centric Methods and   Agile Development
Software Architecture – Centric Methods and Agile Development
 
Road to rockstar system analyst
Road to rockstar system analystRoad to rockstar system analyst
Road to rockstar system analyst
 
Agile Architecture – Enabling the Organisation’s Successful Digital-Agile Tra...
Agile Architecture – Enabling the Organisation’s Successful Digital-Agile Tra...Agile Architecture – Enabling the Organisation’s Successful Digital-Agile Tra...
Agile Architecture – Enabling the Organisation’s Successful Digital-Agile Tra...
 
Working with software architects - advice to project managers
Working with software architects - advice to project managersWorking with software architects - advice to project managers
Working with software architects - advice to project managers
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
 
Software development Life Cycle
Software development Life CycleSoftware development Life Cycle
Software development Life Cycle
 
An Agile Overview @ ShoreTel Sky
An Agile Overview @ ShoreTel SkyAn Agile Overview @ ShoreTel Sky
An Agile Overview @ ShoreTel Sky
 
Scrum Project Management with Jira as showcase
Scrum Project Management with Jira as showcaseScrum Project Management with Jira as showcase
Scrum Project Management with Jira as showcase
 
Nimble Framework - Software architecture and design in agile era - PSQT Template
Nimble Framework - Software architecture and design in agile era - PSQT TemplateNimble Framework - Software architecture and design in agile era - PSQT Template
Nimble Framework - Software architecture and design in agile era - PSQT Template
 
Wbs
WbsWbs
Wbs
 
Wbs, estimation and scheduling
Wbs, estimation and schedulingWbs, estimation and scheduling
Wbs, estimation and scheduling
 
Comparing Legacy and Modern e-commerce solutions
Comparing Legacy and Modern e-commerce solutionsComparing Legacy and Modern e-commerce solutions
Comparing Legacy and Modern e-commerce solutions
 
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFPractical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
 
Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
 
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
Scrum Bangalore 18th Meetup - October 15, 2016 - Agile Architecture - Deepak ...
 
Who needs EA… when we have DevOps?
Who needs EA… when we have DevOps?Who needs EA… when we have DevOps?
Who needs EA… when we have DevOps?
 
Technical Without Code
Technical Without CodeTechnical Without Code
Technical Without Code
 

Recently uploaded

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Recently uploaded (20)

E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

Why We Need Architects (and Architecture) on Agile Projects

  • 1. Why We Need Architects (and Architecture) on Agile Projects Rebecca Wirfs-Brock rebecca@wirfs-brock.com www.wirfs-brock.com ©2013 Wirfs-Brock Associates
  • 2. Three Questions… • How much architecting do you need and when? • How can you manage architecture risk on small as well as large, complex projects? • What is the role of an agile architect? ? ? ?
  • 3. Agile Design Values • Core values: – Design Simplicity – Sustainable systems – Continuous improvement – Teamwork – Communication – Trust – Satisfying stakeholder needs • Constant learning
  • 4. Qualities of Good Architecture • Pragmatic. Does what it needs to without extras • Designed for test • Modular • No unintentional data redundancy or overlapping functionality • Supports performance, reliability, modifiability, usability ,….
  • 5. How Much Architecting Do You Need? Alistair Cockburn’s project characteristics grid
  • 6. What’s a Small Project? • A team of 6-8 • Working on non-life critical projects • Architecture typically evolves along with implementation without much risk • May or may not need extra architecture attention
  • 7. Small Project Architecture Practices: Design “Spikes” • Goal: Figure out a design approach • Time: Few hours to a few days • Tools: CRC Cards, exploratory coding, whiteboard sketching
  • 8. Small Project Architecture Practices: Experiment on Branches • Goal: Experiment away from main code branch • Time: Few hours to a few days • When done: Merge or throwaway branch code
  • 9. Small Project Architecture Practices: Incrementally Refine Abstractions • Goal: Refactor to eliminate redundant code • Time: Few minutes • When done: Whenever you spot duplication
  • 10. Small Project Architecture Practices: Manage Technical Debt • Term invented by Ward Cunningham • Piles up when you continually implement without going back to reflect new understanding • Can have long term costs and consequences
  • 11. All Tasks Aren’t Alike • The Core—fundamental to your software’s success • The rest—requires far less creativity or inspiration • The Revealing—lead to new, deeper understanding – Always a surprise – Require invention and innovation – Hard to predict when they will be done – Don’t neatly fit into a planned iteration cycle
  • 12. Keeping Architecture in Mind • Sort tasks into “problem buckets”: core and the rest • Make sure each iteration gets enough core work accomplished • Get team involved on core issues • Use post-iteration reflections to ask why things were harder than they first appeared
  • 13. Architectural Practice: Reduce Technical Debt • Integrate new learning into your code – Refactoring – Redesign – Rework – Code clean up • Unit tests (functionality) • Test for architectural qualities (performance, reliabilit y,…)
  • 14. Best Practices for Small Project Architecture • Pay attention to architecture • Don’t only work on feature implementation • Strive for design consistency. “This is the way we do x” – Coding standards – Consistent implementation practices (API use, errors, logging…) • Code stewards for architecturally critical areas
  • 15. THE MORE THERE IS TO COORDINATE The Bigger the Project….
  • 16. Team Size Matters • >9 and any group splits into teams • No one knows everything or everybody – Expertise uneven – Skills varied – Specialists • Work needs coordination • Architecture allowed to “naturally” emerge often reflects the organizational structure
  • 17. Types of Project Risks • Schedule & budget • Operational – execution – resources – communications • Technical – too complex – poorly defined – misunderstood
  • 18. Risk Management Strategies • Avoid • Share: Insure or transfer • Retain: Accept and budget for • Reduce: Mitigate – Develop incrementally – Integrate often – Design innovate if needed
  • 19. Iterative & Incremental Lifecycles Reduce Technical Risks
  • 20. THE LAST POSSIBLE MOMENT Especially on Large Projects, Some Decisions are too Important to Leave Until
  • 21. Agile Misconception: Upfront Thinking, Planning, Investigating, Archi tecting is Wasteful • A reaction to “too much” thinking without “doing”. • Reality: – You need to strike a balance: Find the right time and effort for your project • Some upfront planning is critical for large, complex projects • Ongoing thinking, prototyping, and architecture experiments are important too.
  • 22. CHOOSE THE MOST RESPONSIBLE MOMENT A Better Way to Act:
  • 23. Stuart Brand’s Shearing Layers • Buildings are made of components that evolve at different timescales. • Layers: site, structure, skin, services, space plan, stuff. Each layer has its own value, and speed of change (pace). • Buildings adapt because faster layers (services) are not obstructed by slower ones (structure). —Stuart Brand, How Buildings Learn
  • 24. Yoder and Foote’s Software Shearing Layers “Factor your system so that artifacts that change at similar rates are together.”—Foote & Yoder, Ball of Mud Pattern • The platform • Infrastructure • Data schema • Standard frameworks and components • Abstract classes and interfaces • Classes • Code • Data LayersSlower Faster
  • 25. Agile Architecture Values • Respect your system’s shearing layers – Understand the rates of what changes – Isolate rapidly changing parts/components from more stable ones • Make what is too difficult, time consuming, or tedious easier – Create tools, leverage design patterns, build or use frameworks, use data to drive behavior… • Don’t overdesign!!! • Don’t under architect • Architect for sustainable development/delivery of features and customer value
  • 26. Being Agile Does Not Mean • You can make significant architecture changes at the last moment • Good architecture always emerges from “good” development practices • Sometimes you need to do more
  • 27. Architecture Debt • Compromises in the system that have significant impacts • Not isolated • Costly to reverse • Examples: – reliance on a poorly designed framework – inconsistent service interfaces
  • 28. Architecture Risk Reduction Tools for Larger Projects and Programs • Grooming and vetting project/product road maps and timelines • Landing zones • Architecture spikes • Risk reduction backlogs • Set-based design Component Design Choices Design Cycle Decision to Eliminate x x x
  • 29. Product Roadmaps As Guides • Where you expect to go • What features and when? Relative time when feature is needed • Influence architecture work and efforts Sherwood, Oregon Portland International Airport
  • 30. Product Landing Zones • A range of acceptable values for important system qualities – Minimal: OK, we can live with that – Target: Realistic goal, what we are aiming for – Outstanding: This would be great, if everything goes well
  • 31. Good Landing Zone Criteria • Define acceptable range of values for some characteristic or system quality (performance, usability, reliability, etc.) – # transactions, average latency of a transaction under load, click through rate, up time…. • Broader in scope than an acceptance criteria • SMART • Specific • Measurable • Achievable (minimum value) • Relevant • Timely Within acceptable limits Within acceptable limits
  • 32. Good Acceptance Criteria • Focused on a single thing (a rule or step of a process) • A specification of what should happen/what must be true written in the language of the domain • SMART • Specific • Measurable • Achievable • Relevant • Timely
  • 33. What’s Different? Acceptance Criteria Free 2-day shipping is offered to Amazon Prime customers for all items in an order that are sold directly by Amazon If an Amazon prime customer wants faster shipping, they pay standard shipping fees. Automated tests can be written (fairly easily) Landing Zone Criteria Selection of shipping options should be completed with 99% customer accuracy Test, but usually in production or staging environment May require instrumenting “hooks” and making several measurements that are aggregated/interpreted
  • 34. Too many landing zone criteria and you lose track of what’s important Define a core set, organize and group Break down aggregate targets into measurable architecture-specific goals/targets To be agile, re-calibrate values as you implement more functionality Managing Landing Zones Minimum Target Outstanding Throughput (loan payment txns per day) 50,000 70,000 90,000 Average loan payment txn time 2 seconds 1 second < 1 second Intersystem data consistency between x, y, z systems (per cent critical data attributes consistent) 95% 97% 97% ETL data accuracy for claims data 97% 99% >99% Performance Data Quality
  • 35. Agreeing on Landing Zone Targets • Someone makes a first “rough cut” • Base targets on history & evidence • Discuss and fine-tune as a group – product manager, architects, QA lead • Informed consensus-building
  • 36. How Architects Use & Interact with Landing Zones • Create them along with Product Owners and other Stakeholders • Identify high architecture risk items • Establish/verify target values • Explain architecture tradeoffs and costs • Monitor architecture health • Recalibrate landing zone values based on emerging design
  • 37. Landing Zones on Agile Projects • Helps make sense of the bigger picture: – What happens when one attribute edges below minimum? – When will targets be achieved? – What do we need to do architecturally to achieve targets?
  • 38. Architecture Spikes • Answer deep questions about potential solutions for achieving landing zone targets • Not as tactical or incidental as an XP Design Spike • Try out radical changes in how things are done before committing to them • How can we scale up, scale out, re-distribute, re- think…????
  • 39. XP Design Spike “A spike solution is a very simple program to explore potential solutions. Build the spike to only addresses the problem under examination and ignore all other concerns. Most spikes are not good enough to keep, so expect to throw it away. The goal is reducing the risk of a technical problem or increase the reliability of a user story’s estimate.” —Don Wells http://www.extremeprogramming.org/rules/spike.html
  • 40. What You Do In an Architecture Spike – prototyping – design noodling – looking outside – experimenting – modeling – proving ideas
  • 41. Criteria For an Architecture Spike: Answer Bounded Questions • Buys information – Feasibility – Reasonable design approach – Alternatives • Better estimates • Actionable
  • 42. Criteria For an Architecture Spike: Actionable Results • Buy information that – Feeds into future release planning – Adjusts the release roadmap – Recalibrates your landing zone – Drives new development and design Actionable or evidence
  • 43. Architecture Spikes • Example spikes: – Business transaction redesign – Document parsing investigation – Fact representation & rule simplification – Automated location of external resources
  • 44. Architecture Spike Best Practices • Small, smart, goal-oriented teams – avoid us vs. them mentality • Evidence-based answers – working prototypes – existing similar things • Time-boxed – Limited scope and duration (2-6 weeks) • Failure is an option – permit answers that will shift your goals
  • 45. 3 Ways To Manage Architectural Tasks
  • 46.
  • 47.
  • 48.
  • 49. Architecturally meaty feature Design spike related task Architecture investigation Prototype Framework development Roadmap exploration What Can Go On An Architecture Backlog?
  • 50. WHAT DO AGILE ARCHITECTS DO?
  • 51. Primary Architecture Responsibilities system integrity balance elegancearchitecture views, explanations, sketches system structure design approach module subsystem system X 51
  • 54. Agile Architecture Wayfinding • Scouting—looking enough ahead • Exploring potential paths – Short experiments – Extrapolations – Conclusions based on experience, intellig ence gathered & intuition • Explaining and selling architectural ideas
  • 55. Differences Between Agile and Traditional Architecture Traditional • Big picture thinking • Produces Models and blue prints • Not so hands-on • Focused on compliance Agile • Balances big picture & details • Produce what’s needed to make informed decisions • Hands-on • Focused on sustainability 55
  • 56. Models “Big M” vs. “little m” • Lots of time invested • Intended to last • “Definitive” • Usually formal • May not be widely used or understood • Not a lot of time invested • Intended to communicate • Often discarded • Can be formal or informal • Made to be viewed Agile architects create models as needed
  • 57. Model Maintain problem related info Broadcast change notification View Render the model Transform coordinates Model Controller Controller Interpret user input Distribute control Model View “A Laboratory For Teaching 
Object- Oriented Thinking,” Kent Beck, Apple Computer, Inc., Ward Cunningham, Wyatt Software Services, Inc. OOPSLA 89 CRC Cards: A “little m” model The First CRC Cards
  • 58. Example: Component Responsibility Descriptions Application Support Business "Applications" Allowed to use Attribute Defintion Business Rule Customer xxx Price Definition Offering Term Underwriting Sourcing Note Custody Pooling Payment Management Default Relationship xxx Data Import/Export xxx xxx xxx Reporting Fraud Management Loan Account Contract Agreement xxx xxx xxxBusiness Infrastructure Attribute Defintion Key Business Subysystem “The Customer component is responsible for knowing the organizations and individuals. It includes authentication and role-based authorization for detailed tasks and contact information for organizations.”
  • 60. Values Important to Agile Architects • Balance • Testable architectural qualities • Being hands-on – programming, des igning, reading code, building things… • Sustainable development
  • 61. Sustainable Architecture • Stewardship – Follow through – Ongoing attention – Not ignoring the little things that can undermine our ability to grow, change and adapt our systems
  • 62. Sustaining an Architecture • Minimize architectural debt: Support the ability to change/adapt what needs to change • Make what is too difficult, time consuming, or tedious easier • Decide at the most responsible moment, not the last possible moment • Learn and evolve 62 Keep the system “livable” for its users and developers
  • 63. Agile Values Drive Architectural Practices • Do something. Don’t debate or discuss architecture too long. • Do something that buys you information • Prove your architecture ideas • Reduce risks • Make it testable • Prototype realistic scenarios that answer specific questions • Incrementally refine your architecture • Defer architectural decisions that don’t need to be immediately made Do something! Prove & Refine.
  • 64. Indicators You’ve Paid Enough Attention to Architecture • Defects are localized • Stable interfaces • Consistency • Developers can easily add new functionality • New functionality doesn’t “break” existing architecture • Few areas that developers avoid because they are too difficult to work in • Able to incrementally integrate new functionality
  • 65. 65

Editor's Notes

  1. Get something from skills for agile designers?Agile design values?Agile Developer values?
  2. Incremental development means that different parts of a software project are continuously integrated into the whole, instead of a monolithic approach where all the different parts are assembled in one or a few milestones of the project.Iterative means that once a first version of a component is complete it is tested, reviewed and the results are almost immediately transformed into a new version (iteration) of this component.So as a first result: iterative development doesn&apos;t need to be incremental and vice versa, but these methods are a good fit.Agile development aims to reduce massive planning overhead in software projects to allow fast reactions to change e.g. in customer wishes. Incremental and iterative development are almost always part of an agile development strategy. There are several approaches to Agile development (e.g. scrum).
  3. I would go further to say, develop the tools, tooling, and mechanisms that instrument the rates of change you need. And, you encapsulate the parts that do vary so that they don’t leak out/effect other areas. This may mean that if you have highly changing software you architect ways that drive this change via mechanisms that are “easier” to change than others—data driven techniques, meta techniques, whatever…. Fast redeploy/tested code…all are ways
  4. Landing ZoneA small section of a deck that a pilot must touch down in to land the aircraft safely
  5. And, based on exper, maybe we need to recalibarate the lz based on arch decisions/costs to achieve them.Drives ongoing tradeoffs, decisions, and risk mitigation investments
  6. Explore potential pathsTalk to othersShort experimentsExtrapolateConclude based on experience, intelligence gathered &amp; intuition
  7. May or may not be a person designated as “architect”, but a role taken on by those who care about the system architecture
  8. Because most systems that are successful have architectures that successfully evolve, too…
  9. The architecture can (and may) need to evolve.