210 likes | 581 Views
Introduction To Lean Software Development And Value Stream Mapping. Mikko Korkala VTT Technical Research Centre of Finland mikko.korkala@vtt.fi. Contents of the presentation. Introduction to Lean Software Development Origins of Lean Software Development
E N D
Introduction To Lean Software Development And Value Stream Mapping Mikko KorkalaVTT Technical Research Centre of Finland mikko.korkala@vtt.fi
Contents of the presentation • Introduction to Lean Software Development • Origins of Lean Software Development • Principles of Lean Management and Lean Software Development • Comparison of Lean and Agile Principles • The concept of waste • The Seven Wastes of Software Development • Value Stream Mapping • The purpose of Value Stream Mapping • How Value Stream Maps are done • An example of a Value Stream Mapping • Suggested readings
Origins of Lean Software Development • Originates from Toyota Production System (TPS) • Called also Kanban or Just-In-Time system • Post WWII Japanese automobile industry could not compete with U.S. mass production systems • Inspiration for TPS found in the 1950’s from U.S. supermarkets • Customers could get what they wanted, when they wanted it and shelves were refilled when items were about to run out. • The concepts transferred to the domain of software engineering by Mary and Tom Poppendieck (2003, 2007).
Lean Management Principles(Liker 2004) • Base your management decisions on a long-term philosophy, even at the expense of short-term financial goals. • Create continuous process flow to bring problems to the surface. • Use “pull” systems to avoid overproduction. • Level out the workload. • Build a culture of stopping to fix problems to get quality right the first time. • Standardized tasks are the foundation for continuous improvement and employee empowerment. • Use visual control so no problems are hidden. • Use only reliable, thoroughly tested technology that serves your people and processes. • Grow leaders who thoroughly understand the work, live the philosophy and teach it to others. • Develop exceptional people and teams who follow your company’s philosophy. • Respect your extended network of partners and suppliers by challenging them and helping them improve. • Go and see for yourself to thoroughly understand the situation. • Make decisions slowly by consensus, thoroughly considering all options; implement decisions rapidly. • Become a learning organization through relentless reflection and continuous improvement.
The Principles of Lean Software Development (Poppendieck & Poppendieck, 2007.) • Eliminate waste Waste is something that does not add value. For example unnecessary work. • Build quality in QA should not be a separate phase at the end of the project. Instead, it should be continuous and something that is constantly improved. Automatization and refactoring as tools. • Create knowledge Share information, teach others. • Defer commitment Make decisions at the ”last responsible moment”. • Deliver fast Deliver smaller increments of the product in short intervals • Respect people Respect colleagues, let people decide what and how to do it in order to meet goals • Optimize the whole Optimize the whole value chain from customer request to complete product. See the whole.
Comparison Of Lean and Agile Principles • Eliminate waste • Simplicity is essential • Satisfy customer through early and continuous delivery • Working software is the primary measure of progress • Build quality in • Working software is the primary measure of progress • Create knowledge • Regular reflection • Close collaboration • Defer commitment • Welcome changes • Deliver fast • Deliver fast and frequently • Satisfy customer through early and continuous delivery • Respect people • Self-Organizing Teams • Optimize the whole • All agile principles
The Lean Manifesto? • Itsekussakin työssä ja toimessa tulee ennenkaikkea kysyä, mikä arvo ja hyödytys niillä on; sillä työ, millä ei hyödytystä ole, on parempi tekemätönnä, kun tehtynä. (Elias Lönnrot, in the city of Kajaani, Finland. October 23, 1841)
The Lean Manifesto? • Considering what ever work or action one should above all ask, what is the benefit and value of it; because work that does not benefit is better left undone
Waste in Software Development • Something that does not create value • Two categories of waste (Muda in Japanese) • Type One muda: something that does not create customer value but cannot be removed from the current production environment • Type Two muda:non-value adding activities that can be eliminated immediately. • Value Stream Mapping is a method for identifying and eliminating waste The definitions of muda are from: J. P. Womack and D. T. Jones, Lean Thinking: Banish Waste and Create Wealth in Your Corporation. New York, NY, USA: Simon & Schuster, 1996, pp. 350.
The Seven Wastes of Software Development • Partially done work. Something that is not done. E.g. untested code, undocumented or not maintained code. • Extra features. Something that is not really needed. • Relearning (waste of knowledge). E.g. forgetting decisions, re-trying solutions already tried, the inability to utilize the knowledge of other people. • Handoffs. Passing the information/work to someone else, getting information/work from someone else. • Task switching. How many other tasks people need to do. E.g. the amount of projects done simultaneously. • Delays. Waiting for something. • Defects. Something that does not meet the targets, or is not what it is supposed to be. E.g. software bugs, incorrectly implemented business requirements. Poppendieck & Poppendieck, 2007. Implementing Lean Software Development: From Concept to Cash. Addison-Wesley.
Value Stream Mapping • Aims to map and visualize each individual step e.g. in product development from customer request to completed product. • The target is to identify the steps and actions that create customer value and the steps and actions that can be considered as waste. • Concrete actions for removing the type two waste are planned. • Even though the focus is on ”optimizing the whole”, Value Stream Mapping can be applied to smaller processes as well.
Value Stream Mapping Process • Three general steps (Abdulmalek and Rajkopal): • Choose a particular product or product family as the target for improvement. • Draw a current state map of the process. This can be seen as a snapshot of how things are currently being done and is created by “walking along” the process. This provides the basis for analyzing the system and identifying its weaknesses. • Create a future state map. This is a picture that depicts how the system should look like when wastes have been removed. • The weaknesses of the process can be further elaborated for example by applying the technique of “Five Why’s” which aims to identify the root-cause behind the weaknesses. • Value Stream Mapping is not a process conducted just once. Follow the continuous improvement philosophy of Lean (Kaizen). F. A. Abdulmalek and J. Rajgopal. Analyzing the benefits of lean manufacturing and value stream mapping via simulation: A process sector case study. Int. J. Production Economics 107(1), 2007.pp. 223-236.
An Example of Value Stream Mapping Inspired By A Real Life Experience From Software Industry • Large software intensive company using an agile process. • Group of people responsible for gathering and managing software requirements before they entered development stage. • Their work was selected as the the process to be analyzed and improved.
Examples of Wastes and Improvement Suggestions • Entering requirements to the system • Partially done work • Incomplete requirements • Improvement • Guidelines for preparing the requirements and entering the requirements to the system • Prioritization • Delay • Waiting for someone to do the prioritization. • Improvement • The need for people is to be planned more accurately beforehand • Process steps consuming time • Management acceptance • Type One muda
Experiences From Value Stream Mapping Process • It makes one really think how things are done, what could be improved and how. • Provides a more clear picture of the work process. • Achieving concensus on how things are done and for how long something takes is not straightforward. There are different views to the work process, even though a documented process exists.
Suggested Readings • Ohno, T., 1988. Toyota Production System: Beyond Large-Scale Production. Productivity Press. • Womack, J.P and Jones, D.T. Lean Thinking: Banish Waste and Create Wealth in Your Corporation. New York, NY, USA: Simon & Schuster, 1996. • Liker, J.K., “The Toyota Way. 14 Management Principles from the World’s Greatest Manufacturer”, McGraw-Hill, New York, USA. 2004. 330 p. • Poppendieck, M. and Poppendieck, T., 2003. Lean Software Development: An Agile Toolkit. Addison-Wesley, Upper Saddle River, NJ, USA. • Poppendieck, M and Poppendieck, T., 2007. Implementing Lean Software Development: From Concept to Cash. Addison-Wesley.
Thank You! • Questions and comments, please!