making leaders successful every day. © 2012 forrester research, inc. reproduction prohibited...
TRANSCRIPT
Making Leaders Successful Every Day
© 2012 Forrester Research, Inc. Reproduction Prohibited
Numbers are overrated….
Modern Applications – Modern ALMJeffrey 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…
7Entire 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 Prohibited8
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 clients2. Deployed on elastic
infrastructure3. Aggregate discrete services4. Use managed APIs5. Integrate open source
software6. Employ dev-ops techniques7. 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
23
45
67 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
ComplexUnknowable
Probe, sense, respond
ComplicatedKnowable
Sense, analyze, respond
ChaosTurbulent and unconnected
Act, sense, respond
SimpleKnown
Sense, categorize, respond
Disorder
Fee
dbac
kE
stablished Practices
Using the Cynefin framework
We don’t how to make Modern Applications
ComplexUnknowable
ComplicatedKnowable
ChaosTurbulent and unconnected
SimpleKnown
Disorder
Fee
dbac
kE
stablished Practices
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 KeyLevel Focus Characteristics Results
5 Hypothesis-driven delivery
Requirements include testable metricsFrequent use of A/B testingServices designed for CDDBMS changed decoupled from system changes
Delivery enables business innovation
4 Release on demand
Teams organized around servicesDeployment pipeline rejects bad changesWork delivered in small batchesComprehensive test + release automation
Service always in a releasable stateCapability >= Need
3 Regular releases w/ milestones
CI and trunk-based developmentAutomating provisioning and testing“Done” = tested and deployed
Regular release cadenceCapability < Need
2 Time-boxed releases
Clear product ownershipChange management controls<1 mo. cyclesSome testing, release automation
Planned releasesCapability < Need
1 Heroic individuals
Manual testingIntegration explosionManual provisioning
Ad-hoc releases
http://bit.ly/10hUmK3
Software supply chains are maturing
› Use of OSS and participation in OSS communities
› Growth of “The Forge” as a developer’s home base
› Service composition and the death of NIH
› From Draftsmen -> Craftsmen
› Crowdsourcing for software innovation
› ALM data will become increasingly federated
Picture: http://www.flickr.com/photos/mulad/200072198/sizes/l/
© 2012 Forrester Research, Inc. Reproduction Prohibited
Base: 2043 developers 2013 Developer Forrsights
Which of the following classes of open source software tools/frameworks have you used for development or deployment in the past 12 months?(Select all that apply)”
4 out of 5 developers now use OSS
Relational DBMSes (e.g., MySQL, PostgreSQL, SQLite)
Operating systems (e.g., Red Hat Linux, Suse, Android)
Web servers (e.g., Apache, nginx)
Development IDEs (e.g., Eclipse, NetBeans)
Application server (e.g., JBoss, Tomcat)
SCM Tools (e.g., Git, Subversion, Mercurial)
Application frameworks (e.g., Spring, Rails, Zend)
Content management systems (e.g., Alfresco, Drupal)
Business intelligence tools (e.g., BIRT, Jasper Reports, Spago)NoSQL DBMSes (e.g., Apache Hadoop, MongoDB, Riak,
Couchbase)Business applications (Sugar CRM, Bravo)
Management and monitoring (e.g., Nagios, Cacti, Shinken)Release/deployment management tools (e.g., Chef, Cf Engine,
Puppet)Portals or mashup servers (e.g., Liferay, JBoss Portal, eXo)
Have not used open source software
46%
45%
44%
38%
28%
22%
21%
20%
15%
14%
14%
12%
11%
11%
18%
© 2012 Forrester Research, Inc. Reproduction Prohibited
Source: 2013 Developer Forrsights
I contribute to open source projects
Intrinsic motivation dominates development
Yes; 27%
No ; 73%
N=1744
On average, how many hours a week do you spend programming personal or side projects not related to
your day job?
N=2042
I do not program or develop on my own time outside my day job
<5 hours a week
5-10 hours a week
11-20 hours a week
> 20 hours a week
23%
35%
24%
12%
7%
© 2012 Forrester Research, Inc. Reproduction Prohibited
Base: 696 IT and professional developers - 2013 Developer Forrsights
To what extent is your primary team geographically distributed?
Development teams are often distributed
27%
13%
16%
18%
12%
14%
All team members are in one location90% to 99% of the team is in one location75% to 89% of the team is in one location50% to 74% of the team is in one location25% to 49% of the team is in one locationess than 25% of the team is in one location
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!
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
V 1.0 (MVP)
V 1.2.2V 1.2V 1.2.1
Regression + Emergency Patch
New OS version released
V 2.0V 2.1
Features +Defect fixes
Regular Internal Sprint Cycle + Beta Testing (2 weeks)
A typical mobile app release schedule