Más contenido relacionado La actualidad más candente (20) Similar a The dev ops drumbeat reinventing the iron triangle (20) Más de Jason Bloomberg (20) The dev ops drumbeat reinventing the iron triangle1. Copyright © 2015, Intellyx, LLC
1
The DevOps
Drumbeat
Reinventing the Iron
Triangle
Jason Bloomberg
President
jason@intellyx.com
@theebizwizard
2. About Jason Bloomberg
• President of Intellyx
• Advise companies on their digital
transformation initiatives & help vendors
communicate their agility stories
• Run Bloomberg Agile Architecture
Certification course around the world
• Write for Forbes & Wired on
Digital Transformation
• Buy my latest book,
The Agile Architecture
Revolution
Copyright © 2015, Intellyx, LLC2
5. What about Agility?
• Business agility is a
metarequirement
• Requirement that
requirement change
must be supported
• Balance quality and
agility
Copyright © 2015, Intellyx, LLC5
PhotoCredit:THORhttps://www.flickr.com/photos/geishaboy500/
Requirement: Make the
Organization More Agile
7. 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 © 2015, Intellyx, LLC7
Resilience More Important than
Being Defect-Free
PhotoCredit:SamuelM.Livingstonhttps://www.flickr.com/photos/39747297@N05/
8. Resilience
• The ability to respond
quickly and efficiently to
negative change in the
business environment
– Managing risk
– Bouncing back from
adverse events
– Disaster recovery
• Tactical business driver
Copyright © 2015, Intellyx, LLC8
PhotoCredit:Joehttps://www.flickr.com/photos/bitshaker/167480266/sizes/o/
The opposite of brittleness
9. Fit-for-Purpose Often
Means Brittle
• Agile software built
intentionally with only
today’s needs in mind
• Planning for unexpected
contingencies contrary to
Agile approach
Copyright © 2015, Intellyx, LLC9
Brittle software leads to brittle
organizations
PhotoCredit:VeganFeastCateringhttps://www.flickr.com/photos/veganfeast/
10. The Goal of Agile
Software
• Requirement to build software that responds to
changing requirements
• Inherent flexibility vs. rapid development &
deployment
Copyright © 2015, Intellyx, LLC10
PhotoCredit:RobertCouse-Bakerhttps://www.flickr.com/photos/29233640@N07/14859431605/sizes/z/
11. DevOps & AA Quality Star
Copyright © 2015, Intellyx, LLC11
12. The DevOps Cadence
• Coordination of multiple
iterations/sprints across
multiple “projects”
• Agile approach to
project/program management
at enterprise level
• (Good) technical debt may
cross iterations/sprints
Copyright © 2015, Intellyx, LLC12
PhotoCredit:ScottEdmundshttps://www.flickr.com/photos/30557460@N05/
13. Bad vs. Good Technical
Debt
• Bad technical debt
– Sloppy code you
have to clean up
later
– Rarely if ever a good
thing
• Good technical debt
– Intentional missing functionality or simplifications
– Represented in backlog
– Essential part of Agile/DevOps approach
Copyright © 2015, Intellyx, LLC13
PhotoCredit:OrinZebesthttps://www.flickr.com/photos/orinrobertjohn/
15. The Design-Time Testing
Conundrum
• The more dynamic and distributed
the deployment environment, the
less design-time QA can catch
problems
• Testing increasingly in production
– At system level
• Automated rollback/graceful
degradation essential to DevOps
model
Copyright © 2015, Intellyx, LLC15
Quality focus shifts to
resilience
PhotoCredit:r.nialbradshawhttps://www.flickr.com/photos/zionfiction/
16. Good Technical Debt vs.
Resilience Tradeoff
• Resilience discussion
focuses on risk
mitigation
– Cost of mitigation vs.
predicted cost of
adverse event
• Do you take a shortcut
on resilience or on
functionality?
Copyright © 2015, Intellyx, LLC16
17. DevOps Cadence vs. Iron
Triangle
• Iron Triangle context:
discrete software projects
• DevOps context:
continuous delivery &
integration across
multiple, ongoing sprints
• Scope shifts forward or
backward as necessary
– Reflected as incurring or
paying technical debt
Copyright © 2015, Intellyx, LLC17
PhotoCredit:kDamohttps://www.flickr.com/photos/kdamo/
18. The Overbuilding Paradox
• How do stakeholders know
what flexibility they will
require?
• How generalized should
code be?
• When to build capabilities
vs. when to build
affordances?
Copyright © 2014, Intellyx, LLC18
PhotoCredit:IshikawaKenhttps://www.flickr.com/photos/chidorian/19898378/sizes/l
Trade off building & changing
software quickly for
inherent flexibility
19. 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, LLC19
PhotoCredit:EraPhernaliaVintagehttps://www.flickr.com/photos/eraphernalia_vintage/3034341310/sizes/o/
20. 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, LLC20
PhotoCredit:daviddhttps://www.flickr.com/photos/puuikibeach/6989179273/sizes/l
21. The Agility Platform
Copyright © 2014, Intellyx, LLC21
Your
Application
Your
Application
Application-
Building Tool
Your
Application
Application-
Building Tool
Tool-Building
Platform
Maximize Affordances
22. 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, LLC22
PhotoCredit:TheodoreScotthttps://www.flickr.com/photos/theodorescott/4516759806/sizes/o/
23. 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, LLC23
PhotoCredit:MahenderGhttps://www.flickr.com/photos/gmahender/
24. Working with Abstract
Models
• Abstracts choice
of schema
• Abstracts choice
of API contract
• Abstracts
semantic context
Copyright © 2014, Intellyx, LLC24
PhotoCredit:TonyCalrnshttps://www.flickr.com/photos/tonycairns/14731782052/sizes/l
Resolve to logical models at run time
25. 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, LLC25
PhotoCredit:ellenm1https://www.flickr.com/photos/ellenm1/6489345851/sizes/l