I have been providing PMI-ACP® training to professionals worldwide for a long time now, I noticed most of the professionals know what Scrum is but Lean software Development is still a new idea for many. So I thought of writing a blog on 7 Lean Software Development Principles.
Toyota as a de facto used ‘Lean’ as a name for its novel method of producing and developing cars. You must be puzzled as how this used in Software Development. The fact is that (could be improved ) Lean principles used by Toyota are universal and practice may vary as per the application area.
“Principles are underlying truths that don’t change over time or space, while practices are the application of principles to a particular situation. Practices can and should differ as you move from one environment to the next, and they also change as a situation evolves.” (Poppendieck and Poppendieck 2006)
You may find minor variations in the nomenclature of these principles in various books, here I am using -“Lean-Agile Software Development: Achieving Enterprise Agility by Alan Shalloway;” This book is a reference book for the PMI-ACP® Exam.
These are Lean Principles for software projects
1.) Respect people
This principle advocates you ought to Respect people. Never , if something goes wrong, people should be blamed. Instead of blaming people one should look into the development process and identify gaps in it , fix it and generate better results. For an efficient and friendly working atmosphere, it is important to allow creative freedom to select and identify the tools and right approach which one wants to use for the assigned job. Leaders should lead by Principle and Goal based and not the task based management.
2.) Eliminate Waste
The general consensus on the meaning of ‘Lean’ is to eliminate waste and yes, it is true to a greater extent. First, we need to identify ‘waste’ and for that the ‘value.’ This means that ‘Lean’ recommends that one needs to identify the ‘value’ which customer would be receiving from our work. Once you know the value, it becomes easier to identify what does and what does not add value to our customers. The steps in the development process that contribute no value are all the ‘waste’ elements and thus require removal. The tools like Value Stream Mapping helps in identifying the waste.
3.) Defer Commitment
Traditionally speaking, we are always trained to plan in advance but this ‘Lean Principle’ tells us, defer the commitment to the point till it does not impact negatively on your project objectives. You must be wondering, why delay? What happens when we delay is that during that time you would be able to take all new learning and knowledge into account which will result in better decision making. Besides, you are not losing anything since it is not required immediately. Thus, it is mandatory for every project and organization to identify their own last responsible moment.
4.) Create Knowledge
Professionals spend a lot of time in relearning certain process or function which the other person has already worked out. This principle advocates a mechanism to Create knowledge. There has to be a right mechanism to amplify learning and exploring by letting in all the team members and asking them to share their knowledge on a specific problem, skill, technique or subject.
5.) Deliver Fast
Most of the Agile and Lean applications are driven by the desire of delivering fast. This principle recommends us to keep the batch size small i.e. to keep the progress inventory to a minimum level and deliver the targets to customers in small batches. This may not be practical for individual process efficiency, however, for overall business development efficiency, we need to focus on delivering fast rather slow in big size.
6.) Build Quality In
Our focus should be to build quality inside the product and not to rely on the conception to ensure that the end product is not faulty. We should keep improving our development process so as to stop diffusing defects in the product right from the start.
7.) Optimize the Whole
This principle means that when you wish to optimize certain value, do optimize the entire chain of the development process. Do not just go for optimization of sub processes, the process inventory, thus made would further add to waste. Instead of brooding over how much time it would take to code, it is important to focus on providing the customer feature ASAP. It is surprising that the development time is usually less than 40% of the time we take to process the customer request and delivery.
I hope this blog has sufficiently answered your all queries related to Lean Principles, You may also like to watch the video presentation on Lean Principles.
Enroll to our FREE PMI-ACP® Introductory Program to learn more about PMI-ACP® certification