Incorporating lean manufacturing and lean IT principles and practices is essential to delivering software to your customers quickly and easily. This course, Lean Software Development Fundamentals, will help you understand how the lean principles can be applied to software development so that you can more efficiently deliver software. First, you'll look at how the seven lean software principles apply to a software development team. Next, you'll discover what practices a team can introduce to help make the transition to lean easier, and how Kanban can help to make a team more efficient. Finally, you'll also get to think through a fictional example of a software development team delivering a call center application to their business. By the end of this course, you'll better understand how to develop your software in a lean way, and ultimately, you'll be able to deliver with increased efficiency.
Stephen Haunts is an experienced Software Developer and Leader who has worked across multiple business domains including Computer Games, Finance, and Healthcare Retail and Distribution. Stephen has worked in languages ranging from Assembler, various forms of BASIC, to C and C++, and then finding his love of C# and .NET.
Course Overview Hi everyone, my name is Stephen Haunts, and welcome to my course, Lean Software Development Fundamentals. I'm a software developer and leader who has worked across many diverse industries such as video games, financial services, and healthcare, over the last 20 years. Lean software development is a development philosophy that has roots back into the automotive manufacturing industry at Toyota, and has been adapted to help us develop software better for our customers. In this course, we're going to introduce the idea of Lean software development. We'll be covering some of the following topics. First we'll look at the history of Lean manufacturing so that you can see the roots of Lean. Then we'll explore how Lean relates to software development. We'll then look at how Lean and Agile can work together. We'll then follow up by looking at some of the software practices that you can use to help support Lean. We'll then finish up by looking at Kanban and how this can help you run and organize a Lean software project. By the end of this course, you'll understand how Lean practices can be applied to your software project, And how it can be used to complement any already existing Agile practices adopted by your team. In this course we'll briefly cover the basics of Agile software development before we look at Lean. If you want a more in-depth look at Agile software development, then I recommend you check out my other course in Pluralsight called Agile Fundamentals. I hope you will join me on this journey to learn about Lean software development with the Lean Software Development Fundamentals course here at Pluralsight.
Waterfall and Agile Hi, my name is Stephen Haunts. Welcome back to my course on Lean Software Development Fundamentals. In this module, we'll take a high-level look at Waterfall and Agile software development processes. We'll not go into huge amounts of detail here. This is just an overview to help support you with the rest of the course. If you'd like a more in-depth look at Waterfall and Agile, then I recommend you watch my other course, Agile Fundamentals, which is also available in the Pluralsight library. This will cover Waterfall and Agile methodologies in much more detail, and also give you a detailed run-through of both Scrum and Extreme Programming, which are two of the most common Agile software development methodologies in use today. First of all, in this module we'll cover the history of Waterfall and explain what it is and why it can cause you problems on your project. Next, we'll take a look at what it means to be agile, and explore the Agile Manifesto. We'll then finish off this module with a quick overview of Scrum and Extreme Programming. Let's start off with a look at what the Waterfall software development model is.
Lean Manufacturing Hi. My name is Stephen Haunts, and welcome back to my course on Lean Software Development Fundamentals. In this module we'll take a look at the background of lean with Lean Manufacturing, as this is where the lean software development movement grew up from. In this module we'll first look at the history of lean starting with the Henry Ford and the Model-T, and then we'll look at the Toyota production system. We will then take a look at Just-in-time manufacturing, automation, waste, and the lean process, and next we'll look at continuous improvements in Kaizen. And then we'll look at a technique called Plan, Do, Check, Act. And finally, we'll look at another technique with the 5 Why's. This will give us all the necessary background and context before we look at lean software development. So let's start off with a brief history of lean.
Lean Software Development Hi. My name is Stephen Haunts. Welcome back to my course on Lean Software Development Fundamentals. So far, we have looked at an overview of traditional waterfall software development, and the newer agile methodologies including Extreme Programming and Scrum. We then looked at the history and background of lean manufacturing with Henry Ford and his Model-T automobile and the Toyota production system. This was important to look at as it shows the origins of lean thinking and how they were applied to manufacturing. Now we're going to take a look at lean software development. In this module, we'll first look at where lean software development came from, and then we'll look at the seven principles that underpin lean software development. At a higher level they are eliminate waste, this is where you should only spend time only on what adds real customer value, amplify learning. This is when you have tough problems and you need to increase feedback. Decide as late as possible, this is about keeping your options open as long as practical, but no longer. Deliver as fast as possible, and this is about delivering value to the customers as soon as they ask for it. Empowering the team, this is about letting people who add value to your customers use their full potential. Build integrity in, this is about not trying to tack on integrity and monitoring after the fact, but building it in from the start; and finally, seeing the whole, this is where you should beware the temptation to optimize parts of the system at the expense of the whole system. I hope after watching this module that you will feel inspired to think differently about how you plan and run your software projects. Let's get started and look at where lean software development started.
Applying Lean Software Development to Selmasoft Hi, my name is Stephen Haunts, and welcome back to my course, Lean Software Development Fundamentals. In the previous module, we looked at the seven principles of lean, which are: Eliminate waste, this is where you should only spend time doing what adds real value to the customer. Amplify learning, this is when you have tough problems you increase feedback. Decide as late as possible, and this is about keeping your options open as long as practical, but no longer. Deliver as fast as possible, this is about delivering value to the customer as soon as they ask for it. Empower the team, this is letting the people who add value to your customers use their full potential. Build integrity in, this is not about trying to tack on integrity and monitoring after the fact, but building it in from the start. And finally, seeing the whole, this is where you should beware of temptations to optimize parts of the system at the expense of the whole. Now, let's revisit our fictional company, Selmasoft, and try and apply some of this thinking to their project. There's no right answer when applying lean, and what we're talking about in this module with Selmasoft is not a definitive answer. What this module should do is get you thinking about how you can apply some of these principles to your own projects and teams. Let's start off by looking at our first principle, eliminate waste.
Agile vs. Lean Hi, my name is Stephen Haunts. Welcome back to my course, Lean Software Development Fundamentals. In this module, we will answer the question that always crops up with software development, which is should I use lean or agile? In this module we'll first look at the benefits of agile. Then we'll recap some of the benefits of lean software development. Then we'll look at the answer for the question, should I use lean or agile? Let's get started and look at the benefits of agile software development.
Software Practices to Support Lean Hi, my name is Stephen Haunts. Welcome back to my course, Lean Software Development Fundamentals. In this module, we'll look at some standard technical practices you should use to help you be more lean. These are fairly standard practices in the industry these days, but it's worth calling them out as they help you reduce waste and defects, and help you reduce feedback time from checking in code to getting your code released. These aren't just applicable to lean, but they are standard practices for developing agile methodologies on Scrum and Extreme Programming too. We'll cover the following practices: Source control repositories, continuous integration and delivery, and automated testing and test-driven development. We have mentioned these things throughout the course, but this module will bring them all together, because if you get all of these right you will put yourself in a good position for implementing both agile and lean. Let's dive in and look at source control management.
Using Kanban Hi, my name is Stephen Haunts, and welcome back to my course, Lean Software Development Fundamentals. In this module, we'll take another software development methodology that goes hand in hand with lean software development, and that is Kanban. Kanban is a great way of organizing a lean software project, but it is different describing how it operates. In this module we'll cover the background of Kanban, and then we'll look at subjects such as limiting work in progress, minimizing the cycle time, efficiency through focus, and then we'll also look at Scrum vs Kanban. If you'd like a more in-depth look at Kanban, then I recommend watching the course, Kanban Fundamentals, by Steve Smith at the address shown on the screen.
Course Summary Congratulations! You have now reached the end of my course, Lean Software Development Fundamentals. In this final short module, I just want to summarize some of the key points from the course and offer some resources for you to go to next. This course is a fundamentals course, which means it is designed to give you a good introduction to the subject of lean to enable you to start using some of the principles on your own teams. I hope what we have covered in this course will inspire you to start thinking differently about how your organizations work and the products you are developing. I encourage you to now go and look at your business and their products and start to see where the value is being added and think about how you can make your companies and software development teams and projects more efficient so that you can deliver value quicker. Let's recap some of the main points from the course.