Failures * Love *em or lose

advertisement
Failures – Love ‘em or lose
János Tóth-Égetö / Software Consultant
2015-04-03
Softhouse Consulting
www.softhouse.se
Are you scared of failures?
Who am I?
János Tóth-Égetö
• Twitter: @Janos_TE
Employers
Ericsson 1999
UIQ 2006
Capgemini (Consulting @ Ericsson) 2008
Softhouse (Consulting @ Ericsson) 2014
Qvantel 2015
Been
doing
lately
Continuous Integration & Devops
Tech Lead in Jive Project
What I will talk about
The learning process
• How do we learn new stuff?
• What role has failures?
Fail fast – Succeed fast
• Speeding up development
• Level up with DevOps
Discover – With Lean Startup
• Discover requirements iteratively
• Learn how to do the right things
The learning process
Softhouse Consulting
www.softhouse.se
The learning expert
Then we grow up…
And become afraid of failures
So
embarrassing..
When it happen to companies
Failure prevention gone bad
"There wasn't a sense of urgency," a former
Nokia executive told me. When dealing with a
machine that pumped out millions of phones, a
single mistake or bad call could cost the
company billions of dollars. As a result,
management was structured around many layers
of approval bodies and meetings. "The whole
structure was built to prevent mistakes.“
From CNET article Farewell Nokia - The rise and fall of a mobile pioneer
The learning process
Success
Try something new
Failure
Apply knowledge
Learn from failure
The testing process
Success
Execute test cases
Failure
Refactor/Redesign
Analyze failure
Good vs. Bad Failures
• Reproducible
• Clear cause
• Controlled
environment
• Recoverable
• Intermittent
• Diffuse
cause
• Uncontrolled
environment
• Fatal
Design for good failures
Test one
thing per
test case
Improves
clarity
Make test
cases
independent
Improves
stability
Control your
environment
Improves
reproducibility
Good vs. Bad Failure
Handling
• Stakeholders
immediately notified
• Information
analyzed
• Cause isolated
• Action taken to
correct fault
• Action taken to
correct similar faults
• Failures go
unnoticed or
ignored
• No analyze
• Test taken out of
suite “temporarily”
• Unclear process
• Unclear
responsibilities
Key take-aways
Don’t be afraid of failures
Design for good failures
Control your environment
Create a strategy for failure handling
Fail fast – Succeed fast
Softhouse Consulting
www.softhouse.se
Speed up development
Succeed - FAST
Execute test cases - FAST
Fail - FAST
Refactor/Redesign - FAST
Analyze failure - FAST
Use the right tools for the job
Expandable
Easy to use
Fast
Easy to
Automate
Flexible
Level-up with DevOps
What defines DevOps
Culture
Shared
Goals
• Collaboration between developers and IT operations/Quality
Assurance
• Sharing information
• Cross-process responsibility
• Tear down fences between different parts of organization
Automation
•
•
•
•
Always
Shippable
Extensive use of tools for automation
Shorten feedback loops
Continuous Delivery
Continuous Deployment
Measurements
• Measure effects of automation
• Base decisions on data, not opinions
Informed
Decisions
What is the goal of DevOps
Faster Time To Market
Improve
deployment
frequency
Lower failure rate
on new releases
Shortened lead
time for fixes
Faster mean time
to recovery
What is driving DevOps
Agile development
• Use of agile development processes and
methodologies
Business requirements
• Demand for an increased rate of production
releases business stakeholders
Cloud computing
• Wide availability of virtualized and cloud
infrastructure from internal and external providers
System Test
Stage Environment
Integration
Test
CI Environment
Unit Test
Automate
Measure
Feedback
Continuous Deployment
Deploy
Production
Environment
Continuous Delivery
Fail & succeed fast with DevOps
Discover – With Lean Startup
Softhouse Consulting
www.softhouse.se
Discover
How do you know you’re
building the right thing?
“If I’d asked my customers
what they wanted
they’d have said
a faster horse.”
- Henry T. Ford
“Customers don’t know what’s
possible. Most have no idea
about the enabling
technology involved.”
- Marty Cagan
“You can’t just ask customers
what they want and then try
to give that to them.
By the time you get it built,
they’ll want something new.”
- Steve Jobs
Featuritis
Features used in a typical system
Credit: Standish Group Study reported at XP2002 by Jim Johnson, Chairman
Lean Startup Method
Applied Lean Principles
• Eric Ries – The Lean Startup (2011)
• Business-hypothesis-driven experimentation
• Iterative product releases
Reduce market risks
• Sidestep need for initial large development and need for
heavy funding
• Reduces risk for large failures
Not only for startups
• Initially targeted for high-tech startups
• Applies to any individual/team/company that aims to launch a
product or service to market
Eric Ries - The Lean Startup : How Todays Entrepeneurs Use Continuous Innovation to Create Radically Successful Business
Lean Startup Method
Principles and Practices
Lean
• Reduce waste
• Increase value
Agile
• Integrate customer feedback
in product development
DevOps
• Continuous Deployment
• Measure KPI’s
Lean Startup Terminology
Minimum Viable Product (MVP)
• The minimum version of a product that can be used to test the
business value of it
Split Testing (A/B)
• Different versions of a product are offered to customers at the
same time. Measure impact on actionable metric.
Build-Measure-Learn
• Build a product based on an idea
• Measure customers' reactions and behaviors against built
product
• Learn whether to persevere or pivot the idea
A surprising
conclusion from
two separate
A/B tests:
putting human
photos on a
website
increases
conversion rates
by as much as
double.
34%
Dustin found
that “You should
follow me on
Twitter here”
worked 173%
better than his
control text, “I’m
on Twitter.”
100%
173%
Examples on Split testing
CareLogger
increased its
conversion rate
by 34% simply
by changing the
color of the signup button from
green to red.
Decisions should be based on data – not opinions
Key learning
The company running most
experiments against the lowest cost
per experiment will win
• DevOps is your best friend when it comes to
optimizing development speed
• Lean Startup methods can help you build the
right things
Try – Fail - Succeed
Challenge
Try these
ideas!
“Failure is
success in progress.”
-Albert Einstein
Download