Making Leaders Successful was a document about modernizing application development practices. It discussed how the costs of software development have decreased dramatically, enabling new services and developers to enter the market. It emphasized adopting agile principles like using personas, journey maps, and prototypes to incorporate rapid user feedback. The document also covered how modern applications are complex systems that require evolving architectures, continuous delivery processes, and rethinking testing approaches like experimenting and testing in production. It stressed that organizations need to update their application lifecycle management to support modern development approaches.
3. Modern Applications – Modern ALM
Jeffrey S. Hammond, Vice President & Principal Analyst
@jhammond
March 26th, 2013
4. 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)
5. 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?
9. 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)
13. Building Modern
Applications is hard!
Are you Agile enough?
Do you collect (and incorporate)
rapid feedback?
Can you design useful, usable,
desirable experiences?
Does your infrastructure evolve?
Can you build high quality, multichannel, 5 star apps?
Source: Flickr (http://www.flickr.com/photos/kaz25/2444344463/sizes/o/in/photostream//)
14. Modern Applications shift ALM focus
Lifecycle Focus
Systems of
Time to Feedback Engagement
Systems of
Time to Certainty Record
Systems of
Time to Safety Operation
15. 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
16. Personas 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.
17. Identify
A Multi-channel journey map customer and
stages of
journey
Persona:
James Awareness Consideration Research Purchase Engagement
Wow
Describe each
step in the
journey, the
customer’s
7 needs and
8
Enjoyable 3 6 perceptions
2
Functional
1
11
Indicate
significant
5
steps
4 10
Neutral
Missed It 9
Indicate
primary (and
secondary )
devices for
Frustrating
each step
18. Modern applications are complex systems
Using the Cynefin framework
Established Practices
Complex Complicated
Unknowable Knowable
Feedback
Probe, sense, respond Sense, analyze, respond
Disorder
Chaos Simple
Turbulent and unconnected Known
Act, sense, respond Sense, categorize, respond
19. We don’t how to make Modern Applications
Established Practices
Complex Systems of Complicated
Unknowable Operation Knowable
Feedback
Systems
Disorder of Record
Systems of
Engagement
Chaos Simple
Turbulent and unconnected Known
20. Modern applications evolve
Amazon deployment stats (May -2012)
› 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
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/
21. 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
23. 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 Not Quite A Simian Army
Pictures: http://www.flickr.com/photos/dyanna/3202542828/sizes/l/
24. Continuous Delivery Capability Is Key
Level Focus Characteristics Results
5 Hypothesis- Requirements include testable metrics Delivery enables
Frequent use of A/B testing business
driven Services designed for CD
delivery innovation
DBMS changed decoupled from system
changes
4 Release on Teams organized around services Service always in
Deployment pipeline rejects bad changes a releasable state
demand Work delivered in small batches Capability >= Need
Comprehensive test + release automation
3 Regular CI and trunk-based development Regular release
Automating provisioning and testing cadence
releases w/ “Done” = tested and deployed
milestones Capability < Need
2 Time-boxed Clear product ownership Planned releases
Change management controls Capability < Need
releases <1 mo. cycles
Some testing, release automation
1 Heroic Manual testing Ad-hoc releases
Integration explosion
individuals Manual provisioning
http://bit.ly/10hUmK3
25. 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!