Chapter 5: Lean Thinking
Scrum is a well-defined and optimized framework at the small project team level. However, the addition of multiple development teams, products, and customers quickly introduces complex dynamics that the original Scrum Guide does not address. In effect, the life cycle of the product development function becomes a very complex system at larger scales.
The application of Lean development principles focuses organizational resources on improving customer value, eliminating waste, improving the flow of work, building only what is wanted as its needed, and seeking perfection. These principles help address the complexities of software and systems development when scaling Scrum or any other set of Agile practices.
In this chapter, you will learn the basics of Lean concepts and the application of Lean concepts as applied to Agile software development practices. It's important to make this connection as Lean-Agile practices are at the heart of modern scaled Agile practices, such as the Scaled Agile Framework (SAFe®). After learning the basic concepts, we're going to dive deeper into the application of Lean-Agile practices to software and systems development.
Lean practices originated to enhance manufacturing capabilities within Toyota, a Japanese automaker. The practice of Lean production in manufacturing employs the basic concept of doing more with less by eliminating all forms of waste. The simplest way to define waste is any activity in the development and delivery of a product or service that the customer doesn't value and therefore doesn't want to pay for.
The application of Lean concepts to software development is a more recent development. But, before we get to that discussion, we need to understand the basic concepts of Lean Thinking as they originated in manufacturing. That is the subject of the first section of the chapter.
Before we move on to this discussion, let me address a question you might already have: why do we care about how Lean was developed to support manufacturing practices? There are two parts to the answer. First, though initially developed to address efficiency issues within manufacturing companies, the principles apply equally well to service-oriented industries, such as the software industry. The second issue is that scaled Agile and scaled Scrum implementations often involve the management of very large and complex products with parallel development activities. In addition, modern cyber-physical systems involve the integration of manufactured products and associated software and control system components, creating more development complexities. Therefore, the management philosophies of Lean development and Agile-based software development practices need to be likewise aligned and integrated.
The discussions on Lean thinking strategies span the remaining two chapters of this module. This chapter introduces the basics of Lean development, while the following chapter discusses how Lean development practices apply in the domains of software and systems development.
We'll start our introduction to Lean development by covering the following topics:
Introduction to the basics of Lean Thinking
Eliminating all forms of waste
Creating customer-centric value
Improving value stream efficiencies
Moving from Push to Pull production scheduling approaches
Seeking perfection is always the goal
OK, let's get started on understanding the basics of Lean Thinking.