Professional Documents
Culture Documents
Software Architecture
and Agile Software Development
An Oxymoron?
Philippe Kruchten
USC, June 8th 2009
Philippe Kruchten
Paradox
Oxymoron
O
Conflict
Incompatibility
Kruchten - 2009
Agility
A definition
Agility is the ability to both create and respond to
h
iin order
d tto profit
fit iin a tturbulent
b l tb
i
change
business
environment.
Jim Highsmith (2002)
Characteristics
Kruchten - 2009
Philippe Kruchten
Source: http://www.agilemanifesto.org/
Kruchten - 2009
Philippe Kruchten
Kruchten - 2009
Philippe Kruchten
Story of a failure
Large re-engineering of
a complex distributed
y
;
world-wide system;
2 millions LOC in C,
C++, Cobol and VB
Multiple sites, dozens of data repositories,
hundreds of users, 24 hours operation, missioncritical ($billions)
xP+Scrum, 1-week iterations, 30 then up to 50
d
developers
l
Rapid progress, early success, features are
demo-able
Direct access to customer, etc.
A poster project for scalable agile development
Kruchten - 2009
Kruchten - 2009
Philippe Kruchten
Issues
1.
2
2.
3.
4.
5.
6.
7.
Semantics
Scope
Lifecycle
Role
Description
Methods
Value & cost
Kruchten - 2009
Issues
1.
2
2.
3.
4.
5.
6.
7.
Semantics
Scope
Lifecycle
Role
Description
Methods
Value & cost
Kruchten - 2009
Philippe Kruchten
Semantics
What do we mean by architecture?
Kruchten - 2009
Philippe Kruchten
Software
design
Decisions
Design decisions
Architectural decisions
Requirements constraints
Requ
uire
men
nts
Code etc.
Philippe Kruchten
Kruchten - 2009
Issues
1.
2
2.
3.
4.
5.
6.
7.
Semantics
Scope
Lifecycle
Role
Description
Methods
Value & cost
Kruchten - 2009
Philippe Kruchten
Scope
How much architecture stuff do you really
need?
It depends
It depends
on yyour context
p
Kruchten - 2009
Practices
(actual process)
Kruchten - 2009
Philippe Kruchten
10
Size
Age of
Criticality
System
Age of system
Rate of change
Rate of
change
Business model
Stable architecture
Team distribution
Governance
Governance
Size
Criticality
Context
Team
Distribution
Business
model
Stable
Architecture
Kruchten - 2009
Issues
1.
2
2.
3.
4.
5.
6.
7.
Semantics
Scope
Lifecycle
Role
Description
Methods
Value & cost
Kruchten - 2009
Philippe Kruchten
11
Lifecycle
When does architectural activities take
place?
The evil of BUFD = Big Up-Front Design
Defer decisions to the last responsible
moment
Refactor!
Kruchten - 2009
Inception
Elaboration
Construction
Transition
time
Kruchten - 2009
Philippe Kruchten
12
Inception
Construction
Transition
time
Minimal pure
Architectural
Activities
Kruchten - 2009
Elaboration
Construction
Preliminary
P
li i
Architect.
A
hit t Architect.
A hit t Devel.
D
l
Iteration
Iteration Iteration Iteration
D
Devel.
l
Iteration
D
Devel.
l
Iteration
Transition
Transition
T
iti Transition
T
iti
Iteration Iteration
Philippe Kruchten
13
Construction
Elaboration
Management team
and Transition
Management team
Architecture team
Initial team
Feature team 1
Architecture
team
Feature team 2
Prototyping team
Infrastructure
team A
Feature team 3
Infrastructure
team B
Kruchten - 2009
integration team
Construction
Elaboration
Management team
and Transition
Management team
Architecture team
Initial team
Feature team 1
Architecture
team
Feature team 2
Prototyping team
Infrastructure
team A
Feature team 3
Infrastructure
team B
Kruchten - 2009
Philippe Kruchten
integration team
14
Issues
1.
2
2.
3.
4.
5.
6.
7.
Semantics
Scope
Lifecycle
Role
Description
Methods
Value & cost
Kruchten - 2009
Inflation?
Kruchten - 2009
Philippe Kruchten
15
Visionary - Shaper
Designer making choices
Communicator between multiple parties
Troubleshooter
Herald window of the project
Janitor cleaning up behind the PM and the
developers
Kruchten - 2009
Philippe Kruchten
16
Construction
Elaboration
Management team
and Transition
Management team
Architecture team
Initial team
Feature team 1
Architecture
team
Feature team 2
Prototyping team
Infrastructure
team A
Feature team 3
Infrastructure
team B
Kruchten - 2009
integration team
Construction
Elaboration
Management team
A. Reloadus
Initial team
and Transition
Management team
Architecture team
Feature team 1
Architecture
team
Feature team 2
Prototyping team
Infrastructure
team A
Feature team 3
Infrastructure
team B
A. Aryzus
Kruchten - 2009
Philippe Kruchten
integration team
17
Issues
1.
2
2.
3.
4.
5.
6.
7.
Semantics
Scope
Lifecycle
Role
Description
Methods
Value & cost
Kruchten - 2009
Architectural description
Logical View
Metaphor
Process
View
Prototype
Software architecture document
Use of UML?
UML-based tools?
Code?
Implementation
View
Use Case
View
Deployment
View
Kruchten - 2009
Philippe Kruchten
18
Size
Age of
Criticality
System
Age of system
Rate of change
Rate of
change
Business model
Stable architecture
Team distribution
Governance
Governance
Size
Criticality
Context
Team
Distribution
Business
model
Stable
Architecture
Kruchten - 2009
Issues
1.
2
2.
3.
4.
5.
6.
7.
Semantics
Scope
Lifecycle
Role
Description
Methods
Value & cost
Kruchten - 2009
Philippe Kruchten
19
Issues
1.
2
2.
3.
4.
5.
6.
7.
Semantics
Scope
Lifecycle
Role
Description
Methods
Value & cost
Kruchten - 2009
Philippe Kruchten
20
Kruchten - 2009
Kruchten - 2009
Philippe Kruchten
21
Planning
From requirements derive:
Architectural requirements
q
Functional requirements
Establish
Dependencies
Cost
Plan interleaving:
Functional increments
Architectural increments
Kruchten - 2009
Kruchten - 2009
Philippe Kruchten
22
Benefits
Gradual emergence of architecture
Validation of architecture with actual
functionality
Early enough to support development
Not jjust BUFD
No YAGNI effect
Kruchten - 2009
Elaboration
Construction
Preliminary
P
li i
Architect.
A
hit t Architect.
A hit t Devel.
D
l
Iteration
Iteration Iteration Iteration
D
Devel.
l
Iteration
D
Devel.
l
Iteration
Transition
Transition
T
iti Transition
T
iti
Iteration Iteration
Philippe Kruchten
23
Agility as a Culture
Culture
Beliefs, Norms
Values
Rituals
Jargon
Behaviours
Reflect beliefs
Reflect values
Manifesto!
Kruchten - 2009
R. Thomsett 2007
Beliefs,Beliefs,
Norms Norms
Values
Values
ReflectReflect
beliefs beliefs
Behaviours
B h i
Behaviours
ReflectReflect
values values
Kruchten - 2009
Philippe Kruchten
Rituals
Jargon
R. Thomsett 2007
24
Stages
Ethnocentrism
Denial
Defense
Ethnorelativism
Acceptance
Integration
Kruchten - 2009
Architects
Kruchten - 2009
Philippe Kruchten
25
Recommendations
Understand your context
How much architecture?
Define architecture
Meaning
Boundaries
Responsibility
Tactics (methods)
Representation
1.
2
2.
3.
4.
5.
6.
7.
Semantics
S
Scope
Lifecycle
Role
Description
Methods
Value & cost
Kruchten - 2009
Recommendations
No ivory tower
Architect is one of us
Architecture
Architecture owner
owner (Product owner)
Make architecture visible, at all time
Philippe Kruchten
26
Evolutionary Design
In order to work, evolutionary design needs
a force that drives it to converge. This
force can only come from people
somebody on the team has to have the
determination to ensure that the design
quality stays high.
Martin Fowler 2002
Kruchten - 2009
Philippe Kruchten
27
a triumph equaled
only by its monumental
failure.
Questions?
Kruchten - 2009
Philippe Kruchten
28
References
Philippe Kruchten
29