In this lesson, we're going to learn about, what are some of those methods that are bringing the Lean ideas or Lean way of thinking into the software development world and which of these method have been getting traction in recent years? So in 2003, Mary and Tom Poppendieck wrote this book called "Lean Software Development, An Agile Toolkit" that outlines Lean principles for the Software Development world. And they also outline lots of tools that you can use to apply these methods. And after that book, there were two more books that further enhance your understanding of how you apply these principles and these tools or these ideas into the software development process. Let's look at the seven principles of Lean software development outlined in this book. So the first one is, Eliminate Waste. And waste could be defect, waste could be extra features. Extra features means users didn't need those features, or they don't use it, or it could be context switching and many other types of ways that exist in software development. The second one, is Amplify Learning. So how can we increase learning or fast learning so you can do continuous integration, or automated testimg, or sometimes exploring multiple options? They can enhance your learning. And this is also called Create Knowledge. The next principle is Defer Commitment. So a lot of times we make commitments when we have the least knowledge. And so, according to this principle, try to defer commitment if you don't have all the information and if it is possible to defer the commitment to a specific technology or a specific architecture. The next one is Deliver Fast. It's also called Deliver as FAST as Possible. And so, this basically means deliver the software, the cycle time for your software, can you decrease that cycle time? How fast can you deliver it? The fifth principle is Empower the Team. So empower the team to make the decisions. Let them make the decision they are close to the work. The sixth principle is Build Quality In all the way through. So, sometimes we make the quality as one of the steps in the software development process. And according to this principle, quality should always be in this core or in your software, always present. And the last one is Optimize the Whole. Which means, instead of optimizing unusual steps of your software development process, try to optimize the complete flow of your software development process. So along with these seven principles, the book also outlines 22 tools and these are all tools that help you apply or implement these principles in the software development process. The next concept that is gaining traction or has gained a lot of traction is Kanban and that was made popular by David Anderson by his book, "Kanban". And this basically forces or encourages the team to optimize the whole flow, the current flow that they have. So it doesn't say that this is a new process that you need to follow. Whatever process you have, it encourages you to optimize that flow by putting work in progress limits on each of the process steps. And so, it outlines five properties and three principles. The properties are Visualize the workflow, Limit the work in progress, Manage the flow, Make process policies explicit, Improve collaboratively. And the principles are, Start with what you do know, Agree to pursue incremental and evolutionary change, and Respect the current process, roles, responsibility and titles. The third concept that is gaining traction is Lean Startup. And in this concept, you're not talking about, can the solution be built, but it is about, should the solution be built. So Eric Ries with his book, "The Lean Startup", made this concept popular in 2011 and it has four principles. Validated Learning. So you try to validate your assumptions through actual data. Entrepreneurs are Everywhere, Entrepreneurship is Management, and Innovative Accounting. So with these four principles, it helps you quickly find out if your idea is something that is needed by users or not. And in addition to these ideas, here are some of the other ideas that are gaining traction in the software development world, Value Stream Mapping, Kaizen, Theory Of Constraints, Cost Of Delay and many others.