fbpx
Project Management
Trending

Lean Software Development

What is Lean Software Development?

Lean Software Development is an Agile methodology that adapts the Lean practices and principles of the Toyota Production System to Agile work. The methodology is based on several basic beliefs:

  • Errors occur because of the system that people work in, not because of the people themselves; the system allowed errors to occur because it is flawed or incomplete
  • The people doing the work are closest to it, so they best understand how it can be improved
  • Trying to improve each individual step in the process is less important than improving the process as a whole; improving individual steps may actually impede other process steps
  • The most efficient teams are ones whose work is limited to their capacity
  • Successful systems limit the amount of time between idea generation and delivery to customers
  • Limiting inventories and the amount of work-in-process can improve team efficiency

In many ways, Agile is an application of Lean principles:

Lean principleAgile application
Have teams collaborate to optimize workCreate self-organizing teams
Implement practices “just-in-time”Wait until work is needed to analyze, design, and execute
Determine what customers valueCollect feedback in iteration reviews and incorporate adjustments into subsequent iterations
Deliver value to customers quicklyCreate products as increments and release them to customers as early as possible
Build quality into the systemDevelop generalists who can test for quality and implement test-driven development
Configure work into groups or cells that can complete all of the tasks needed to finish the work in “one-piece flow”Develop teams that agree on a definition of “done” and can produce increments that satisfy all selected requirements
Reduce error in the systemIncorporate feedback from iteration retrospectives to improve work
Minimize complexity and non-value-added work to increase the speed of delivery to customersPlan individual increments and iterations to address only the work immediately needed

Optimizing the Whole

In Lean Software Development, management and teams work together to “optimize the whole”—they focus on improving the work of the entire organization rather than focusing on improving the work of individual teams. They plan product releases to deliver value to customers and to deliver value to the business itself. They implement Lean practices across the organization, coordinating management, production, and delivery work to one goal—minimizing waste while increasing quality and the speed of delivery.

Value Stream Mapping

Agile methodologies are very good at encouraging agility in teams but, to be effective, practitioners need to look at an organization’s entire process—from product concept to customer delivery. Lean practices encourage this approach by developing value stream maps. Value stream maps are graphic representations of all of the work and work processes an organization completes to create and deliver products. It lists all of the process steps as well as the delays and non-value-added work that create waste in a system. By visualizing the system as a whole, teams can minimize cycle time and eliminate waste to improve the total time it takes to deliver value to customers.

Kanban

Kanban is a lean practice that focuses on the flow of work in projects. As teams complete increments, work is “pulled” from a work queue to begin new iterations. New work is added to the queue to fill empty spots. Kanban manages the work-in-progress during a project, and eliminates potential waste by limiting the need to estimate parts of a project that may not be attempted.

Kanban is briefly explained in the following video from bti360:

Lean Portfolio Management

Because Lean practices encourage practitioners to look at an organization as a whole, they are particularly useful in managing company portfolios. Lean portfolio management ensures that an organization has the right mix of products in production while correctly matching that production to the capabilities of its teams. It helps organizations allocate resources to the right projects or tasks at the right time, preventing the misallocation of resources to noncritical tasks and projects. It helps companies improve processes to ensure that projects work together to provide the most value to the organization. It looks at all of the organization’s product lines and ensures that all of its teams work effectively to produce high quality products that will have the greatest return on investment* for the company. Lean portfolio management isn’t about maximizing resources to their fullest extent; it’s about delivering value to customers and to the business.


Review Checkpoint

To test your understanding of the content presented in this assignment, please choose the correct answer

1. Which of the following statements is true?Choose only one answer below.

a. Errors are caused by the people in systems, not the systems themselves.

b. Improving the individual steps in a process will optimize the system as a whole.

c. Successful systems limit the time between the delivery of value and the generation of ideas.

Correct. Successful systems limit the time between idea generation and the delivery of value to customers.

d. The people doing work are too close to the work to be able to evaluate it properly.

2. Which of the following practices helps teams view end-to-end processes in an organization?Choose only one answer below.

a. Kanban

b. Value stream mapping

Correct. Value stream mapping provides a graphical representation of an organization’s entire process, from concept to delivery.

c. Lean portfolio management

d. Lean process evaluation

3. Lean portfolio management ________.Choose only one answer below.

a. helps organizations select the right products to produce

Correct. Lean portfolio management ensures that companies select the right products and helps teams improve the processes to produce those products.

b. ensures that organizations invest only in projects that result in positive cash flow

c. looks at projects to ensure that they work independently to improve business

d. ensures that organizations use their existing resources to their fullest extent

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button