background preloader

Lean software development

Lean software development
Lean software development (LSD) is a translation of lean manufacturing and lean IT principles and practices to the software development domain. Adapted from the Toyota Production System,[1] a pro-lean subculture is emerging from within the Agile community. Origin[edit] The term lean software development originated in a book by the same name, written by Mary Poppendieck and Tom Poppendieck.[2] The book presents the traditional lean principles in a modified form, as well as a set of 22 tools and compares the tools to agile practices. The Poppendiecks' involvement in the Agile software development community, including talks at several Agile conferences [3] has resulted in such concepts being more widely accepted within the Agile community. Lean principles[edit] Lean development can be summarized by seven principles, very close in concept to lean manufacturing principles: Eliminate waste[edit] In order to eliminate waste, one should be able to recognize it. Amplify learning[edit] See also[edit]

Related:  Methods

Scrum (software development) Scrum is an iterative and incremental agile software development methodology for managing product development. It defines "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal", challenges assumptions of the "traditional, sequential approach" to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines in the project. A key principle of scrum is its recognition that during production processes, the customers can change their minds about what they want and need (often called "requirements churn"), and that unpredicted challenges cannot be easily addressed in a traditional predictive or planned manner. Later, Schwaber with others founded the Scrum Alliance and created the Certified Scrum Master programs and its derivatives.

Agile software development Agile software development is a set of principles for software development in which requirements and solutions evolve through collaboration between self-organizing,[1] cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change.[2] Agile itself has never defined any specific methods to achieve this, but many have grown up as a result and have been recognized as being 'Agile'. The Manifesto for Agile Software Development,[3] also known as the Agile Manifesto, was first proclaimed in 2001, after "agile methodology" was originally introduced in the late 1980s and early 1990s.

Kanban (development) This article is about the process management and improvement method. For the lean manufacturing process, see Kanban. Kanban in the context of software development can mean a visual process management system that tells what to produce, when to produce it, and how much to produce inspired by the Toyota Production System[1] and Lean manufacturing.[2] The name 'Kanban' originates from Japanese[看板], and translates roughly as "signboard" or "billboard". It was formulated by David J. Anderson[3][4] as an approach to incremental, evolutionary process and systems change for organizations.

Kanban (development) This article is about the process management and improvement method. For the lean manufacturing process, see Kanban. Kanban is a method for managing knowledge work with an emphasis on just-in-time delivery while not overloading the team members. Unified Process The Unified Software Development Process or Unified Process is a popular iterative and incremental software development process framework. The best-known and extensively documented refinement of the Unified Process is the Rational Unified Process (RUP). Other examples are OpenUP and Agile Unified Process. Profile of a typical project showing the relative sizes of the four phases of the Unified Process.

Implementing Toyota’s Product Development System - The Open Door The core concept is to eliminate any activity or expense that doesn’t add value, from a customer’s perspective, to an end product. In Japanese this waste is called “muda.” The Toyota Product Development System seeks to eliminate muda, too, but it does so in a way many western development engineers may not have considered. Whether engineers in the United States or Europe are developing cars, software, appliances, or aerospace equipment, they usually follow pretty much the same process. They define several product concepts at the outset, and then select the one they think has the most promise. Design specifications are generated and partitioned into subsystems.

Matrix management Strictly speaking, matrix management is the practice of managing individuals with more than one reporting line (in a matrix organization structure), but it is also commonly used to describe managing cross functional, cross business group and other forms of working that cross the traditional vertical business units – often silos - of function and geography. What is it?[edit] It is a type of organizational structure in which people with similar skills are pooled for work assignments, resulting in more than one manager (sometimes referred to as solid line and dotted line reports, in reference to traditional business organization charts).

Lean integration Lean integration is a management system that emphasizes creating value for customers, continuous improvement, and eliminating waste as a sustainable data integration and system integration practice. Lean integration has parallels with other lean disciplines such as lean manufacturing, lean IT, and lean software development. It is a specialized collection of tools and techniques that address the unique challenges associated with seamlessly combining information and processes from systems that were independently developed, are based on incompatible data models, and remain independently managed, to achieve a cohesive holistic operation. History[edit]

Lean IT Lean IT is the extension of lean manufacturing and lean services principles to the development and management of information technology (IT) products and services. Its central concern, applied in the context of IT, is the elimination of waste, where waste is work that adds no value to a product or service.[1] Although lean principles are generally well established and have broad applicability, their extension from manufacturing to IT is only just emerging.[2] Indeed, Lean IT poses significant challenges for practitioners while raising the promise of no less significant benefits. And whereas Lean IT initiatives can be limited in scope and deliver results quickly, implementing Lean IT is a continuing and long-term process that may take years before lean principles become intrinsic to an organization’s culture.[3]

Single-Minute Exchange of Die History[edit] The concept arose in the late 1950s and early 1960s,[2] when Shigeo Shingo was consulting to a variety of companies including Toyota, and was contemplating their inability to eliminate bottlenecks at car body-molding presses. The bottlenecks were caused by long tool changeover times which drove up production lot sizes. The economic lot size is calculated from the ratio of actual production time and the 'change-over' time; which is the time taken to stop production of a product and start production of the same, or another, product. If change-over takes a long time then the lost production due to change-overs drives up the cost of the actual production itself. This can be seen from the table below where the change-over and processing time per unit are held constant whilst the lot size is changed.