
What makes some software projects thrive while others falter? The answer often lies in how well teams embrace and implement lean principles through agile project management. Lean principles, with roots in manufacturing and a proven track record across industries, serve as the backbone of agile practices. Yet, adopting these principles is no small feat—it requires more than new tools or processes; it demands a cultural transformation that can be daunting for many organizations. How do these principles translate into actionable practices, and what lessons can we draw from their application in software development? Curious to learn more? Then read on.
Agile Project Management is Based on Lean Principles
Today, software projects are primarily executed using agile project management, which is largely grounded in lean principles. Lean principles have been known for decades and are successfully implemented in many organizations and industries. However, many organizations have not uniformly succeeded in applying them because lean thinking necessitates a cultural shift and changes in organizational habits that may exceed their capabilities.
From Lean Principles to Practices
Principles are broad, guiding concepts within a discipline, while practices refer to the specific actions taken to implement those principles. Principles are generally applicable across various domains but applying them in certain contexts can be challenging. Practices provide specific guidance but must be tailored to fit the particular domain. There is no single “best” practice; rather, practices should be adapted to consider the context. Problems can arise when attempting to transfer practices from one discipline to another without acknowledging the underlying principles.
Software development is a broad discipline encompassing various activities, including web design and satellite development. While practices specific to one domain may not be applicable to others, principles can be widely applied as long as they are translated into suitable practices for the specific context. Agile Project Management has adopted many well-known and accepted lean principles, transforming them into specific agile practices. The following seven lean principles provide a good summary and have been described by Mary Poppendieck1:
Seven Lean Principles Transformend into Specific Agile Practices
Eliminate Waste: Waste refers to anything that does not add value to a product as perceived by the customer. In the context of Lean thinking, waste includes any unnecessary component or process that does not contribute to quickly satisfying the customer’s needs. This encompasses excessive inventory, unnecessary requirements gathering, superfluous feature development, and unnecessary movement or handoffs in the manufacturing or development process. The goal is to efficiently and promptly deliver exactly what customers want.
Amplify Learning: The development process emphasizes discovery and experimentation, often involving trial and error. In contrast, production focuses on consistency and reducing variation. A lean approach to development includes practices that differ from those used in lean production, as development is more akin to creating a recipe, while production resembles preparing the dish. To enhance the software development process, it is crucial to prioritize amplifying learning and experimentation.
Decide as Late as Possible: In situations characterized by a high degree of uncertainty, development practices that permit late decision-making can be highly effective. Such practices provide an options-based approach, allowing stakeholders to postpone decisions until they have more information and can make better predictions. It is beneficial to delay decisions until they can be grounded in facts rather than speculation. In a rapidly changing market, keeping design options open is often more advantageous than committing early. To facilitate delayed commitments when developing a complex system, it can be helpful to build in flexibility and the capacity for change.
Deliver as Fast as Possible: The importance of rapid software development approach was not recognized for a long time, and a careful, mistake-free approach has been preferred. However, rapid development offers numerous benefits, including the ability to delay decisions, obtain reliable feedback, and engage in continuous learning through shorter design, implementation, and feedback cycles. Speed enables customers to receive what they need in a timely manner and allows them to postpone decisions about their requirements until they have more information. Reducing waste in the value stream through rapid development is a key strategy in lean thinking.
Empower the Team: To achieve excellent execution, it is crucial to focus on the details and involve front-line workers in technical decision-making. These workers possess in-depth knowledge of their specific tasks and are better equipped to make informed technical and process decisions than anyone else.
In a lean environment, where decisions are made late and execution is swift, a central authority cannot effectively coordinate the work of all employees. Instead, lean practices utilize pull techniques to schedule work and rely on local signaling mechanisms such as visible charts, daily meetings, frequent integration, and comprehensive testing to communicate needs and progress. In the context of software development, the pull mechanism involves delivering increasingly refined versions of working software at regular intervals.
Build Integrity In: Integrity is a crucial factor in how users perceive a system. It relates to the cohesiveness of the system’s core concepts and its long-term usefulness. Software with integrity features a clear architecture, is user-friendly, effectively serves its intended purpose, and can be easily maintained, adapted, and extended. Research shows that integrity in a system arises from strong leadership, relevant expertise, effective communication, and healthy discipline, rather than merely from processes and procedures. Market share can serve as a rough measure of a product’s perceived integrity over time.
A system is perceived to have integrity when a user thinks, “Yes! That is exactly what I want. Somebody got inside my mind!” (Marry Poppendieck)
See the Whole: Complex systems require a diverse range of expertise to maintain integrity. However, experts in specific areas, such as databases or user interfaces, may prioritize their own specialties over the overall performance of the system, leading to suboptimization. This tendency can arise when individuals or organizations are evaluated based on their specialized contributions rather than the system’s overall performance. The issue is further compounded when two organizations collaborate under a contract, as individuals may prioritize their own company’s performance over the system as a whole. Preventing suboptimization can be particularly challenging in large organizations, especially when contracts are involved.
Embracing Lean Principles: The Key to Agile Success
Lean principles have profoundly influenced agile project management, providing a framework for efficiency, adaptability, and continuous improvement. By focusing on eliminating waste, amplifying learning, and delivering value quickly, teams can achieve better outcomes in their software projects. However, adopting lean thinking requires more than just following practices—it involves a cultural shift and a commitment to change. When properly applied, these principles empower organizations to deliver exceptional value while fostering collaboration and innovation. Embracing this approach is not just a methodology; it’s a mindset that drives sustainable success. Ready to put these insights into action? The results might surprise you.
Read more about Agile Principles and Practices
Here You Can Find Even More Knowledge
Would you like to learn more about how to make your projects more successful with Scrum and Agile Project Management? My book Scrum – How to Successfully Apply Agile Project Management and Scrum takes you an important step further!
Do you know somebody who might be interested in this article? Then forward it or share it. Thank you!
- Marry Poppendieck – Lean Software Development, An Agile Toolkit 2003 ↩︎