making leaders successful every day. © 2012 forrester research, inc. reproduction prohibited...

Post on 25-Dec-2015

220 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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!

Thank youJeffrey Hammond

+1 978.226.8886

jhammond@forrester.com

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

top related