l e a n Principles of Lean Software Development software development Introduction to Lean Software Development Speed Quality Low Cost



Similar documents
Lean Software Development

What is meant by the term, Lean Software Development? November 2014

Continuous Delivery. Jez Humble, ThoughtWorks #continuousdelivery DevOpsDays, Hamburg

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

l e a n software development Where Adam Smith went wrong

agenda AGILE AT SCALE

Applying Lean on Agile Scrum Development Methodology

Lean Development A team approach to Software Application Development

An Introduction to Continuous Delivery

Scrum and CMMI Level 5: The Magic Potion for Code Warriors

Continuous Delivery. Martin Fowler, Jez Humble YOW! Brisbane, 5 December Wednesday, December 7, 11

How Product Management Must Change To Enable the Agile Enterprise

Continuous Delivery of Software

Scaling Agile with the Lessons of Lean Product Development Flow Copyright 2012 Net Objectives, Inc. All Rights Reserved

Executive Guide to SAFe 24 July An Executive s Guide to the Scaled Agile Framework.

Lean Software Development

From Agile by Design. Full book available for purchase here.

Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles

Agile Beyond The Team 1

Agile and lean methods for managing application development process

l e a n software development What Lean Brings to Agile

Course "Softwareprozesse" Agile Methods: Crystal, Scrum, Lean SD, Kanban,

Agile and lean methods for managing application development process

The Agile Manifesto is based on 12 principles:

A Viable Systems Engineering Approach. Presented by: Dick Carlson

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson Jyväskylä

Preface Agile Testing Review

Quality Assurance in an Agile Environment

Agile Software Development

Agile Project Management SD Best Practices Before We Start

GETTY IMAGES. 32 BETTER SOFTWARE JUNE

Creating a High Maturity Agile Implementation

Introduction to Agile and Scrum

The SaaS Scorecard : Updating the Balanced Scorecard for the SaaS World

Agile Testing. What Students Learn

Agile In a Nutshell. Note - all images removed to fit 2MB limit Actual presentation has much more content. Jonathan Rasmusson

Lean Agile Scrum Business Value Development and Delivery using Agility. Brenden McGlinchey Software Done Right, Inc.

Continuous Delivery. Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley

Agile Software Development Methodologies and Its Quality Assurance

Agile Requirements And Testing For Continuous Software Delivery

Thinking Tools for Agile Software Development Leaders. Lean Principles > Thinking Tools > Agile Practices

Lean and Agile in Safety-critical Software Development Research and Practice. Henrik Jonsson

DevOps. Happiest People Happiest Customers

Lean Software Development and Kanban

Mastering the Iteration: An Agile White Paper

Agile Scrum Workshop

AUTHOR: REVISION BY: ADS Lead/Manager ESYS Windows OSA

Agile development of safety-critical software while meetings standards' requirements

Scrum and CMMI Level 5: The Magic Potion for Code Warriors

LEAN AGILE POCKET GUIDE

Bridging the Gap Between Acceptance Criteria and Definition of Done

Testing in Scrum Projects

Software Engineering I (02161)

Agile Project Management

Agile Training and Certification Options. David Hicks

Lean Software Development

SAP Solution Brief SAP Technology SAP IT Infrastructure Management. Unify Infrastructure and Application Lifecycle Management

Introduction to Agile Software Development Process. Software Development Life Cycles

Managing Your Way to Success ensuring economic, effective, efficient quality best practice service (every time)

Mariusz Chrapko. Before: Software Quality Engineer/ Agile Coach, Motorola, Poland. My Public Profile:

Agile Project Management Mapping the PMBOK Guide to Agile Practices. Michele Sliger

Lean QA: The Agile Way. Chris Lawson, Quality Manager

Ten Critical Questions to Ask a Manufacturing ERP Vendor

MTAT Software Engineering

AGILE BUSINESS INTELLIGENCE

Extreme Programming, an agile software development process

Extreme Programming, an agile software development process

Continuous Delivery Workshop

From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem

Agile So)ware Development

VISUAL REQUIREMENTS MANAGEMENT WITH KANBAN. Mahesh Singh Co-founder/ Sr. VP Product, Digite, Inc.

What is Scrum? Scrum Roles. A lean approach to software development. A simple framework. A time-tested process

SECC Agile Foundation Certificate Examination Handbook

Getting Started with Agile Project Management Methods for Elearning

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

Why continuous delivery needs devops, and why devops needs infrastructure-as-code. Sriram 25-Oct-2012

Agile Power Tools. Author: Damon Poole, Chief Technology Officer

Governments information technology

Adopting Agile Approaches for the Enterprise

HP DevOps by Design. Your Readiness for Continuous Innovation Rony Van Hove/ April 2 nd, HP Software: Apps meet Ops 2015

Continuous???? Copyright 2015 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

An Agile Project Management Model

Use service virtualization to remove testing bottlenecks

ACCELERATE DEVOPS USING OPENSHIFT PAAS

Lean Software Development Cutting Fat Out of Your Diet

Agile Project Management

SCALING AGILE. minutes

How To Achieve Continuous Delivery

Scrum and CMMI Level 5: The Magic Potion for Code Warriors

Agile Software Engineering Practice to Improve Project Success

Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011

Test Automation: A Project Management Perspective

Agile Testing Overview

Serena Dimensions CM. Develop your enterprise applications collaboratively securely and efficiently SOLUTION BRIEF

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Introduction. Industries across the globe are burgeoning. Stiff

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

IT Management On Demand

Managing Software Debt. Continued Delivery of High Values as Systems Age

Transcription:

l e a n software development Introduction to Lean Software Development Speed Quality Low Cost mary@poppendieck.com Mary Poppendieck www.poppendieck.com Principles of Lean Software Development 1. Eliminate Waste Drive out Complexity 2. Focus on Learning Use Feedback-Driven Development 3. Build Quality In Mistake-Proof Every Step 4. Defer Commitment Build Change-Tolerant Code 5. Deliver Fast Don t Batch & Queue 6. Respect People Decide as Low as Possible 7. Optimize the Whole Appreciate the System 2 May 07 Copyright 2006 Poppendieck.LLC Quality Speed Low Cost 1

Put on Customer Glasses Principle 1: Eliminate Waste 3 May 07 Copyright 2006 Poppendieck.LLC The 80-20 Rule Features and Functions Used in a Typical System Often or Always Used: 20% Sometimes 16% Rarely 19% Often 13% Never 45% Always 7% Standish Group Study Reported at XP2002 by Jim Johnson, Chairman Rarely or Never Used: 64% 4 May 07 Copyright 2007 Poppendieck.LLC 2

Principle 2: Focus on Learning Software Development Finding ways to turn over more and more of what we know to computers so that we have more space left in our minds to discover more interesting things. I wonder what I should do next? Consider the Truck-Driving Problem: Program a computer to drive a truck across America unattended, on existing roads, in normal traffic. This is not a one-pass problem. It will be solved one module at a time over many years. Nor is it a software problem. Don t even think about the problem without the truck. In software development We try to solve too many truck driving problems All at once Without access to the truck! 5 May 07 Copyright 2007 Poppendieck.LLC Cycles of Discovery Iteration Planning Iteration Execution Daily Road Map: Prioritized list of desirable One Iteration Ahead Stories & Tests features 6 May 07 Copyright 2007 Poppendieck.LLC Every 2-4 Weeks Feedback Deployment - Ready Software 3

Cadence Benefits 1. Staged Delivery => better cash flow / higher profits. Minimum useful feature sets, highest payback first. 2. Feedback => closer fit to the real customer problem. IKIWISHI: I ll know it when I see it. 3. Velocity => story-points delivered each iteration. Velocity is a measure of the capacity of the team. Dangers 1. Irreversible decisions made too early can be expensive. Defer commitment / maintain options for critical decisions. 2. Lack of systems thinking can lead to sub-optimization. Design for operations and build change-tolerant code. 3. Do not use velocity as a performance measurement. Stable teams in a known domain establish a reliable velocity. 7 May 07 Copyright 2007 Poppendieck.LLC Principle 3: Build Quality In 1920 s: Invention: Looms that detect a broken warp thread when it breaks and stop immediately. 1950 s: Assembly lines where workers pull a cord to stop-the-line the moment a defect is detected. 8 May 07 Copyright 2007 Poppendieck.LLC 4

Don t Tolerate Defects There are Two Kinds of Inspection 1. Inspection to Find Defects WASTE 2. Inspection to Prevent Defects Essential The Role of QA The job of QA is not to swat mosquitoes, The job of QA is to put up screens. A Quality Process Builds Quality In If you routinely find defects during verification your process is defective. 9 May 07 Copyright 2007 Poppendieck.LLC Building Block Disciplines Simplicity Minimum Useful Feature Sets Common Infrastructure Architecture Conventions Tools Refactoring Continuous Improvement of the Code Base No Repetition Mistake-Proofing Configuration Management One Click Build Continuous Integration with Automated Testing Unit Tests Acceptance Tests Production Test Harnesses STOP if the tests don t pass Frequent Deployment Automated Release Packaging Automated Install 10 May 07 Copyright 2007 Poppendieck.LLC 5

Types of Testing Automated: Every Day From Brian Marick Automated: Every Build Support Programming Acceptance Tests Business Intent (Design of the Product) Unit Tests Developer Intent (Design of the Code) Business Facing Technology Facing 11 May 07 Copyright 2007 Poppendieck.LLC Usability Testing Exploratory Testing Property Testing Response, Security, Scaling, Resilience Critique Product Manual: As Early as Practical Tool-Based: As Early as Possible A Pilot from Innsbruck Principle 4: Defer Commitment In Pilot training, we were taught how to make decisions in challenging situations: 1. First decide when the decision will be made 2. Don t make the decision until that time: That is when you have the most information 3. Don t make the decision after that time: Because there are rocks in our clouds. 12 May 07 Copyright 2007 Poppendieck.LLC 6

Change-Tolerant Software Step One: Accept that Change is not the Enemy. 60-80% of all software is developed after first release. Step Two: Invest in Change-Tolerant Practices A development process that anticipates change will result in software that tolerates change. 1. Feedback-Driven Development 2. Options-Based Development 3. Test-Driven Development 13 May 07 Copyright 2007 Poppendieck.LLC Principle 5: Deliver Fast Software Development Product Development (Embedded Software) Software Development Competing on the basis of speed: Significant competitive advantage Large barrier to entry When speed matters You don t want to be left behind 14 May 07 Copyright 2006 Poppendieck.LLC 7

The Flow of Value Churn If you have requirements churn, you are specifying too early. If you have test-and-fix cycles, you are testing too late. Why do early specification and late testing seem like such a good idea? 15 May 07 Copyright 2006 Poppendieck.LLC Don t Batch & Queue Lists How long is your defect list? How far apart are your releases? How many weeks (years?) of work do you have in your backlog? Why do lists & queues seem like a good idea? 16 May 07 Copyright 2006 Poppendieck.LLC 8

Principle 6: Respect People Three Stonecutters were asked: What are you doing? I m cutting stones! I m building a cathedral. I m earning a living. 17 May 07 Copyright 2007 Poppendieck.LLC Move responsibility and decision-making to the lowest possible level. Engaged People Stone Cutters or Cathedral Builders? The Litmus Test: When workers are annoyed by their job Do they complain, ignore it, or fix it? 18 May 07 Copyright 2007 Poppendieck.LLC 9

Principle 7: Optimize the Whole Software is rather useless all by itself Software is embedded In hardware In a process In an activity Appreciate the System Build a complete product Not just Software Look at the whole picture Across the Value Stream For the Entire Lifecycle Software is going to be around for a LONG time. Dev Production Saving money in development at the expense of production makes no sense. 19 May 07 Copyright 2007 Poppendieck.LLC Measure UP Decomposition You get what you measure You can t measure everything Stuff falls between the cracks You add more measurements You get local sub-optimization Example Measure Cost, Schedule, & Scope Quality & Customer Satisfaction fall between the cracks Measure these too! Aggregation You get what you measure You can t measure everything Stuff falls between the cracks You measure UP one level You get global optimization Example Measure Cost, Schedule, & Scope Quality & Customer Satisfaction fall between the cracks Measure Business Case Realization instead! From to! From to! 20 May 07 Copyright 2007 Poppendieck.LLC 10

Three System Measurements Average Cycle Time From Product Concept To First Release or From Feature Request To Feature Deployment or From Defect To Patch The Business Case P&L or ROI or Goal of the Investment Customer Satisfaction A measure of sustainability 21 May 07 Copyright 2007 Poppendieck.LLC l e a n software development Thank You! More Information: www.poppendieck.com mary@poppendieck.com Mary Poppendieck www.poppendieck.com 11