Upload
jeffrey-hammond
View
613
Download
1
Embed Size (px)
DESCRIPTION
2/26 Keynote Presentation at EclipseCon 2013
Citation preview
Making Leaders Successful
Every Day
© 2012 Forrester Research, Inc. Reproduction Prohibited
Numbers are overrated….
Modern Applications – Modern ALM
Jeffrey S. Hammond, Vice President & Principal Analyst
@jhammond
March 26th, 2013
The best way to have a good idea…
Source: Flickr (http://profiles.nlm.nih.gov/ps/retrieve/Narrative/MM/p-nid/55/p-visuals/true)
Software innovation used to be expensive…
“When I built my first company in 1999 it cost $2.5 million in infrastructure just to get started and another $2.5 million in team costs to code, launch, manage, market and sell our software. So it’s not surprising that typical “A rounds” of venture capital were $5 to $10 million.”
Mark Suster, GRP Partners
…but what if innovation with software now cost 90% less than it used to?
You’d get an explosion of new services…
7 Entire contents © 2010 Forrester Research, Inc. All rights reserved.
Source: http://www.flickr.com/photos/indi/6865060402/sizes/k/
Built by a new generation of developers
– Kingmakers and Aspirants
© 2011 Forrester Research, Inc. Reproduction Prohibited 8
Taking advantage of the most advanced data
centers on Earth, while destroying traditional
barriers to entry
The way we develop is changing…
7 Traits of Modern Applications
1. Omni-channel clients
2. Deployed on elastic
infrastructure
3. Aggregate discrete services
4. Use managed APIs
5. Integrate open source
software
6. Employ dev-ops techniques
7. Focus on measurable
feedback
Source: Flickr http://upload.wikimedia.org/wikipedia/commons/6/65/HP_garage_front.JPG)
© 2013 Forrester Research, Inc. Reproduction Prohibited 10
Modern applications are complex
We need to prioritize and modernize
the architectures we build
Application patterns are evolving
Are you Agile enough?
Do you collect (and incorporate)
rapid feedback?
Can you design useful, usable,
desirable experiences?
Does your infrastructure evolve?
Building Modern Applications is hard!
Can you build high quality, multichannel, 5 star apps?
Source: Flickr (http://www.flickr.com/photos/kaz25/2444344463/sizes/o/in/photostream//)
Systems of
Engagement
Modern Applications shift ALM focus
Time to Safety
Time to Certainty
Time to Feedback
Systems of
Operation
Systems of
Record
Lifecycle Focus
Adapting Agile principles
› Use personas to drive insight
› Create journey maps
› Wireframes and prototypes build
backlog
› Feedback not requirements
documents
› Kanban boards to manage atomic
demand
› Analytics built into applications
Jeremiah is 52 years old and has a lot of
experience as sales representative working for
Acme. His typical day is driving and visiting different
clients. He knows a lot about Acme products and is
glad to share this information with everybody he
meet in his visits.
As he is always on the road he needs to be very
organized with his schedule and sensitive to time
when he is at a specific clinic or hospital. He’s
focused on accomplishing his sales goals for the
month and wants to be home ASAP to enjoy the
end of his day with his family.
He is online most of the time, often through his 3G
phone or his iPad and notebook, but sometimes
inside clinics or hospitals the signal is very low or
even non-existent. A big part of his job is to visit
doctors and see if they need to replace any specific
contact lens in their 'drawers'.
Acme expect him to be more a brand advocate than
just an order taker. They expect him to talk about
products, answer questions, offer new products and
be very proactive in his visits to always try to sell
more product.
Personas
Wow
Enjoyable
Functional
Neutral
Missed It
Frustrating
Awareness Consideration Research Purchase Engagement
1
2 3
4
5
6 7 8
9
10
11
Identify
customer and
stages of
journey
Indicate
primary (and
secondary )
devices for
each step
Describe each
step in the
journey, the
customer’s
needs and
perceptions
Indicate
significant
steps
Persona:
James
A Multi-channel journey map
Modern applications are complex systems
Complex Unknowable
Probe, sense, respond
Complicated Knowable
Sense, analyze, respond
Chaos Turbulent and unconnected
Act, sense, respond
Simple Known
Sense, categorize, respond
Disorder
Feedback
Esta
blis
hed P
ractic
es
Using the Cynefin framework
We don’t how to make Modern Applications
Complex Unknowable
Complicated Knowable
Chaos Turbulent and unconnected
Simple Known
Disorder
Feedback
Esta
blis
hed P
ractic
es
Systems of
Engagement
Systems of
Operation
Systems
of Record
Modern applications evolve
› Mean time between
deployments – 11.6 seconds
› Max # deployment/hour – 1079
› Mean # of hosts simultaneously
receiving a deployment – 10K
› Max # of hosts simultaneously
receiving a deployment – 30K
Amazon deployment stats (May -2012)
Source: O’Reilly (http://assets.en.oreilly.com/1/event/60/Velocity%20Culture%20Presentation.pdf)
Pictures: http://www.flickr.com/photos/blueridgekitties/4423381216/sizes/l/
A move toward different ALM processes
› Fewer branches in SCM –
evolve toward DVCS
› Developers test
› CI becomes decentralized,
more atomic, and critical
› You must run and consume
beta
› Mocks and mocking tools help
manage multi layer
complexity
© 2013 Forrester Research, Inc. Reproduction Prohibited 22
Running “experiments”
› Requirements are testable
hypotheses
› Multivariate testing with traffic
routing
› Services are architected for
continuous deployment (e.g. feature
flags, hot patching)
› Releases become more “organic”
› Development moves from an
engineering process model to a
scientific process model
How do you test? In production!
› Test like you deploy – the last
mile is beyond your control
› Issues are hard to replicate in
isolation
› Big data requires storage
› You need to harden your
services
› Delivered via a new
generation of testing tools
Pictures: http://www.flickr.com/photos/dyanna/3202542828/sizes/l/
Not Quite A Simian Army
Continuous Delivery Capability Is Key Level Focus Characteristics Results
5 Hypothesis-
driven
delivery
Requirements include testable metrics
Frequent use of A/B testing
Services designed for CD
DBMS changed decoupled from system
changes
Delivery enables
business
innovation
4 Release on
demand
Teams organized around services
Deployment pipeline rejects bad changes
Work delivered in small batches
Comprehensive test + release automation
Service always in
a releasable state
Capability >= Need
3 Regular
releases w/
milestones
CI and trunk-based development
Automating provisioning and testing
“Done” = tested and deployed
Regular release
cadence
Capability < Need
2 Time-boxed
releases
Clear product ownership
Change management controls
<1 mo. cycles
Some testing, release automation
Planned releases
Capability < Need
1 Heroic
individuals
Manual testing
Integration explosion
Manual provisioning
Ad-hoc releases
http://bit.ly/10hUmK3
You need to rethink your approach
1. ALM that’s fit to purpose
2. Revitalize architecture
3. Horizontal, not vertical
4. Support hi-perf teams
5. “Done” is DONE
6. Federate and collaborate
7. Make it fun and rewarding!