• Save
Introduction to Lean Software Development
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Introduction to Lean Software Development

on

  • 1,807 views

 

Statistics

Views

Total Views
1,807
Views on SlideShare
1,778
Embed Views
29

Actions

Likes
4
Downloads
0
Comments
0

2 Embeds 29

http://www.linkedin.com 23
https://www.linkedin.com 6

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Eli Whitney is most famous as the inventor of the cotton gin ( cotton gin is a machine that quickly and easily separates the cotton fibers from the seeds). However, the gin was a minor accomplishment compared to his perfection of interchangeable parts. Whitney developed this about 1799 when he took a contract from the U.S. Army for the manufacture of 10,000 muskets at the unbelievably low price of $13.40 each.For the next 100 years manufacturers primarily concerned themselves with individual technologies. During this time our system of engineering drawings developed, modern machine tools were perfected and large scale processes such as the Bessemer process for making steel held the center of attention.Frederick W. Taylor began to look at individual workers and work methods. The result was Time Study and standardized work. Taylor was a  controversial figure. He called his ideas Scientific Management. The concept of applying science to management was sound but Taylor simply ignored the behavioral sciences. In addition, he had a peculiar attitude towards factory workers.Frank Gilbreth (Cheaper By The Dozen) added Motion Study and invented Process Charting. Process charts focused attention on all work elements including those non-value added elements which normally occur between the "official" elements. Lillian Gilbreth brought psychology into the mix by studying the motivations of workers and how attitudes affected the outcome of a process. There were, of course, many other contributors. These were the people who originated the idea of "eliminating waste", a key tenet of JIT and Lean Manufacturing.The Ford SystemAnd then, there was Henry Ford. Starting about 1910, Ford and his right-hand-man, Charles E. Sorensen, fashioned the first comprehensive Manufacturing Strategy. They took all the elements of a manufacturing system-- people, machines, tooling, and products-- and arranged them in a continuous system for manufacturing the Model T automobile. Ford was so incredibly successful he quickly became one of the world's richest men and put the world on wheels. Ford is considered by many to be the first practitioner of Just In Time and Lean Manufacturing.The Allied victory and the massive quantities of material behind it (see "A Bomber An Hour") caught the attention of Japanese industrialists. They studied American production methods with particular attention to Ford practices and the Statistical Quality Control practices of Ishikawa, Edwards Deming, and Joseph Juran.At Toyota Motor Company, TaichiiOhno and  Shigeo Shingo, began to incorporate Ford production  and other techniques into an approach called Toyota Production System orJust In Time . They recognized the central role of inventory.The Toyota people also recognized that the Ford system had contradictions and shortcomings, particularly with respect to employees. With General Douglas MacAurthur actively promoting labor unions in the occupation years, Ford's harsh attitudes and demeaning job structures were unworkable in post-war Japan. They were also unworkable in the American context, but that would not be evident for some years. America's "Greatest Generation" carried over attitudes from the Great Depression that made the system work in spite of its defects.Toyota soon discovered that factory workers had far more to contribute than just muscle power. This discovery probably originated in the  Quality Circle movement. Ishikawa, Deming, and Juran all made major contributions to the quality movement. It culminated in team development and cellular manufacturing.Another key discovery involved product variety. The Ford system was built around a single, never changing product. It did not cope well with multiple or new products. Shingo, at Ohno's suggestion, went to work on the setup and changeover problem. Reducing setups to minutes and seconds allowed small batches and an almost continuous flow like the original Ford concept. It introduced a flexibility that Henry Ford thought he did not need.All of this took place between about 1949 and 1975. To some extent it spread to other Japanese companies. When the productivity and quality gains became evident to the outside world, American executives traveled to Japan to study it. They brought back, mostly, the superficial aspects like kanban cards and quality circles.  Most early attempts to emulate Toyota failed because they were not integrated into a complete system and because few understood the underlying principles.World Class ManufacturingBy the 1980's some American manufacturers, such as Omark Industries, General Electric and Kawasaki (Lincoln,Nebraska) were achieving success. Consultants took up the campaign and acronyms sprouted like weeds: World Class Manufacturing (WCM), Stockless Production, Continuous Flow Manufacturing (CFM), and many other names all referred to systems that were, essentially, Toyota Production. Gradually, a knowledge and experience base developed and success stories became more frequent. Lean ManufacturingIn 1990 James Womack wrote a book called "The Machine That Changed The World". Womack's book was a straightforward account of the history of automobile manufacturing combined with a study of Japanese, American, and European automotive assembly plants. What was new was a phrase-- "Lean Manufacturing."Lean Manufacturing caught the imagination of manufacturing people in many countries. Lean implementations are now commonplace. The knowledge and experience base is expanding rapidly.The essential elements of Lean Manufacturing are described at our page "Principles of Lean Manufacturing." They do not substantially differ from the techniques developed by Ohno, Shingo and the people at Toyota. The application in any specific factory does change. Just as many firms copied Ford techniques in slavish and unthinking ways, many firms copy Toyota's techniques in slavish and unthinking ways and with poor results. Our series of articles on implementation includes a "Mental Model" to assist the thinking process and guidance on strategy and planning.There is no cookbook for manufacturing. Each firm has its own unique set of products, processes, people, and history. While certain principles may be immutable, their application is not. Manufacturing Strategy will always be a difficult, uncertain, and individual process. Strategy ("The General's Art") is still, largely, an art. But, that should not prevent us from bringing the available science to bear on the problem.
  • Requirements that will never be implementedUnnecessary documentationOvercomplicated functionalityOvercomplicated designManaging defect queues Polishing estimations
  • Cannot avoid it sometimes due to specialized expertise. Need to recognize it and work on reducing a need for sharing resources.
  • Share partially complete design informationUse modulesUse interfaces, parameters, abstractionsSeparate concernsEncapsulate variationsDefer implementation of future capabilities Avoid extra features
  • This equation gives us a clear idea of how to do that. One way to decrease cycle time is get things done faster increase the average completion rate. This usually means spending more money. If we don't have extra money to spend, the other way to reduce cycle time is to reduce the number of things in process. This takes a lot of intellectual fortitude, but it usually doesn't require much money.[5]Variation and UtilizationLittle's Law applies to stable systems, but there are a couple of things that make systems unstable. First there is variation stuff happens. Variation is often dealt with by reducing the size of batches moving through the system. For example, many stores have check-out lanes for "10 items or less" to reduce the variation in checkout time for that line. Let's say you have some code to integrate into a system. If it's six weeks' worth of work, you can be sure there will be a lot of problems. But if it's only 60 minutes of work, the amount of stuff that can go wrong is limited. If you have large projects, schedule variation will be enormous. Small projects will exhibit considerably less schedule variation.Decreasing variability earlier in the process has larger impact than decreasing variability late in the process
  • Google 80% utilizationHigh utilization is another thing that makes systems unstable. This is obvious to anyone who has ever been caught in a traffic jam. Once the utilization of the road goes above about 80 percent, the speed of the traffic starts to slow down. Add a few more cars and pretty soon you are moving at a crawl. When operations managers see their servers running at 80 percent capacity at peak times, they know that response time is beginning to suffer, and they quickly get more servers.
  • Another way to minimize inventory
  • Zara keeps its capacity not fully loaded to be able to change product line every two weeks

Introduction to Lean Software Development Presentation Transcript

  • 1. Introduction to Lean Software Development
    Michael Vax
    pragmatic dreamer
    michael.vax@gmail.com
  • 2. Origins of Lean
    James Womack
    Source: http://www.strategosinc.com/
  • 3. Lean Principles in Software Development
    Eliminate Waste
    Build Quality In
    Learn Before Commitment
    Deliver Fast
    Empower Team
    See the Whole
    Mary Poppendieck
  • 4. Eliminate Waste
    Definition of waste:
    Any effort or process that does not add value to a product.
  • 5. Project Switching
    Productivity drops as team members project switch
    Copyright Ken Schwaber5
  • 6. Value Stream Maps
    Copyright © Poppendieck.LLC
  • 7. Inventory
    Inventory in s/w is a partially done work:
    Unimplemented requirements
    Unsynchronized code
    Untested code
    Undocumented code
    Undeployed code
    It is expensive to manage inventory and
    Software Inventory contains perishable goods
  • 8. Build Quality In
    • Quality Control vs. Build In Quality
    • 9. Stop the line mentality
    Cost of Bad Quality
    Cost more to add functionality
    Support cost skyrocket
    Free services giveaways
    Unhappy customers
    Long release cycle
    Missed release dates
    Wasted time on managing defect queues
    Bad morale
    Buggy product is a liability not an asset
  • 10. 1
    Predictable
    Release Time
    3
    New Functionality
    2
    Difficult to modify code,
    New bugs are introduced
    3
    No visible progress
    can be achieved
    1
    2
    Time
    Poor Quality Costs Money
    Burndown Chart … the velocity of turning requirements into potentially shippable increments of functionality.
    The core functionality line shows the impact of continued poor quality practices from the era of opacity. Although poor quality may be necessary at the start of a company, it is not a sustainable practice.
  • 11. Optimize regression testing
  • 12. Learn Before Commitment
    Development Project
    Knowledge
    Start
    End
    Time
    Decisions
    Time
    • The last responsible moment
    • 13. Delaying irreversible decision until uncertainty is reduced has economic value
    • 14. Option is a right but not the obligation to do something in the future
  • Deliver Fast
    The best measurement of s/w development process capability is the Average Cycle Time
    Reducing cycle time:
    Minimize the Number and Size of Things in Process
    Limit Work to Capacity by using a Pull Schedule approach
    Optimize regression testing and deployment
  • 15. Queuing Theory
    Measured in cycle time
    Steady rate of arrival
    Steady rate of service
    Slack
    Copyright © Poppendieck.LLC
  • 16. Phantom of 100% Utilization
    100%
    In a complex unpredictable environment 100% utilization decreases throughput as there are no resources to react to unexpected events
  • 17. Minimize the Number and Size of Things in Process
    A.
    $$$$$
    B.
    $$$
    C.
    $$$$
  • 18. Pull Schedule
    Team takes (pull) features from prioritized backlog
    Allows for quick response in case of emergencies
    Empowers the team and frees a lot of management time
  • 19. Empower Team
    In software development, the most valuable assets are the people involvedEngaged, thinking people provide the most sustainable competitive advantage.
    Teams Thrive on Pride, Commitment, Trust, and ApplauseWhat makes a team? Members are mutually committed to achieve a common goal.
    Provide Effective LeadershipEffective teams have effective leaders who bring out the best in the team.
  • 20. Managers vs. Leaders
  • 21. Self-Organizing Teams
    Self-organization does not mean that workers instead of managers engineer an organization design. It does not mean letting people do whatever they want to do. It means that management commits to guiding the evolution of behaviors that emerge from the interaction of independent agents instead of specifying in advance what effective behavior is.
    ~Philip Anderson, The Biology of Business
    Although project teams are largely on their own, they are not uncontrolled. Management establishes enough checkpoints to prevent instability, ambiguity, and tension from turning into chaos. At the same time, management avoids the kind of rigid control that impairs creativity and spontaneity.
    ~Takeuchi & Nonaka
  • 22. Optimize the Whole
    The overall capacity of the system should be balanced against the capacity of the bottleneck
  • 23. Misbalanced Flow
    Requirements
    Development
    Architecture
    CTO
    Director of
    Product management
    Architectural
    Council
    VP of Development
    (Dev, QA, RE)
  • 24. Cost Accounting
    Cost accounting was created to accurately manage men and machines used in assembly lines
    Main goal is to reduce cost
    Assumes that local efficiency leads to global efficiency
    Cost of labor is treated as a variable cost
    Assembly line workers were easily replaceable. Not true for software
  • 25. Throughput Accounting
    Net Profit = Throughput – Operating Expenses
    Throughput Accounting measures how effectively the system moves the investment value through the system and converts it to the Throughput
  • 26. Want to Learn More?
    http://www.poppendieck.com/
    michael.vax@gmail.com
    778-668-9134