Enterprise Automationur doin’ it wrong
who is this guy?
Mykel Alvis (@mykelalvis) Sr. Consultant at MomentumSI MomentumSI is a leading IT consultancy focused on enterprise
transformation http://www.momentumsi.com [email protected]
enterprise?
slow, expensive, sluggish, inefficient "Enterprise applications are about the display, manipulation,
and storage of large amounts of often complex data and the support or automation of business processes with that data.” – Martin Fowler
!entertainment, !productivity software that costs money, generally lots of it, if it doesn’t work
properly
who are you?
enterprise automation, not webops relatively slow SDLC non-cloud, maybe even totally non-virtual agile, agile-sounding, or maybe just (fr)agile probably a lot of brownfield dev process weight doesn’t really matter
what are you looking for?
cheap/fast/correct faster time-to-delivery more reliable and/or correct pushes less expensive cycles ease the pain
what do you really get?
failure partial success eventual acquiescence and redefinition of success reduced happiness
who wants to be happy?
executive management mid-level management business analysts development operations
who gets to be happy?
nobody precious few people who actually understand deployment
how you aren’t happy
delivery cycles are long successful deployments are rare replicability is uncommon or unknown
how ur doin’ it wrong
apathy lack of focus on delivery lack of support for automation
apathy
ap·a·thy [ap-uh-thee] noun, plural ap·a·thies. 1. absence or suppression of passion,
emotion, or excitement. 2. lack of interest in or concern for things that others find
moving or exciting. 3. Also, ap·a·thei·a, ap·a·thi·a [ap-uh-thee-uh]. Stoicism.
freedom from emotion of any kind. -- Dictionary.com
Enterprise-level Apathytm
code isn’t written to be deployed and nobody cares about that code promotion transition is not smooth and management does
not make that a priority general apathy is rampant, especially within larger organizations
causes of apathy
lack of clear goals lack of motivation for your goal lack of power to achieve goals
overcoming apathy (or whatever)
apathy is a bit (lot?/exactly?) like depression do something (anything!) gain a new goal try to make small positive differences extract yourself from negative groupthink
lack of focus on delivery
delivery is, or at least should be, part of the satisfaction of requirement
without delivery, there is no software “elegant” is unfortunately often a synonym for “unintelligible” delivery really means re-delivery delivery, and especially easy delivery, is an essential part of
practically all testing schemes
focusing on delivery
SLAs for everyone (analysis, development, QA, ops) upgrades should be automatic through delivery start from known quantities feature-poor code that delivers beats feature-rich code that
does not things that impede the delivery are Bad Things don’t forget non-delivery concerns
lack of support for automation
leadership support tool support training support
increasing automation support
utilize tools to control configuration collect time and success metrics build management is essential to a delivery pipeline
common solution elements
start from the top find a champion start small and deliver incrementally continually refactor your process keep your automation current
uncommon solution elements
start from the bottom hire your champion hide your talents under a bushel (for a while) think big, then start small and deliver incrementally continually refactor your process keep your automation current
(some of) The Right Waytm
plan for automation from the start processes that enable, but don’t disable use semantic versions manage your source intelligently manage your dependencies intelligently define environments as source code baseline environments from known states avoid “frankensystems” seek smooth transitions define SLAs for developers as well as operations deployment code, not deployment meat combat apathy everywhere don’t write, or allow others to write, code that’s hard to deploy
fin