Date post: | 26-Dec-2015 |
Category: |
Documents |
Upload: | giles-townsend |
View: | 217 times |
Download: | 1 times |
Failures – Love ‘em or lose
János Tóth-Égetö / Software Consultant
2015-04-03
www.softhouse.se
Softhouse Consulting
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
• How do we learn new stuff?• What role has failures?
The learning process
• Speeding up development• Level up with DevOps
Fail fast – Succeed fast
• Discover requirements iteratively• Learn how to do the right things
Discover – With Lean Startup
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
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
Speed up development
Execute test cases - FAST
Fail - FAST
Analyze failure - FAST
Refactor/Redesign - FAST
Succeed - FAST
What defines DevOps
• Collaboration between developers and IT operations/Quality Assurance
• Sharing information• Cross-process responsibility• Tear down fences between different parts of organization
Culture
• Extensive use of tools for automation• Shorten feedback loops• Continuous Delivery• Continuous Deployment
Automation
• Measure effects of automation• Base decisions on data, not opinions
Measurements
SharedGoals
AlwaysShippable
InformedDecisions
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
• Use of agile development processes and methodologies
Agile development
• Demand for an increased rate of production releases business stakeholders
Business requirements
• Wide availability of virtualized and cloud infrastructure from internal and external providers
Cloud computing
Fail & succeed fast with DevOps
Deploy
System Test
Integration Test
Unit Test
CI Environment
Stage Environment
Production Environment
Co
nti
nu
ou
s D
eliv
ery
Co
nti
nu
ou
s D
eplo
ymen
t
Automate Measure Feedback
“Customers don’t know what’spossible. Most have no idea
about the enablingtechnology involved.”
- Marty Cagan
“You can’t just ask customerswhat 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
• Eric Ries – The Lean Startup (2011)• Business-hypothesis-driven experimentation• Iterative product releases
Applied Lean Principles
• Sidestep need for initial large development and need for heavy funding
• Reduces risk for large failures
Reduce market risks
• Initially targeted for high-tech startups• Applies to any individual/team/company that aims to launch a
product or service to market
Not only for startups
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
• The minimum version of a product that can be used to test the business value of it
Minimum Viable Product (MVP)
• Different versions of a product are offered to customers at the same time. Measure impact on actionable metric.
Split Testing (A/B)
• Build a product based on an idea• Measure customers' reactions and behaviors against built
product• Learn whether to persevere or pivot the idea
Build-Measure-Learn
Examples on Split testing17
3%
Dustin found that “You should follow me on Twitter here” worked 173% better than his control text, “I’m on Twitter.”
100%
A surprising conclusion from two separate A/B tests: putting human photos on a website increases conversion rates by as much as double.
34% CareLogger
increased its conversion rate by 34% simply by changing the color of the sign-up 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