The third step is to apply lean principles to your value streams and projects. Lean principles are designed to eliminate waste, maximize value, and optimize flow. To achieve this in software development, you should identify and remove elements such as defects, overproduction, waiting, rework, over-engineering, and unnecessary features. Additionally, understanding your customers' needs and expectations is essential for delivering value to them as quickly and frequently as possible. To ensure that you are building the right product for the right market, techniques such as customer development, user research, prototyping, testing, and validation should be employed. Finally, you should optimize the flow of work by eliminating delays and hand-offs while also measuring key performance indicators such as cycle time, lead time, throughput, and quality.