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