SlideShare a Scribd company logo
1 of 99
Download to read offline
http://agilenorth.org/2016-conference Chris F Carroll
Agile Software Architecture
2 things it might mean “agile software architecture” is?
doing the architect’s job
in an “agile” way?
creating a software architecture to
support agile development?
— or —
agilenorth.org/2016-conference/ Chris F Carroll
✤ Software Architecture: Why & What?

✤ What is different about the (software
quality) requirements in a business
where “agility” is important?

✤ How do we express those priorities in
architecture, design & code?
agilenorth.org/2016-conference/ Chris F Carroll
Software Architecture : why & what?
the value-add of software architecture
Software Architecture
claims
“to enable reasoning 

about the quality attributes 

of software systems”
Why software architecture?
What is a Quality Attribute?
What does “Reasoning about” mean?
just two questions… The promise of Software Architecture
What is a Quality Attribute? Who defines quality?
“It’s not what you do, it’s the way that you do it”
affordability, availability, correctness,
deployability,efficiency, evolvability,
extensibility, fault-tolerance, main-
tainability, modifiability, reliability,
resilience, responsiveness, robust-ness,
safety, scalability, securability,
testability, usability, …
What is a Quality Attribute? ISO 25010
“It’s not what you do, it’s the way that you do it”
accessibility, accountability, accuracy, adaptability, administrability,
affordability, agility, auditability, autonomy, availability, compatibility,
composability, configurability, correctness, credibility, customizability,
debugability, degradability, determinability, demonstrability,
dependability, deployability, discoverability, distributability, durability,
effectiveness, efficiency, evolvability, extensibility, failure transparency,
fault-tolerance, fidelity, flexibility, inspectability, installability, integrity,
interchangeability, interoperability, learnability, maintainability,
manageability, mobility, modifiability, modularity, operability,
orthogonality, portability, precision, predictability, process capabilities,
producibility, provability, recoverability, relevance, reliability,
repeatability, reproducibility, resilience, responsiveness, reusability,
robustness, safety, scalability, seamlessness, self-sustainability,
serviceability, supportability, securability, simplicity, stability, standards
compliance, survivability, sustainability, tailorability, testability,
timeliness, traceability, understandability, upgradability, usability
why architecture? because …
“… No-one re-writes a system because of
deficient functionality. It’s always because
of some quality failing – performance or
reliability, usability, or ease of modifiability”
and even to predict“Reasoning” is analytical thinking
estimate
measure
risk-evaluate
account for
cost-benefit-analyse
calculate
quantify
validate
budget
}everything
the value-add of software architecture
Software Architecture
claims
“to enable reasoning 

about the quality attributes 

of software systems”
Why software architecture?
Abstraction is often the key Which goes faster? It depends…
Abstraction is often the key Maths: Reason by abstraction
220kW
12T
But get the right requirements The cost of change is high
1 60
Many ways to get from A to B …understand your context
the value-add of software architecture
✤ Understand what qualities you need

✤ Define them precisely, using
abstractions

✤ Measure & Test
Why software architecture?
Software qualities, agile style
Reliability / Availability
Story: “Our service should still be available
even if a machine fails”
Acceptance test #1:
Pull the plug. Does the service still work?
ISO 25010
Software qualities, agile style
User Stories & Acceptance Tests 

works well as a format to define and
measure software qualities:
Story: “The search should be fast”
Acceptance test #1:
Run 1000 automated searches for each of
the 50 most popular terms. 95% should
return in less than 2 seconds.
ISO 25010
Software qualities, agile style
Story: “User accounts should be secure
against brute force attacks”
Acceptance Tests
#1: After 10 incorrect password entries, the
system should refuse even a correct
password for 20 minutes (& show message)
#2 After 21 minutes, a correct password
should work
#3 Even if 10 guesses are from 10 different
IP addresses
ISO 25010
Some Special Software Qualities
Security: Is complicated. Usually analysed as 3
different qualities (“CIA”), applied to specific
Assets (e.g. data and/or systems). Oh and there’s
authenticity, non-repudiation & accountability & …
Scalability: is not, imho, a software quality. But it is
a nearly-magic bullet: one tactic for performance,
reliability/availability & volume/load in one go.
Maintainability/Evolvability: Is often your agile
developers’ favourite concern
for some meaning of “special”
Modifiability, Extensibility, Evolvability
Modifiability & Extensibility
Quality: Modifiability/Evolvability
Story: A new font format or
output format becomes popular
Acceptance test #1: Using the
new format should require
change to only 1 component and
no interfaces
Load balancing as a tactic for scaling
Load balancing as a tactic for scaling
Quality: Availability (under load)
Story: Lots of users
Acceptance test #1: the system
should support 1000
simultaneous users without loss
of any other quality or function
multiple architectural views each view has its own vocabulary
4+1 (Kruchten, 1995) IBM developerworks
20 years on … “6 + 0 + 1”
Rozanski & Woods, Software Systems Architecture, 2nd ed
Why software architecture?
Why Software Architecture ?
because
it enables reasoning 

about the quality attributes 

of a software system
the “Value-Add”
agilenorth.org/2016-conference/ Chris F Carroll
Software Architecture : What?
Architecture is ... Bass, Clements, Kazman, 1997-2012
The Software Engineering Institute

(ca 2001AD) :
“The structure or structures of the
system, which comprise software
elements, the externally visible properties
of those elements, and the relationships
among them.”
Architecture is ... Kruchten, updated 2009
Kruchten 2009 

The Significant Decisions about:

• the organisation of a software system,
• the selection of the structural elements and their
interfaces by which the system is composed together
with their behaviour as specified in the collaboration
among those elements,
• the composition of these elements into progressively
larger subsystems,the architectural style that guides
this organisation, these elements and their interfaces,
their collaborations, and their composition
architecture has design decisions
http://www.enterpriseintegrationpatterns.com/gregor.html
What is “The Architecture” of a system? rough cut definitions
“the fundamental structures or
organisation of your code”
“all the rules & design decisions you have
get right up-front, because they are too
expensive to change later.”
“Shearing
layers” views a
building as
components that
evolve in
different
timescales.


Frank Duffy:
“Our basic
argument is that
there isn't any
such thing as a
building.
A building
properly
conceived is
several layers of
longevity of built
components.”lower shearing layers are too expensive to change
Agile
Software
Architecture
photo: http://d.lib.ncsu.edu ua023_025 copyright not known
Agile vs Architecture
Destined to Fight?
Individuals & interactions
over processes and tools
Working software
vs comprehensive documentation
Customer collaboration
over contract negotiation
Responding to change
over following a plan
ITABOK
ISO 42010
40 years of experience!
Agile & Architecture
Common Priorities
“Our highest priority is to satisfy the customer ...”
ISO42010
Systems & Software
Engineering —
Architecture Description
http://agilemanifesto.org together with /principles.html
Manifesto for Agile Software Development
We are uncovering better ways of developing

software by doing it and helping others do it.

Through this work we have come to value:
Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the 

right, we value the items on the left more.
Manifesto for Agile Software Development
We are uncovering better ways of developing

software by doing it and helping others do it.

Through this work we have come to value:
Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the 

right, we value the items on the left more.
learning through doing together
CONTINUOUS LEARNING
RELATIONSHIPS
together with /principles.html
FOCUS ON THE GOAL
Cargo Cult Agile “the outward form, but not the power”
Cockburn’s “Heart of Agile” alistair.cockburn.us/HeartOfAgile
We
don’t need
no stinkin’
architecture
The Architect vs. the Agile Team
Threats
“The chief measure of progress is working
software” so what value are you adding?
“Your up-front design won’t solve our actual
problems or help us respond to change”
!
Story of a failure
!  Large re-engineering of
a complex distributed
world-wide system;
2 millions LOC in C,
C++, Cobol and VB
!  Multiple sites, dozens of data repositories,
hundreds of users, 24 hours operation, mission-
critical ($billions)
!  xP+Scrum, 1-week iterations, 30 then up to 50
developers
!  Rapid progress, early success, features are
demo-able
!  Direct access to customer , etc.
!  A poster project for scalable agile development
https://pkruchten.files.wordpress.com/2009/07/kruchten-090608-agile-architecture-usc.pdf P Kruchten 2009
Hitting the wall
!  After 4 ½ months, difficulties
to keep with the 1-week
iterations
!  Refactoring takes longer
than one iteration
!  Scrap and rework ratio
increases dramatically
!  No externally visible progress anymore
!  Iterations stretched to 3 weeks
!  Staff turn-over increases; Project comes to a halt
!  Lots of code, no clear architecture, no obvious way
forward
https://pkruchten.files.wordpress.com/2009/07/kruchten-090608-agile-architecture-usc.pdf P Kruchten 2009
Hitting the wall
!  After 4 ½ months, difficulties
to keep with the 1-week
iterations
!  Refactoring takes longer
than one iteration
!  Scrap and rework ratio
increases dramatically
!  No externally visible progress anymore
!  Iterations stretched to 3 weeks
!  Staff turn-over increases; Project comes to a halt
!  Lots of code, no clear architecture, no obvious way
forward
https://pkruchten.files.wordpress.com/2009/07/kruchten-090608-agile-architecture-usc.pdf P Kruchten 2009
how much architecture you need depends on what you are building
depends on what you are building
Software without architecture? P.S. option 1 is a lie
Two options for doing software without
doing architecture:
1) Build something very small and simple

– or –

2) Rely on someone else’s architecture
Software without architecture? Simple software …
			public	static	void	Main()	
			{	
						System.Console.WriteLine("Hello,	World!");	
			}
Software without architecture? …means someone did architecture
			public	static	void	Main()	
			{	
						System.Console.WriteLine("Hello,	World!");	
			}
Fairbanks, 2010
How

about

“Just Enough”
Architecture?
enough to cover your risk
Fairbanks, 2010Software Quality Risk of Failure
1) Identify and prioritise risks
2) Select and apply a set of architecture
techniques
3) Evaluate risk reduction
http://static1.1.sqspcdn.com/static/f/702523/9359219/1289413590470/201011-Fairbanks.pdf
how much architecture you need depends on how much RISK you have
architecture & iterative delivery “Risk Driven Development”
The Fairbanks’ Quick Test:
☛ Are your risks written down?
Rational Unified Process & OpenUP http://epf.eclipse.org/wikis/openup/
Unified Process proposed that on a
greenfield project, the highest risk is
usually the architecture
On paper
Coded & on hardware
Skeleton is the first deliverable grow the functionality on it
also
called
“Spike”
or
“Tracer
Bullet”
Hence, the Skeleton Architecture
Skeleton is the first deliverable but identify where functionality will go
The Agile Growable Walking Skeleton
identify
WHERE
the muscle
will go
Partitioning for Agile Development http://epf.eclipse.org/wikis/openup/
How do you make a skeleton “growable”?
☛ Architectures have a hammer for this
kind of problem, before which
everything is a nail; and the name of
this hammer shall be called,



“Partition the System”
Just
the right
architecture
“building software as if people mattered”
Coplien & Bjørnvig, 2010
• The right architecture
enables 

rapid agile
development.
• “Lean” means thinking
ahead
Lean Architecture for Agile Software:
Coplien & Bjørnvig's Partitioning Steps
An example of

“Partition by rate of
change”


The domain is stable, 

sometimes over
centuries!


The functionality is
volatile, and
requirements can
change daily
get the domain right
good 

old-

fashioned
OO
“Respect
the
Domain”
Domain Driven Design means…
☛ Care more about the business (domain)
you are targeting than the technology
☛ If the domain is complex, model it
accurately & don’t stop refining and
correcting the model
☛ Ubiquitous Language: the same
vocabulary everywhere
☛ Bounded Context: Models, like words,
only have meaning in a context
https://www.infoq.com/interviews/domain-driven-design-eric-evans
Lean Architecture for Agile Software
Coplien & Bjørnvig's Partitioning Steps
2) Partition to maximise the autonomy of self-
organising teams
• Agile organisations organise by teams
• You can't fight Conway’s Law

“Organisations which design systems ... are constrained to
produce designs which are copies of the communication
structures of those organisations”
☛ Let the human considerations drive the partitioning, with
software engineering concerns secondary
Implications of Conway’s law dependencies: code & people
Your architecture
will follow your
teams.
If your teams are
organised in
layers like this,
then


(whatever you try
to make it)


your architecture
will look like this
too.
Layers means dependencies dependencies: code & people
If teams 

match layers… 

dependencies
go outside the
team…



no team is ever
able to deliver
easily
match teams to business domain rather than skill-oriented teams
http://www.full-stackagile.com/2016/02/14/team-organisation-squads-chapters-tribes-and-guilds/
Don’t fight Conway’s law. The law will win.
But
a team

that can
cover all
the bases 

(& layers!)

can deliver
indepen-
dently
principles behind the agile manifesto agilemanifesto.org/principles.html
Autonomous, Self Organising Teams
“Build projects around
motivated people. 

Give them the environment
and support they need, 

and trust them to get the job
done.”
“The best architectures,
requirements, and designs 

emerge from self-organizing
teams.”
Lean Architecture for Agile Software
Coplien & Bjørnvig's Partitioning Steps
2) Partition to maximise
the autonomy of self-
organising teams
• Enable teams to deliver
• If you fight Conway’s
Law, the Law will win
☛ Let the human considerations
drive the partitioning, with
software engineering
concerns secondary
each url is almost a separate
business with its own webapp 

(possibly on a separate server)
(microservices not the only way)
https://msdn.microsoft.com/en-us/magazine/mt595752.aspx
Auto-

nomous 

teams can 

deliver faster
by avoiding
complex
dependencies
Autonomous teams reduce dependencies
Q: how stable are capabilities?
SOA example: services map to business capabilities
Lean Architecture for Agile Software
Coplien & Bjørnvig's Partitioning Steps
Respect Domain Knowledge

• Partition around domains. Domains should in fact match
business structure

• Don't split a domain across geographic locations or
across architectural units

• Re-use existing products & product lines to bolster
domain partitioning

Respect Conway’s Law

• It shouldn't take a village to raise a module.

• 1 team can deliver & change a module fast. 3 teams can’t.
Lean Architecture for Agile Software:
What the system is vs. what the system does
Having “Partitioned
by rate of change”
and created a stable
domain we now deal
with …


The functionality is
volatile, and
requirements can
change daily
create Spaces for what-the-system-does tactics for agility
Consider how the architecture for a hotel
enables the functionalities of hotelling, e.g.
eating and sleeping.
☛ It does so by providing spaces within
which the functions can take place
☛ Build a software architecture which
provides a space for things to happen:
the functionality
functionality
goes in here
grand central terminal
royal palace, venaria http://www.dreamstime.com/zanico_info
two metaphors, but the same idea make space for functionality
define a space for what-the-system-does make space for functionality
☛ The growable skeleton has identified
places where a growing series of use-
cases can be added.
☛ The building-creates-spaces idea
provides space within which the
functionality can be coded and easily
changed or even replaced
the application layer can be expandable “layer” does not mean layered architecture
Aim for stability in the
domain model: it only
goes here if it’s true
“forever”
Let the application
layer change &
expand to your
customers’ heart’s
content
UI layer is usually at
least as volatile as
application layer
works even better with hexagons hexagonal architecture
http://www.methodsandtools.com/archive/archive.php?id=97
Domain Model 

in the middle
ApplicationLayerForUseCases
Application 

“Layer”
some thoughts on SOA IANA Service Architect
No change here: still
aiming for a long term
stable domain model
Event handlers
one option for
where you easily
change behaviour
SOA: You may be more
concerned with
business processes than
with Use Cases
“Shearing
layers” views a
building as
components that
evolve in
different
timescales.


Frank Duffy:
“Our basic
argument is that
there isn't any
such thing as a
building.
A building
properly
conceived is
several layers of
longevity of built
components.”lower shearing layers are too expensive to change
agility as a software quality tactics to achieve it
• An early walking skeleton with
identifiable space for use-cases to
expand in
• Match teams to business domain
• Partition by Domain
• Partition for Autonomous Teams
• Architect the spaces for adding
functionality
how many ways can I do it wrong?
how to do it wrong
My Favourite Anti Patterns … let me count the ways
15 Layer Architecture

Distributed objects for hipsters

Re-use that isn’t

Un-autonomous teams

It’s the wrong abstraction, Grommit!
15 Layer Architecture Step 1 to a 15 layer architecture
Step 1:
Start
with a good
old-fashioned
20th century
3-tier
or layered
application
architecture
Here’s one I made earlier
Step 2:
Jump on
Services
Bandwagon
but don’t
study any
service
oriented
architecture
patterns
distributed objects were popular once there’s a reason they’re history
A SOA reference architecture is very different to layers
in summary, three principles… Chris F Carroll
Agile Software Architecture
prioritise your software qualities define, measure and test
Don’t Fight Conway’s Law
Partition for Domains, and for Autonomous Teams
Respect The Domains
Make Spaces
for functionality
http://cafe-encounter.net @chrisfcarroll
Agile Software Architecture

More Related Content

What's hot

NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckUtrecht University
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and RhapsodyMartin Owen
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Prolifics
 
The java enterprise edition (Servlet Basic)
The java enterprise edition (Servlet Basic)The java enterprise edition (Servlet Basic)
The java enterprise edition (Servlet Basic)Atul Saurabh
 
Define and Manage Requirements with IBM Rational Requirements Composer
Define and Manage Requirements with IBM Rational Requirements ComposerDefine and Manage Requirements with IBM Rational Requirements Composer
Define and Manage Requirements with IBM Rational Requirements ComposerAlan Kan
 
Software is eating the world and MDD should be in the driving seat
Software is eating the world and MDD should be in the driving seatSoftware is eating the world and MDD should be in the driving seat
Software is eating the world and MDD should be in the driving seatJohan den Haan
 
From Process Design to Process Automation
From Process Design to Process AutomationFrom Process Design to Process Automation
From Process Design to Process AutomationJohan den Haan
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsProlifics
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- designLilia Sfaxi
 
Solution-Architectures-MADP-20180125
Solution-Architectures-MADP-20180125Solution-Architectures-MADP-20180125
Solution-Architectures-MADP-20180125FirmansyahIrma1
 
Business Process Management Meets Enterprise 2 0
Business Process Management Meets Enterprise 2 0Business Process Management Meets Enterprise 2 0
Business Process Management Meets Enterprise 2 0Sandy Kemsley
 
Software Factory - Overview
Software Factory - OverviewSoftware Factory - Overview
Software Factory - Overviewslides_teltools
 
Agile in Action - Act 3: Testing
Agile in Action - Act 3: TestingAgile in Action - Act 3: Testing
Agile in Action - Act 3: TestingSpiffy
 
The Challenges Oracle Forms Migration to ADF
The Challenges Oracle Forms Migration to ADFThe Challenges Oracle Forms Migration to ADF
The Challenges Oracle Forms Migration to ADFDataNext Solutions
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Toolsghodgkinson
 
Modern Rapid Application Development - Too good to be true
Modern Rapid Application Development - Too good to be trueModern Rapid Application Development - Too good to be true
Modern Rapid Application Development - Too good to be trueWaveMaker, Inc.
 

What's hot (20)

NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide Deck
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and Rhapsody
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
 
The java enterprise edition (Servlet Basic)
The java enterprise edition (Servlet Basic)The java enterprise edition (Servlet Basic)
The java enterprise edition (Servlet Basic)
 
Define and Manage Requirements with IBM Rational Requirements Composer
Define and Manage Requirements with IBM Rational Requirements ComposerDefine and Manage Requirements with IBM Rational Requirements Composer
Define and Manage Requirements with IBM Rational Requirements Composer
 
Software is eating the world and MDD should be in the driving seat
Software is eating the world and MDD should be in the driving seatSoftware is eating the world and MDD should be in the driving seat
Software is eating the world and MDD should be in the driving seat
 
From Process Design to Process Automation
From Process Design to Process AutomationFrom Process Design to Process Automation
From Process Design to Process Automation
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere tools
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- design
 
Solution-Architectures-MADP-20180125
Solution-Architectures-MADP-20180125Solution-Architectures-MADP-20180125
Solution-Architectures-MADP-20180125
 
Business Process Management Meets Enterprise 2 0
Business Process Management Meets Enterprise 2 0Business Process Management Meets Enterprise 2 0
Business Process Management Meets Enterprise 2 0
 
Software Factory - Overview
Software Factory - OverviewSoftware Factory - Overview
Software Factory - Overview
 
Agile in Action - Act 3: Testing
Agile in Action - Act 3: TestingAgile in Action - Act 3: Testing
Agile in Action - Act 3: Testing
 
BadesahebKBichu
BadesahebKBichuBadesahebKBichu
BadesahebKBichu
 
The Challenges Oracle Forms Migration to ADF
The Challenges Oracle Forms Migration to ADFThe Challenges Oracle Forms Migration to ADF
The Challenges Oracle Forms Migration to ADF
 
AppliFire Platform
AppliFire PlatformAppliFire Platform
AppliFire Platform
 
Vsts intro
Vsts introVsts intro
Vsts intro
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Modern Rapid Application Development - Too good to be true
Modern Rapid Application Development - Too good to be trueModern Rapid Application Development - Too good to be true
Modern Rapid Application Development - Too good to be true
 

Viewers also liked

User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software ArchitectureSimon Guest
 
Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An OverviewOliver Stadie
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software ArchitectureMarkus Voelter
 
Ibm%20 fmi%20accelerating%20transformation%20using%20benchmarks%20final%20260...
Ibm%20 fmi%20accelerating%20transformation%20using%20benchmarks%20final%20260...Ibm%20 fmi%20accelerating%20transformation%20using%20benchmarks%20final%20260...
Ibm%20 fmi%20accelerating%20transformation%20using%20benchmarks%20final%20260...Supaksorn Onlamun
 
Ember,js: Hipster Hamster Framework
Ember,js: Hipster Hamster FrameworkEmber,js: Hipster Hamster Framework
Ember,js: Hipster Hamster FrameworkBilly Shih
 
Personagraph introduction 11252014
Personagraph introduction 11252014Personagraph introduction 11252014
Personagraph introduction 11252014Personagraph
 
Making it big in software (ibm post doctoral fellow symposium keynote slidesh...
Making it big in software (ibm post doctoral fellow symposium keynote slidesh...Making it big in software (ibm post doctoral fellow symposium keynote slidesh...
Making it big in software (ibm post doctoral fellow symposium keynote slidesh...Sam Lightstone
 
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
 
Data-Centric and Message-Centric System Architecture
Data-Centric and Message-Centric System ArchitectureData-Centric and Message-Centric System Architecture
Data-Centric and Message-Centric System ArchitectureRick Warren
 
Recording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streamsRecording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streamsLuis Lopez
 
The Software Craftsman
The Software CraftsmanThe Software Craftsman
The Software Craftsmangoeran
 
IoT Architecture - are traditional architectures good enough or do we need n...
 IoT Architecture - are traditional architectures good enough or do we need n... IoT Architecture - are traditional architectures good enough or do we need n...
IoT Architecture - are traditional architectures good enough or do we need n...Guido Schmutz
 
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices Apigee | Google Cloud
 
IBM Software Capabilities
IBM Software CapabilitiesIBM Software Capabilities
IBM Software CapabilitiesNone
 
Giving MongoDB a Way to Play with the GIS Community
Giving MongoDB a Way to Play with the GIS CommunityGiving MongoDB a Way to Play with the GIS Community
Giving MongoDB a Way to Play with the GIS CommunityMongoDB
 
Software Architecture explained with Real Life Analogies
Software Architecture explained with Real Life AnalogiesSoftware Architecture explained with Real Life Analogies
Software Architecture explained with Real Life AnalogiesAntal Attila
 
Agile India 2012 Opening Talk
Agile India 2012 Opening TalkAgile India 2012 Opening Talk
Agile India 2012 Opening TalkNaresh Jain
 

Viewers also liked (20)

Layered Software Architecture
Layered Software ArchitectureLayered Software Architecture
Layered Software Architecture
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software Architecture
 
Software Architecture and Design - An Overview
Software Architecture and Design - An OverviewSoftware Architecture and Design - An Overview
Software Architecture and Design - An Overview
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software Architecture
 
Ibm%20 fmi%20accelerating%20transformation%20using%20benchmarks%20final%20260...
Ibm%20 fmi%20accelerating%20transformation%20using%20benchmarks%20final%20260...Ibm%20 fmi%20accelerating%20transformation%20using%20benchmarks%20final%20260...
Ibm%20 fmi%20accelerating%20transformation%20using%20benchmarks%20final%20260...
 
Ember,js: Hipster Hamster Framework
Ember,js: Hipster Hamster FrameworkEmber,js: Hipster Hamster Framework
Ember,js: Hipster Hamster Framework
 
RESTful Web API
RESTful Web APIRESTful Web API
RESTful Web API
 
Personagraph introduction 11252014
Personagraph introduction 11252014Personagraph introduction 11252014
Personagraph introduction 11252014
 
Making it big in software (ibm post doctoral fellow symposium keynote slidesh...
Making it big in software (ibm post doctoral fellow symposium keynote slidesh...Making it big in software (ibm post doctoral fellow symposium keynote slidesh...
Making it big in software (ibm post doctoral fellow symposium keynote slidesh...
 
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
 
Data-Centric and Message-Centric System Architecture
Data-Centric and Message-Centric System ArchitectureData-Centric and Message-Centric System Architecture
Data-Centric and Message-Centric System Architecture
 
Recording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streamsRecording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streams
 
The Software Craftsman
The Software CraftsmanThe Software Craftsman
The Software Craftsman
 
IoT Architecture - are traditional architectures good enough or do we need n...
 IoT Architecture - are traditional architectures good enough or do we need n... IoT Architecture - are traditional architectures good enough or do we need n...
IoT Architecture - are traditional architectures good enough or do we need n...
 
Atos Consulting
Atos ConsultingAtos Consulting
Atos Consulting
 
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
 
IBM Software Capabilities
IBM Software CapabilitiesIBM Software Capabilities
IBM Software Capabilities
 
Giving MongoDB a Way to Play with the GIS Community
Giving MongoDB a Way to Play with the GIS CommunityGiving MongoDB a Way to Play with the GIS Community
Giving MongoDB a Way to Play with the GIS Community
 
Software Architecture explained with Real Life Analogies
Software Architecture explained with Real Life AnalogiesSoftware Architecture explained with Real Life Analogies
Software Architecture explained with Real Life Analogies
 
Agile India 2012 Opening Talk
Agile India 2012 Opening TalkAgile India 2012 Opening Talk
Agile India 2012 Opening Talk
 

Similar to Agile Software Architecture

Sukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak
 
Software Architecture: Why and What?
Software Architecture: Why and What?Software Architecture: Why and What?
Software Architecture: Why and What?Chris F Carroll
 
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011TEST Huddle
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownAvisi B.V.
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile waveNiels Bech Nielsen
 
A Beard, An App, A Blender
A Beard, An App, A BlenderA Beard, An App, A Blender
A Beard, An App, A Blenderedm00se
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesDeborah Schalm
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesDeborah Schalm
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesDevOps.com
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WaySmartBear
 
When Architecture Meets Data
When Architecture Meets DataWhen Architecture Meets Data
When Architecture Meets DataEoin Woods
 
Microservices Journey NYC
Microservices Journey NYCMicroservices Journey NYC
Microservices Journey NYCChristian Posta
 
No Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software EngineeringNo Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software EngineeringAditi Abhang
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile DevelopmentHayim Makabee
 
SCA in an Agile World | June 2010
SCA in an Agile World | June 2010SCA in an Agile World | June 2010
SCA in an Agile World | June 2010Klocwork
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Agile India
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture uploadThe Real Dyl
 

Similar to Agile Software Architecture (20)

Sukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud Management
 
Software Architecture: Why and What?
Software Architecture: Why and What?Software Architecture: Why and What?
Software Architecture: Why and What?
 
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
SE Lecture 3.ppt
SE Lecture 3.pptSE Lecture 3.ppt
SE Lecture 3.ppt
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon Brown
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile wave
 
A Beard, An App, A Blender
A Beard, An App, A BlenderA Beard, An App, A Blender
A Beard, An App, A Blender
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBees
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBees
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBees
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right Way
 
When Architecture Meets Data
When Architecture Meets DataWhen Architecture Meets Data
When Architecture Meets Data
 
Microservices Journey NYC
Microservices Journey NYCMicroservices Journey NYC
Microservices Journey NYC
 
No Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software EngineeringNo Silver Bullet - Essence and Accidents of Software Engineering
No Silver Bullet - Essence and Accidents of Software Engineering
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile Development
 
The Road to SaaS
The Road to SaaSThe Road to SaaS
The Road to SaaS
 
SCA in an Agile World | June 2010
SCA in an Agile World | June 2010SCA in an Agile World | June 2010
SCA in an Agile World | June 2010
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture upload
 

More from Chris F Carroll

Software Technical Design for Information Security: A short intro for Tech Le...
Software Technical Design for Information Security: A short intro for Tech Le...Software Technical Design for Information Security: A short intro for Tech Le...
Software Technical Design for Information Security: A short intro for Tech Le...Chris F Carroll
 
What is Security, anyway? Software architecture for information security part...
What is Security, anyway? Software architecture for information security part...What is Security, anyway? Software architecture for information security part...
What is Security, anyway? Software architecture for information security part...Chris F Carroll
 
Deep Learning in 90 seconds. With a side of Algorithm Bias
Deep Learning in 90 seconds. With a side of Algorithm BiasDeep Learning in 90 seconds. With a side of Algorithm Bias
Deep Learning in 90 seconds. With a side of Algorithm BiasChris F Carroll
 
Clojure (and some lisp) in 10 mins for OO developers
Clojure (and some lisp) in 10 mins for OO developersClojure (and some lisp) in 10 mins for OO developers
Clojure (and some lisp) in 10 mins for OO developersChris F Carroll
 
Doing Architecture with Agile Teams IASA UK Summit 2013
Doing Architecture with Agile Teams IASA UK Summit 2013Doing Architecture with Agile Teams IASA UK Summit 2013
Doing Architecture with Agile Teams IASA UK Summit 2013Chris F Carroll
 
XP-Manchester 2013 Software Architecture for Agile Developers Intro
XP-Manchester 2013 Software Architecture for Agile Developers IntroXP-Manchester 2013 Software Architecture for Agile Developers Intro
XP-Manchester 2013 Software Architecture for Agile Developers IntroChris F Carroll
 

More from Chris F Carroll (6)

Software Technical Design for Information Security: A short intro for Tech Le...
Software Technical Design for Information Security: A short intro for Tech Le...Software Technical Design for Information Security: A short intro for Tech Le...
Software Technical Design for Information Security: A short intro for Tech Le...
 
What is Security, anyway? Software architecture for information security part...
What is Security, anyway? Software architecture for information security part...What is Security, anyway? Software architecture for information security part...
What is Security, anyway? Software architecture for information security part...
 
Deep Learning in 90 seconds. With a side of Algorithm Bias
Deep Learning in 90 seconds. With a side of Algorithm BiasDeep Learning in 90 seconds. With a side of Algorithm Bias
Deep Learning in 90 seconds. With a side of Algorithm Bias
 
Clojure (and some lisp) in 10 mins for OO developers
Clojure (and some lisp) in 10 mins for OO developersClojure (and some lisp) in 10 mins for OO developers
Clojure (and some lisp) in 10 mins for OO developers
 
Doing Architecture with Agile Teams IASA UK Summit 2013
Doing Architecture with Agile Teams IASA UK Summit 2013Doing Architecture with Agile Teams IASA UK Summit 2013
Doing Architecture with Agile Teams IASA UK Summit 2013
 
XP-Manchester 2013 Software Architecture for Agile Developers Intro
XP-Manchester 2013 Software Architecture for Agile Developers IntroXP-Manchester 2013 Software Architecture for Agile Developers Intro
XP-Manchester 2013 Software Architecture for Agile Developers Intro
 

Recently uploaded

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456KiaraTiradoMicha
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 

Recently uploaded (20)

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 

Agile Software Architecture

  • 1. http://agilenorth.org/2016-conference Chris F Carroll Agile Software Architecture
  • 2. 2 things it might mean “agile software architecture” is? doing the architect’s job in an “agile” way? creating a software architecture to support agile development? — or —
  • 3. agilenorth.org/2016-conference/ Chris F Carroll ✤ Software Architecture: Why & What?
 ✤ What is different about the (software quality) requirements in a business where “agility” is important?
 ✤ How do we express those priorities in architecture, design & code?
  • 4. agilenorth.org/2016-conference/ Chris F Carroll Software Architecture : why & what?
  • 5. the value-add of software architecture Software Architecture claims “to enable reasoning 
 about the quality attributes 
 of software systems” Why software architecture?
  • 6. What is a Quality Attribute? What does “Reasoning about” mean? just two questions… The promise of Software Architecture
  • 7. What is a Quality Attribute? Who defines quality? “It’s not what you do, it’s the way that you do it” affordability, availability, correctness, deployability,efficiency, evolvability, extensibility, fault-tolerance, main- tainability, modifiability, reliability, resilience, responsiveness, robust-ness, safety, scalability, securability, testability, usability, …
  • 8. What is a Quality Attribute? ISO 25010 “It’s not what you do, it’s the way that you do it” accessibility, accountability, accuracy, adaptability, administrability, affordability, agility, auditability, autonomy, availability, compatibility, composability, configurability, correctness, credibility, customizability, debugability, degradability, determinability, demonstrability, dependability, deployability, discoverability, distributability, durability, effectiveness, efficiency, evolvability, extensibility, failure transparency, fault-tolerance, fidelity, flexibility, inspectability, installability, integrity, interchangeability, interoperability, learnability, maintainability, manageability, mobility, modifiability, modularity, operability, orthogonality, portability, precision, predictability, process capabilities, producibility, provability, recoverability, relevance, reliability, repeatability, reproducibility, resilience, responsiveness, reusability, robustness, safety, scalability, seamlessness, self-sustainability, serviceability, supportability, securability, simplicity, stability, standards compliance, survivability, sustainability, tailorability, testability, timeliness, traceability, understandability, upgradability, usability
  • 9. why architecture? because … “… No-one re-writes a system because of deficient functionality. It’s always because of some quality failing – performance or reliability, usability, or ease of modifiability”
  • 10. and even to predict“Reasoning” is analytical thinking estimate measure risk-evaluate account for cost-benefit-analyse calculate quantify validate budget }everything
  • 11. the value-add of software architecture Software Architecture claims “to enable reasoning 
 about the quality attributes 
 of software systems” Why software architecture?
  • 12. Abstraction is often the key Which goes faster? It depends…
  • 13. Abstraction is often the key Maths: Reason by abstraction 220kW 12T
  • 14. But get the right requirements The cost of change is high 1 60
  • 15. Many ways to get from A to B …understand your context
  • 16. the value-add of software architecture ✤ Understand what qualities you need
 ✤ Define them precisely, using abstractions
 ✤ Measure & Test Why software architecture?
  • 17. Software qualities, agile style Reliability / Availability Story: “Our service should still be available even if a machine fails” Acceptance test #1: Pull the plug. Does the service still work? ISO 25010
  • 18. Software qualities, agile style User Stories & Acceptance Tests 
 works well as a format to define and measure software qualities: Story: “The search should be fast” Acceptance test #1: Run 1000 automated searches for each of the 50 most popular terms. 95% should return in less than 2 seconds. ISO 25010
  • 19. Software qualities, agile style Story: “User accounts should be secure against brute force attacks” Acceptance Tests #1: After 10 incorrect password entries, the system should refuse even a correct password for 20 minutes (& show message) #2 After 21 minutes, a correct password should work #3 Even if 10 guesses are from 10 different IP addresses ISO 25010
  • 20. Some Special Software Qualities Security: Is complicated. Usually analysed as 3 different qualities (“CIA”), applied to specific Assets (e.g. data and/or systems). Oh and there’s authenticity, non-repudiation & accountability & … Scalability: is not, imho, a software quality. But it is a nearly-magic bullet: one tactic for performance, reliability/availability & volume/load in one go. Maintainability/Evolvability: Is often your agile developers’ favourite concern for some meaning of “special”
  • 22. Modifiability & Extensibility Quality: Modifiability/Evolvability Story: A new font format or output format becomes popular Acceptance test #1: Using the new format should require change to only 1 component and no interfaces
  • 23. Load balancing as a tactic for scaling
  • 24. Load balancing as a tactic for scaling Quality: Availability (under load) Story: Lots of users Acceptance test #1: the system should support 1000 simultaneous users without loss of any other quality or function
  • 25. multiple architectural views each view has its own vocabulary
  • 26. 4+1 (Kruchten, 1995) IBM developerworks
  • 27. 20 years on … “6 + 0 + 1” Rozanski & Woods, Software Systems Architecture, 2nd ed
  • 28. Why software architecture? Why Software Architecture ? because it enables reasoning 
 about the quality attributes 
 of a software system the “Value-Add”
  • 29. agilenorth.org/2016-conference/ Chris F Carroll Software Architecture : What?
  • 30. Architecture is ... Bass, Clements, Kazman, 1997-2012 The Software Engineering Institute
 (ca 2001AD) : “The structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.”
  • 31. Architecture is ... Kruchten, updated 2009 Kruchten 2009 
 The Significant Decisions about:
 • the organisation of a software system, • the selection of the structural elements and their interfaces by which the system is composed together with their behaviour as specified in the collaboration among those elements, • the composition of these elements into progressively larger subsystems,the architectural style that guides this organisation, these elements and their interfaces, their collaborations, and their composition
  • 32. architecture has design decisions http://www.enterpriseintegrationpatterns.com/gregor.html
  • 33. What is “The Architecture” of a system? rough cut definitions “the fundamental structures or organisation of your code” “all the rules & design decisions you have get right up-front, because they are too expensive to change later.”
  • 34. “Shearing layers” views a building as components that evolve in different timescales. 
 Frank Duffy: “Our basic argument is that there isn't any such thing as a building. A building properly conceived is several layers of longevity of built components.”lower shearing layers are too expensive to change
  • 36. Agile vs Architecture Destined to Fight? Individuals & interactions over processes and tools Working software vs comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan ITABOK ISO 42010 40 years of experience!
  • 37. Agile & Architecture Common Priorities “Our highest priority is to satisfy the customer ...” ISO42010 Systems & Software Engineering — Architecture Description
  • 38. http://agilemanifesto.org together with /principles.html Manifesto for Agile Software Development We are uncovering better ways of developing
 software by doing it and helping others do it.
 Through this work we have come to value: Individuals and interactions over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan
 That is, while there is value in the items on the 
 right, we value the items on the left more.
  • 39. Manifesto for Agile Software Development We are uncovering better ways of developing
 software by doing it and helping others do it.
 Through this work we have come to value: Individuals and interactions over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan
 That is, while there is value in the items on the 
 right, we value the items on the left more. learning through doing together CONTINUOUS LEARNING RELATIONSHIPS together with /principles.html FOCUS ON THE GOAL
  • 40. Cargo Cult Agile “the outward form, but not the power”
  • 41. Cockburn’s “Heart of Agile” alistair.cockburn.us/HeartOfAgile
  • 43. The Architect vs. the Agile Team Threats “The chief measure of progress is working software” so what value are you adding? “Your up-front design won’t solve our actual problems or help us respond to change”
  • 44. ! Story of a failure !  Large re-engineering of a complex distributed world-wide system; 2 millions LOC in C, C++, Cobol and VB !  Multiple sites, dozens of data repositories, hundreds of users, 24 hours operation, mission- critical ($billions) !  xP+Scrum, 1-week iterations, 30 then up to 50 developers !  Rapid progress, early success, features are demo-able !  Direct access to customer , etc. !  A poster project for scalable agile development https://pkruchten.files.wordpress.com/2009/07/kruchten-090608-agile-architecture-usc.pdf P Kruchten 2009
  • 45. Hitting the wall !  After 4 ½ months, difficulties to keep with the 1-week iterations !  Refactoring takes longer than one iteration !  Scrap and rework ratio increases dramatically !  No externally visible progress anymore !  Iterations stretched to 3 weeks !  Staff turn-over increases; Project comes to a halt !  Lots of code, no clear architecture, no obvious way forward https://pkruchten.files.wordpress.com/2009/07/kruchten-090608-agile-architecture-usc.pdf P Kruchten 2009
  • 46. Hitting the wall !  After 4 ½ months, difficulties to keep with the 1-week iterations !  Refactoring takes longer than one iteration !  Scrap and rework ratio increases dramatically !  No externally visible progress anymore !  Iterations stretched to 3 weeks !  Staff turn-over increases; Project comes to a halt !  Lots of code, no clear architecture, no obvious way forward https://pkruchten.files.wordpress.com/2009/07/kruchten-090608-agile-architecture-usc.pdf P Kruchten 2009
  • 47. how much architecture you need depends on what you are building
  • 48. depends on what you are building
  • 49. Software without architecture? P.S. option 1 is a lie Two options for doing software without doing architecture: 1) Build something very small and simple
 – or –
 2) Rely on someone else’s architecture
  • 50. Software without architecture? Simple software … public static void Main() { System.Console.WriteLine("Hello, World!"); }
  • 51. Software without architecture? …means someone did architecture public static void Main() { System.Console.WriteLine("Hello, World!"); }
  • 53. Fairbanks, 2010Software Quality Risk of Failure 1) Identify and prioritise risks 2) Select and apply a set of architecture techniques 3) Evaluate risk reduction http://static1.1.sqspcdn.com/static/f/702523/9359219/1289413590470/201011-Fairbanks.pdf
  • 54. how much architecture you need depends on how much RISK you have
  • 55. architecture & iterative delivery “Risk Driven Development” The Fairbanks’ Quick Test: ☛ Are your risks written down?
  • 56. Rational Unified Process & OpenUP http://epf.eclipse.org/wikis/openup/ Unified Process proposed that on a greenfield project, the highest risk is usually the architecture On paper Coded & on hardware
  • 57. Skeleton is the first deliverable grow the functionality on it also called “Spike” or “Tracer Bullet” Hence, the Skeleton Architecture
  • 58. Skeleton is the first deliverable but identify where functionality will go The Agile Growable Walking Skeleton identify WHERE the muscle will go
  • 59. Partitioning for Agile Development http://epf.eclipse.org/wikis/openup/ How do you make a skeleton “growable”? ☛ Architectures have a hammer for this kind of problem, before which everything is a nail; and the name of this hammer shall be called,
 
 “Partition the System”
  • 61. Coplien & Bjørnvig, 2010 • The right architecture enables 
 rapid agile development. • “Lean” means thinking ahead
  • 62. Lean Architecture for Agile Software: Coplien & Bjørnvig's Partitioning Steps An example of
 “Partition by rate of change” 
 The domain is stable, 
 sometimes over centuries! 
 The functionality is volatile, and requirements can change daily
  • 63. get the domain right good 
 old-
 fashioned OO “Respect the Domain”
  • 64. Domain Driven Design means… ☛ Care more about the business (domain) you are targeting than the technology ☛ If the domain is complex, model it accurately & don’t stop refining and correcting the model ☛ Ubiquitous Language: the same vocabulary everywhere ☛ Bounded Context: Models, like words, only have meaning in a context https://www.infoq.com/interviews/domain-driven-design-eric-evans
  • 65. Lean Architecture for Agile Software Coplien & Bjørnvig's Partitioning Steps 2) Partition to maximise the autonomy of self- organising teams • Agile organisations organise by teams • You can't fight Conway’s Law
 “Organisations which design systems ... are constrained to produce designs which are copies of the communication structures of those organisations” ☛ Let the human considerations drive the partitioning, with software engineering concerns secondary
  • 66. Implications of Conway’s law dependencies: code & people Your architecture will follow your teams. If your teams are organised in layers like this, then 
 (whatever you try to make it) 
 your architecture will look like this too.
  • 67. Layers means dependencies dependencies: code & people If teams 
 match layers… 
 dependencies go outside the team…
 
 no team is ever able to deliver easily
  • 68. match teams to business domain rather than skill-oriented teams http://www.full-stackagile.com/2016/02/14/team-organisation-squads-chapters-tribes-and-guilds/ Don’t fight Conway’s law. The law will win. But a team
 that can cover all the bases 
 (& layers!)
 can deliver indepen- dently
  • 69. principles behind the agile manifesto agilemanifesto.org/principles.html Autonomous, Self Organising Teams “Build projects around motivated people. 
 Give them the environment and support they need, 
 and trust them to get the job done.” “The best architectures, requirements, and designs 
 emerge from self-organizing teams.”
  • 70. Lean Architecture for Agile Software Coplien & Bjørnvig's Partitioning Steps 2) Partition to maximise the autonomy of self- organising teams • Enable teams to deliver • If you fight Conway’s Law, the Law will win ☛ Let the human considerations drive the partitioning, with software engineering concerns secondary
  • 71. each url is almost a separate business with its own webapp 
 (possibly on a separate server)
  • 72. (microservices not the only way) https://msdn.microsoft.com/en-us/magazine/mt595752.aspx Auto-
 nomous 
 teams can 
 deliver faster by avoiding complex dependencies Autonomous teams reduce dependencies
  • 73. Q: how stable are capabilities? SOA example: services map to business capabilities
  • 74. Lean Architecture for Agile Software Coplien & Bjørnvig's Partitioning Steps Respect Domain Knowledge • Partition around domains. Domains should in fact match business structure • Don't split a domain across geographic locations or across architectural units • Re-use existing products & product lines to bolster domain partitioning Respect Conway’s Law • It shouldn't take a village to raise a module. • 1 team can deliver & change a module fast. 3 teams can’t.
  • 75. Lean Architecture for Agile Software: What the system is vs. what the system does Having “Partitioned by rate of change” and created a stable domain we now deal with … 
 The functionality is volatile, and requirements can change daily
  • 76. create Spaces for what-the-system-does tactics for agility Consider how the architecture for a hotel enables the functionalities of hotelling, e.g. eating and sleeping. ☛ It does so by providing spaces within which the functions can take place ☛ Build a software architecture which provides a space for things to happen: the functionality
  • 79. royal palace, venaria http://www.dreamstime.com/zanico_info
  • 80.
  • 81. two metaphors, but the same idea make space for functionality
  • 82. define a space for what-the-system-does make space for functionality ☛ The growable skeleton has identified places where a growing series of use- cases can be added. ☛ The building-creates-spaces idea provides space within which the functionality can be coded and easily changed or even replaced
  • 83. the application layer can be expandable “layer” does not mean layered architecture Aim for stability in the domain model: it only goes here if it’s true “forever” Let the application layer change & expand to your customers’ heart’s content UI layer is usually at least as volatile as application layer
  • 84. works even better with hexagons hexagonal architecture http://www.methodsandtools.com/archive/archive.php?id=97 Domain Model 
 in the middle ApplicationLayerForUseCases Application 
 “Layer”
  • 85. some thoughts on SOA IANA Service Architect No change here: still aiming for a long term stable domain model Event handlers one option for where you easily change behaviour SOA: You may be more concerned with business processes than with Use Cases
  • 86. “Shearing layers” views a building as components that evolve in different timescales. 
 Frank Duffy: “Our basic argument is that there isn't any such thing as a building. A building properly conceived is several layers of longevity of built components.”lower shearing layers are too expensive to change
  • 87. agility as a software quality tactics to achieve it • An early walking skeleton with identifiable space for use-cases to expand in • Match teams to business domain • Partition by Domain • Partition for Autonomous Teams • Architect the spaces for adding functionality
  • 88. how many ways can I do it wrong? how to do it wrong
  • 89. My Favourite Anti Patterns … let me count the ways 15 Layer Architecture
 Distributed objects for hipsters
 Re-use that isn’t
 Un-autonomous teams
 It’s the wrong abstraction, Grommit!
  • 90. 15 Layer Architecture Step 1 to a 15 layer architecture Step 1: Start with a good old-fashioned 20th century 3-tier or layered application architecture
  • 91. Here’s one I made earlier Step 2: Jump on Services Bandwagon but don’t study any service oriented architecture patterns
  • 92.
  • 93. distributed objects were popular once there’s a reason they’re history
  • 94. A SOA reference architecture is very different to layers
  • 95. in summary, three principles… Chris F Carroll Agile Software Architecture
  • 96. prioritise your software qualities define, measure and test
  • 97. Don’t Fight Conway’s Law Partition for Domains, and for Autonomous Teams Respect The Domains