l e a n software development Where Adam Smith went wrong



Similar documents
l e a n software development What Lean Brings to Agile

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

Software Process for QA

The Basics of Robot Mazes Teacher Notes

(Refer Slide Time: 01:52)

Lean Software Development and Kanban

Lean Software Development

Agile Software Development

Lean Development A team approach to Software Application Development

Power Tools for Pivotal Tracker

MTAT Software Engineering

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

VLAN 802.1Q. 1. VLAN Overview. 1. VLAN Overview. 2. VLAN Trunk. 3. Why use VLANs? 4. LAN to LAN communication. 5. Management port

Book 3 Cost Estimating in an Agile Development Environment. (early release)

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

Misconceived. Misdirected. Mismanaged. Why too many companies miss the real value of Lean. A paper by Mark Hughes & Jonathan Gray, Vice Presidents

Solution Spotlight KEY OPPORTUNITIES AND PITFALLS ON THE ROAD TO CONTINUOUS DELIVERY

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

Principles of Lean Thinking

Introduction to Agile and Scrum

The Agile Manifesto is based on 12 principles:

Lean Principles by Jerry Kilpatrick

Misunderstandings About Value-Stream Mapping, Flow Analysis, and Takt Time

Central problem in economics: how to chose among competing alternatives given the limited resources of decision-makers

Pragmatic Version Control

The 10 Most Important Ideas in Software Development

The Agile Business Analyst: Eyes for Waste By Ellen Gottesdiener Copyright EBG Consulting, Inc., 2009 EBG Consulting, Inc.:

SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island

Agile Models. Software Engineering Marco Scotto Software Engineering

Kanban kick- start. By Tomas Björkholm at Crisp, April 2011

Lean Work Cell Design:

Lean Metrics How to measure and improve the flow of work. Chris Hefley, CEO of LeanKit. November 5 th, 2014

Improving NPI Effectiveness using Lean Thinking. Webinar 6 th October 2015

Learning to see True Cost

Developing a Formidable Business / Continuous Improvement Methodology in Africa. By: Frederick O Popoola

Lean Software Development

How we work. Digital Natives working methods

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

Link Layer. 5.6 Hubs and switches 5.7 PPP 5.8 Link Virtualization: ATM and MPLS

LEAN SOFTWARE DEVELOPMENT ( As a Survival Tool in Recession )

Session 4-Lean Tools- 5S, Kanban, VSM, SMED, TPM

Lecture 21 March 7, 2013

Appendix Lean Glossary Page 1

Mastering the Iteration: An Agile White Paper

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

Lean and Kanban at Scale Extending Kanban across the portfolio, program and team levels. Al Shalloway, Net Objectives. September 4 th, 2014

GETTING ACQUAINTED (Ice-breaker Games)

agenda AGILE AT SCALE

Waterloo Agile Lean P2P Group

Introduction. Industries across the globe are burgeoning. Stiff

Why Agile Works: Economics, Psychology, and #PrDC16

Chapter 10. Becoming an Agile Enterprise

Leading Continuous Improvement in Established Agile Organizations

Lean Software Development

Agile and lean methods for managing application development process

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

The Importance of Continuous Integration for Quality Assurance Teams

No one has to change. Survival is optional. - W. Edwards Deming - Continue your Beyond Budgeting Journey with help from Agile, Lean and Scrum

Transcript of Socket Mobile, Inc. Second Quarter 2015 Management Conference Call July 29, 2015

Automated Acceptance Testing of High Capacity Network Gateway

Going Lean the ERP Way

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

ISTQB Certified Tester. Foundation Level. Sample Exam 1

architecture: what the pieces are and how they fit together names and addresses: what's your name and number?

Connecting Assembly with Batch Processes Via Basic Pull Systems

WHY THE WATERFALL MODEL DOESN T WORK

Upping the game. Improving your software development process

Test Driven Development Part III: Continuous Integration Venkat Subramaniam

Teaching lean thinking through game: some challenges

Software Engineering I (02161)

Nova Software Quality Assurance Process

Continuous Integration Optimizing Your Release Management Process

LEAN 101 CRASH COURSE. Presented by Jacob McKenna and Seaver Woolfok

Getting Started with Kanban Paul Klipp

Lean manufacturing in the age of the Industrial Internet

Achieving Basic Stability By Art Smalley

The 10 Best Ideas in Software Development

AN INDUSTRIAL APPLICATION OF THE SMED METHODOLOGY AND OTHER LEAN PRODUCTION TOOLS

FREQUENTLY ASKED QUESTIONS

Take a Step Activity Illustrating Disadvantages and Factors Leading to Poverty

Agile and lean methods for managing application development process

times, lower costs, improved quality, and increased customer satisfaction. ABSTRACT

Applying Lean on Agile Scrum Development Methodology

Getting Started with Lean Process Management

RISK MANAGMENT ON AN AGILE PROJECT

Modern practices TIE-21100/

J-Curve effect, 38, JIT. See Just-in-Time Inventory Just Enough Design Initially (JEDI), 6, 283

Foundations for Systems Development

5 Ways Simulation Can Drive your Lean Projects

Strategic View on Various Sub-paradigms of Agile Methodology and Sig Sigma Approach

Continuous Integration (CI) for Mobile Applications

Creating Continuous Flow

Agile Testing Overview

How large and small manufacturers are benefiting from Lean Manufacturing and Robotic Automation

Introduction to Software Engineering. 9. Project Management

What Is Specific in Load Testing?

Continuous Integration Using Cruise Control

Chapter 11. Lean synchronization

Transcription:

software development Specialization & the Economies of Scale Where Adam Smith went wrong mary@poppendieck.com Mary Poppendieck www.poppendieck.com

The Pursuit of Simplicity The Question: How do we deal with Complexity? The Answer: Divide id and Conquer! The Real Question: Along what Lines do we Divide? 2 April 09 Copyright 2008 Poppendieck.LLC

Specialization The Pin Factory Adam Smith (1776) One man draws out the wire, another straights it, a third cuts it, a fourth points it, a fifth grinds it at the top for receiving the head; to make the head requires two or three distinct operations; to put it on, is a peculiar business, to whiten l the pins e is another; it is even a n trade by itself to put them into the paper; and the important business of making a pin is, in this manner, divided into about eighteen distinct operations. 3 April 09 Copyright 2008 Poppendieck.LLC

The Ultimate Pin Factory Ford River Rough citra1930 You can have any color you want, as long as it s black. 4 April 09 Copyright 2008 Poppendieck.LLC

The Enemy: Variety A Car for Every Purse and Purpose 5 April 09 Copyright 2008 Poppendieck.LLC

What s wrong with Variety? 1. The Cost of Changeover Batch & Queue 2. The Cost of Delay Cash hflow Obsolescence 3. The Cost of Mistakes Hidden Defects 4. The Cost of Motion Moving, tracking, storing 5. The Cost Complexity Scheduling Learning 6 April 09 Copyright 2008 Poppendieck.LLC Little s Law Time Through the System = Number of Things in Process Average Completion Rate

The Work Cell: Divide by Part, not Process Aircraft Sidewall Fastener Before: $25-$30 After: $2.5 - $3 Deburr Stamp Extrusion Machining Paint Cle ean l e Assemble a n Deburr Assemble Design Techniques for Meeting Market Driven Target Costs Benny Leppert, Lean Design & Development, Chicago, 2005 7 April 09 Copyright 2005 Poppendieck.LLC

Dealing with Complexity in Software Engineering 1968: Quality by Construction Edsger Dijkstra [Structured Programming] Those who want really reliable software will discover that they must find means of avoiding the majority of bugs to start with, and as a result the programming process will become cheaper. If you want more effective programmers, you will discover that they should not waste their time debugging they should not introduce bugs to start with. 1972: Step-Wise Integration Harlan Mills [Top-Down Programming] My principle i criterion i for judging whether top down programming was actually used is [the] absence of any difficulty at integration. Divide by Hierarchy / Order of Execution 8 April 09 Copyright 2008 Poppendieck.LLC

Dealing with Complexity An Orthogonal View 1972: Information o Hiding Dave Parnas [Criteria for Decomposition] Divide program into modules based on their responsibility and the likeliness of future change, rather than structure, hierarchy, or order of flow. 1974: Internet Protocol Vinton Cerf and Robert Kahn [TCP/IP] Each distinct network stands on its own, no internal changes required. No information retained by the gateways and routers. No global control at the operations level. Communications on a best-effort basis. Divide by Matching the Domain Commonality & Variability Analysis 9 April 09 Copyright 2008 Poppendieck.LLC

Case Study: Complexity at Scale Amazon.com It s all about scale. 2000 Hit the wall 2001 Started transition to services Encapsulate data and business logic Basic Services and Consolidator Services Each Owned by a 2PT with end-to-end responsibility Amazon CTO Werner Vogels If you need to do something under high load with failures occurring and you need to reach agreement you re lost. Conway s Law Organizations which hdesign systems are constrained l e dto produce a designs n which are copies of the communication structures of these organizations. 10 April 09 Copyright 2008 Poppendieck.LLC

Dealing with Complexity The Specialization View The Problem The Solution 1976: Software Engineering Barry Boehm IEEE Transactions on Computers 11 April 09 Copyright 2008 Poppendieck.LLC

What s wrong with Manufacturing Specialization? 1. The Cost of Changeover Batch & Queue 2. The Cost of Delay Cash Flow Obsolescence 3. The Cost of Mistakes Hidden Defects 4. The Cost of Motion Moving, tracking, storing 5. The Cost Complexity Scheduling Learning 12 April 09 Copyright 2008 Poppendieck.LLC Software Development 1. The Cost of Integration Wait to Test 2. The Cost of Delay Cash Flow Obsolescence 3. The Cost of Mistakes Hidden Defects 4. The Cost of Task Switching Thrashing 5. The Cost Complexity Learning Scheduling

Case Study: Reducing Complexity with Iterations ti and Feedback WebSphere Service Registry and Repository 10 month deadline didn t know the details Solution: Customer feedback every iteration Early Access Program Customers download new version each month Customers feedback on discussion forum Direct developer-customer interactioni Changed course midstream Customer feedback beat marketing input New Features Phenomenal sales the first day of release Customers knew what they would get Support Calls down by an order of magnitude Mental model of customers and developers matched 13 April 09 Copyright 2008 Poppendieck.LLC Developer Current Design Intent Comparison Current System Capability Customer Current Business Needs System Under Development

Case Study: Reducing Complexity with Early Testing Helen s Story 1. Carlos With Agile, you don t need to worry about documentation, right? 2. Rene Our criteria for done was not defined well enough. Technical debt grew badly. 3. Charlie We tried again and this time the results were awesome! Lesson Give your teams the right support means giving them the freedom to innovate, but also give them the tools and training they need to be successful. Charlie s Story I went to your class, and I told myself you were nuts. Jeff developed a test strategy and set of tools that allows us to run over 1500 test cases every night on 10 environments, something that used to take days. By morning every bit of code that was written the day before has run against all possible databases and operating systems. We wrote separate functional test suites. You can run any test suite quickly with no interdependence. We build every two l hours. We e wrote plug-ins a for the development environment so tests can be run from any sandbox. n We are in great shape 2 orders of magnitude of defects going into hardening. 14 Copyright 2008 Poppendieck.LLC

Batch Size What is Batch Size? The amount of information transferred at one time The % of specifications completed before development begins The amount of code tested in a system test Compare: Cost of setup (linear) Test set-up and execution Cost of waiting (hyperbolic) Find/fix defects long after injection Waiting costs are: Usually hidden & delayed Often larger than expected The Lean Approach: Recognize true waiting costs Drive down setup overhead 15 April 09 Copyright 2007 Poppendieck.LLC Cost Batch Size From Don Reinertsen www.roundtable.com/mrtindex/leanpd/ ART-reinertsen-INT2-1.html

Single Digit Set-up Manufacturing Common Knowledge: Die changed have a huge overhead Don t change dies very often Taiichi Ohno: Economics requires frequent die change One Digit Exchange of Die Software Development Common Knowledge: Releases have a huge overhead Lean: 16 March, 2003 Copyrignt 2003 Poppendieck.LLC Don t release very often Economics l requires e many frequent a releases n One Digit Releases

How Good are You? When in your release cycle do you try to freeze code and test the system? What percent of the release cycle remains for this hardening? Typical: 30% Top Companies: <10% 17 April 09 Copyright 2008 Poppendieck.LLC Sometimes: 50% Release Cycle

Our Policies Continue to Promote Specialization & the Economies of Scale 1. Full utilization of our most skilled workers is considered essential, so we sort work into batches and assign each batch to the appropriate specialist, making maximum use of their time and skills. 2. It is so difficult to abandon batch and queue mentality that t we fail to see queues that are staring at us in the face. We are blind to lists of customer requests that would take years to clear. 3. We pull workers off of their current job to rush a yetmore-important job through our system. We ask people to work on three, five, ten or more things at once. 4. We use computer systems to make sure that everyone is busy all of the time. We schedule work and assign teams with an eye to full utilization. 5. We create annual budgets or long project plans that justify every person by committing to what they will deliver. 18 April 09 Copyright 2008 Poppendieck.LLC

The Utilization Paradox Cycle Time as a Function of Utilization and Batch Size* 45 Cycle Tim me (hours) 40 35 30 25 20 15 10 Large Batches Medium Batches Small Batches 5 0 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% High Performance *This assumes batch size is proportional to variability. 19 April 09 Copyright 2007 Poppendieck.LLC l Thrashing e a hi n

Economies of Scale: The Empire State Building September 22, 1929 Demolition started January 22, 1930 Excavation started March 17, 1930 Construction started November 13, 1930 Exterior completed May 1, 1931 Building opened Exactly on time 18% under budget One Year Earlier: How did they do it? The key: Focus on FLOW. 20 April 09 Copyright 2008 Poppendieck.LLC

Steel Schedule We thought of the work as if it were a band marching through the building and out the top. From: Building the Empire State Builders Notebook: Edited by Carol Willis 21 April 09 Copyright 2007 Poppendieck.LLC

The Four Pacemakers 1. Structural Steel Construction Completed September 22, 12 days early 2. Concrete Floor Construction Completed October 22, 6 days early 3. Exterior Metal Trim &Windows Completed October 17, 35 days early 4. Exterior Limestone Completed November 13, 17 days early From: Building the Empire State Builders Notebook: Edited by Carol Willis 22 April 09 Copyright 2007 Poppendieck.LLC

Schedule the Constraint What is the constraint? Information about the problem to be solved? Understanding the best solution to the problem? Available Developers? Available Equipment? What is the constraint in YOUR domain? Use a pacemaker schedule for the constraint. 23 April 09 Copyright 2007 Poppendieck.LLC

Iterative Development Iteration Planning Iteration Execution Daily Stories & Tests Road Map: Prioritized list of desirable One Iteration Ahead Ready Ready features 24 April 09 Copyright 2008 Poppendieck.LLC Every 2-4 Weeks Deployment -Ready Software l e Done Done a D n Feedback

software development Thank You! More Information: www.poppendieck.com mary@poppendieck.com Mary Poppendieck www.poppendieck.com