the paradox of agile architecture quality: designing for failure
TRANSCRIPT
Copyright © 2014, Intellyx, LLC
1
The Paradox of Agile Architecture Quality:
Designing for Failure
Jason Bloomberg
President
@theebizwizard
About Jason Bloomberg
• President of Intellyx
• Advise companies on their digital transformation initiatives & help vendors communicate their agility stories
• Write for Forbes, Wired, & DevX on Digital Transformation
• Buy my latest book, The Agile Architecture Revolution
Copyright © 2014, Intellyx, LLC2
The Iron Triangle
Copyright © 2014, Intellyx, LLC3
Quality: The Fourth Corner
Copyright © 2014, Intellyx, LLC4
Photo
Cre
dit:
Cra
ig B
row
n -
htt
p:/
/ww
w.b
ett
erp
roje
cts
.net/
2009/0
3/i
t-used-t
o-b
e-i
ron-t
riangle
.htm
l
What about Agility?
• Business agility is a metarequirement
• Requirement that requirement change must be supported
• Balance quality and agility
Copyright © 2014, Intellyx, LLC5
Photo
Cre
dit:
TH
OR h
ttps:/
/ww
w.f
lickr.
com
/photo
s/g
eis
haboy500/
Requirement: Make the Organization More Agile
Agile Architecture Quality Star
Copyright © 2014, Intellyx, LLC6
Best-Effort Quality
• Quality takes time, limiting agility
• Insufficient agility lowers quality
• Need to rethink approach to quality
• Preventing adverse behavior less important than automatic recovery from such behavior
– Core Cloud architecture principle
Copyright © 2014, Intellyx, LLC7
Resilience More Important than Being Defect-Free P
hoto
Cre
dit:
Sam
uel M
. Liv
ingsto
n h
ttps:/
/ww
w.f
lickr.
com
/photo
s/3
9747297@
N05/
Different Meanings of “Agile”
• “Agile-with-a-capital-A”
– Software development that follows the Agile Manifesto
• General meaning of “agile”
• Business agility as property of an organization
Copyright © 2014, Intellyx, LLC8
Photo
Cre
dit:
Earl
McG
ehee
htt
ps:/
/ww
w.f
lickr.
com
/photo
s/e
jmc/1
0653135183/s
izes/l
The Agile Manifesto
Manifesto for Agile Software Development
We are uncovering better ways of developingsoftware 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 onthe right, we value the items on the left more.
Copyright © 2014, Intellyx, LLC9
Sourc
e:
htt
p:/
/ww
w.a
gilem
anifesto
.org
Context: Software Development
• Focus on small teams that crank out code
• Iterative, self-organizing, collaborative
• Focus on creating working software
Copyright © 2014, Intellyx, LLC10
Well-run Agile development means producing a lot of good software
quickly
Photo
Cre
dit:
Phil W
hitehouse h
ttps:/
/ww
w.f
lickr.
com
/photo
s/p
hilliecasabla
nca/2
473728872/s
izes/l
What about Architecture on Agile Projects?
• We don’t need no stinkin’ architecture!
• Architecture lumped in with documentation (less is more)
• Architects slow down developers
• Architects produce artifacts that aren’t Agile
– Lead to extra work
Copyright © 2014, Intellyx, LLC11
Photo
Cre
dit:
Yort
whtt
ps:/
/ww
w.f
lickr.
com
/photo
s/y
ort
w/5
470226807/s
izes/l
Widespread belief that Agile and Architecture don’t mix
But we Do Need Architecture!
• Software architecture
– Appropriate modularization of code
– Selection of appropriate components & libraries
– Integration strategy
• Systems architecture
– Scalability of distributed application
– Cloud deployment issues
– Availability, caching, etc.
Copyright © 2014, Intellyx, LLC12
Create Minimum Viable Architecture
• All documentation, artifacts, diagrams, etc. are means to an end
• Don’t architect more than the stakeholders want
• Problems:
– Shortsighted
– Leads to legacy issues
– Limits agilityCopyright © 2014, Intellyx, LLC13 P
hoto
Cre
dit:
Cam
era
Eye P
hoto
gra
phy h
ttps:/
/ww
w.f
lickr.
com
/photo
s/c
am
era
_is
_a_m
irro
r_w
ith_m
em
ory
/6628934195/s
izes/l
Defer Commitment on Design Decisions
• Traditional architecture completed before development
• On Agile projects, tentative architecture good enough
• Commit to design decisions in appropriate iteration/sprint
Copyright © 2014, Intellyx, LLC14
Photo
Cre
dit:
Wade R
ockett
htt
ps:/
/ww
w.f
lickr.
com
/photo
s/w
adero
ckett
/2947370316/s
izes/o
/
Why Agile Software Architecture isn’t Agile
• Agile movement focuses on working software
– Focus on getting the software to meet its requirements
– Get all roadblocks out of the way
• Agile-built software is coded to be fit for purpose
Copyright © 2014, Intellyx, LLC15
Photo
Cre
dit:
B4bees h
ttps:/
/ww
w.f
lickr.
com
/photo
s/b
rizo_th
e_scot/
4013939756/s
izes/l
Instant Legacy
• Difficult to upgrade
• Systems are inflexible
• Impossible to replace
• Difficult to customize
• Challenge to integrate
• Expensive over time
Copyright © 2014, Intellyx, LLC16
Photo
Cre
dit:
LH
OO
N h
ttps:/
/ww
w.f
lickr.
com
/photo
s/l
hoon/2
288339151/s
izes/l
The Overbuilding Paradox
• How do stakeholders know what flexibility they will require?
• How generalized should code be?
• When to build capabilitiesvs. when to build affordances?
Copyright © 2014, Intellyx, LLC17
Photo
Cre
dit:
Ishik
aw
a K
en h
ttps:/
/ww
w.f
lickr.
com
/photo
s/c
hid
ori
an/1
9898378/s
izes/l
Capabilities vs. Affordances
• Capability
– Ability to perform or achieve certain outcomes through features or functions
– Apps have capabilities
• Affordance
– A property of an object which allows an individual to perform an action
– Tools have affordances
– Depends upon how user wants to use tool
Copyright © 2014, Intellyx, LLC18 Photo
Cre
dit:
Era
Phern
alia
Vin
tage h
ttps:/
/ww
w.f
lickr.
com
/photo
s/e
raphern
alia_vin
tage/3
034341310/s
izes/o
/
Scaling Agile for the Enterprise
• Enterprise Architecture context
– Organization, process, technology, and information
• Legacy context
– Existing applications, middleware, systems of record
• Business focused, iterative, get stuff to work, iconoclastic
Copyright © 2014, Intellyx, LLC19
Photo
Cre
dit:
Bosto
n P
ublic L
ibra
ry h
ttps:/
/ww
w.f
lickr.
com
/photo
s/b
osto
n_public_libra
ry/8
962106164/s
izes/l
Business Agility
• Responsiveness
– Tactical value
• Resilience
– Risk mitigation
• Innovativeness
– Strategic value
Copyright © 2014, Intellyx, LLC20 Photo
Cre
dit:
Masonite B
urn
htt
ps:/
/ww
w.f
lickr.
com
/photo
s/m
asonite-b
urn
/6273626739/s
izes/l
Ability to respond to change in the business environment and leverage change for competitive advantage
Responsiveness
• The ability to respond quickly and efficiently to (potentially) positive change in the business environment
– Changing customer demand
– Changing marketplace environment
– Changing supply chain factors
• Tactical driver
Copyright © 2014, Intellyx, LLC21
Photo
Cre
dit:
Good E
ye M
ight
htt
ps:/
/ww
w.f
lickr.
com
/photo
s/b
ritt
anyg/1
796000993/s
izes/l
Resilience
• The ability to respond quickly and efficiently to negative change in the business environment
– Managing risk
– Bouncing back from adverse events
– Disaster recovery
– Security breach response
– Regulatory change response
• Tactical driverCopyright © 2014, Intellyx, LLC22
Photo
Cre
dit:
Joe h
ttps:/
/ww
w.f
lickr.
com
/photo
s/b
itshaker/
167480266/s
izes/o
/
Innovativeness
• The ability to introduce change into the business environment in order to achieve a strategicadvantage
– New products or services
– Expand market share
– Enter new markets
Copyright © 2014, Intellyx, LLC23
Photo
Cre
dit:
Kay K
im h
ttps:/
/ww
w.f
lickr.
com
/photo
s/k
aykim
/3883340152/s
izes/o
/
The Goal of Agile Software
• Requirement to build software that responds to changing requirements
• Inherent flexibility vs. rapid development & deployment
Copyright © 2014, Intellyx, LLC24 Photo
Cre
dit:
Robert
Couse-B
aker
htt
ps:/
/ww
w.f
lickr.
com
/photo
s/2
9233640@
N07/1
4859431605/s
izes/z
/
Bloomberg Agile Architecture Layers of Abstraction
Copyright © 2014, Intellyx, LLC25
META Dealing with Change (metaprocesses, metapolicies, etc. )
DYNAMIC Abstract Models (dynamic schemas, dynamic APIs, etc.)
ABSTRACTED (LOGICAL)
Abstracted Technology (schemas, software interfaces, etc.)
PHYSICAL Technology (software, middleware, databases, etc.)
What are You Writing?
• Code?
– Least flexible, most susceptible to overbuilding, reuse always a challenge
• Metadata via declarative programming?
– Abstracts code, but leads to complexity shell game
• Abstract models?
– Essential for implementable Agile Architecture, but vendors largely fall short
Copyright © 2014, Intellyx, LLC26
Photo
Cre
dit:
david
dhtt
ps:/
/ww
w.f
lickr.
com
/photo
s/p
uuik
ibeach/6
989179273/s
izes/l
Applying Model-Driven Architecture
• Business model drives platform-independent model, platform-independent model drives platform-specific models
• For BAA, business model at meta level
– Represents business agility driver
• Abstract models resolve to logical models at run time
Copyright © 2014, Intellyx, LLC27
Photo
Cre
dit:
Joe H
aupt
htt
ps:/
/ww
w.f
lickr.
com
/photo
s/5
1764518@
N02/8
726236053/s
izes/l
The Agility Platform
Copyright © 2014, Intellyx, LLC28
Your Application
Your Application
Application-Building Tool
Your Application
Application-Building Tool
Tool-Building Platform
Maximize Affordances
Coding for a Declarative Model
• Avoid declarative shell game
– Pushing all the complexity to the configuration (declarative model)
• Configuration should be
– Standards-based
– Browser UI friendly
– Simple
– Consistent
• Code should focus on affordances
Copyright © 2014, Intellyx, LLC29
Photo
Cre
dit:
Theodore
Scott
htt
ps:/
/ww
w.f
lickr.
com
/photo
s/t
heodore
scott
/4516759806/s
izes/o
/
Tool-Building Agility Platform: Maximum
Affordance
• Instead of software that can do things, want software that can enable users to do things
– Maximize affordances
– Software smart enough to afford any action
• Computers are examples of maximum affordance
• Build software with the same purpose
Copyright © 2014, Intellyx, LLC30
Photo
Cre
dit:
Mahender
G h
ttps:/
/ww
w.f
lickr.
com
/photo
s/g
mahender/
Working with Abstract Models
• Abstracts choice of schema
• Abstracts choice of API contract
• Abstracts semantic context
Copyright © 2014, Intellyx, LLC31
Photo
Cre
dit:
Tony C
alr
ns
htt
ps:/
/ww
w.f
lickr.
com
/photo
s/t
onycair
ns/1
4731782052/s
izes/l
Resolve to logical models at run time
Supporting Abstract Models in Software
• Tool-building platform (business agility platform)
– All affordances, affords tool-building capabilities
• Application-building tool
– Affords application-building capabilities to non-developers
– Rich UI support
– Non-imperative logic
• Event-driven, process-centric, and/or rules-based, for example
Copyright © 2014, Intellyx, LLC32
Photo
Cre
dit:
ellenm
1 h
ttps:/
/ww
w.f
lickr.
com
/photo
s/e
llenm
1/6
489345851/s
izes/l
Where’s Our Business Agility?
• Organizations must be responsive, resilient, and innovative
• Business agility is a property of the enterprise
• People and technology can be flexible as well, but we must architect our organizations to be agile
Copyright © 2014, Intellyx, LLC33
Photo
Cre
dit:
Stu
art
Berw
ick h
ttps:/
/ww
w.f
lickr.
com
/photo
s/l
aple
ader/
793507962/s
izes/l
The Transformative Role of Automation
• Cloud automates operational environment
• DevOps as automation-driven organizational change
Copyright © 2014, Intellyx, LLC34
Photo
Cre
dit:
wir
edfo
rlego
htt
ps:/
/ww
w.f
lickr.
com
/photo
s/w
iredfo
rsound23/6
813264988/s
izes/l
DevOps as Model for Cross-Cutting Architecture
From DevOps to “BizOps”
• Before: dev chucking code to test, then over wall to ops
• Now: continuous test, continuous deployment
• In progress: responsiveness to continuous requirements change & variation
Copyright © 2014, Intellyx, LLC35
Photo
Cre
dit:
fdecom
ite
htt
ps:/
/ww
w.f
lickr.
com
/photo
s/f
decom
ite/1
2598505695/s
izes/l
DevOps & AA Quality Star
Copyright © 2014, Intellyx, LLC36
DevOps Drumbeat
Copyright © 2014, Intellyx, LLC37
Jason Bloomberg
President, Intellyx
@theebizwizard
Send email NOW to [email protected] to download this presentation
Thank You!