Courses

Lean Software Development for Management

The software industry is looking for ways to create quality code in an effective, efficient manner that is rapid, repeatable and reliable. Attempts such as CMMI and Agile methods have found some success but also seem to have some inherent drawbacks.

Of the many methods that have arisen to improve software development, Lean Software Development is emerging as one that is grounded in decades of work understanding how to make processes better. Lean thinking focuses on delivering value to both your business and customers while improving your processes and eliminating waste.

The varied background and history of Lean makes it very valuable to practitioners. However, the varied perspectives available from which to look at Lean sometimes makes it a challenge to learn how to apply it. Understanding Lean in the software arena requires an integration of four prominent perspectives. These create a consistent, comprehensive view of how Lean can be applied to software development. These perspectives are:

  • Lean Manufacturing from Toyota (from Taiichi Ohno of Toyota)
  • Lean Thinking (from Womack and Jones’ work)
  • Lean Software Development (from Mary and Tom Poppendieck)
  • Lean Product Development System (from Toyota, as described by Michael Kennedy)

This course centers on an integration of Lean Thinking and Lean Software development and describes how to create a fast, flexible flow of customer value-add. Principles of Lean that facilitate this are:

  • Eliminate Waste
  • Create Knowledge
  • Respect People
  • Build Quality In
  • Defer Commitment
  • Deliver Fast
  • Optimize the Whole

The course presents an overview of how to manifest these principles within the context of software development as product development. This is one of the distinctions of Lean-Agile over just Agile. Agile Project Management focuses on managing a single project and perhaps coordinating several projects together. However, true software development should be focused on the products these projects relate to. Selecting products, scheduling projects for the products, balancing product loads, are business perspectives that Lean addresses while Agile methods do not.

Some topics that are particular to Lean are:

  • Value stream maps
  • Utilization theory
  • Think products, not projects
  • Using QA to improve process
  • A focus on people and process – how to use process as a baseline for change
  • Work cells and how they can improve a process
  • How focusing on time can eliminate waste and improve value

Objectives

  • To create a new paradigm of software development that integrates people and process
  • To enable participants to see the cost of poor quality in the software development cycle
  • To improve the awareness of the importance of fast-flexible flow
  • To underscore the importance of using process as a baseline for change.

Course Length

1 day

Course Level

Intermediate

Course Outline

  • Delivering value quickly
  • Fast-Flexible Flow
    • Value
    • Value Stream
    • Flow
    • Pull
    • Perfection
  • The Current Value Stream exercise
  • Principles of Lean Software Development
    • Eliminate Waste
    • Amplify Learning
    • Delay Commitment
    • Deliver Fast
    • Build Integrity In
    • Empower the Team
    • See the Whole
  • Key metrics
  • Products Vs. Products
  • Summary

Who is this course for

  • Primary: Managers, team leaders, architects, business analysts, product managers, project managers
  • Secondary: Any member of the development team

Prerequisites

  • Required: none
  • Highly Recommended: none
  • Recommended: Experience in any aspect of software development, including management