In the last few decades, “Agile” and “Lean” have become commonplace terms in the world of software development. Agile transformation, though by some deemed only a trend, has proven itself again and again. It’s undeniable, an Agile approach clearly aligns with the basic realities of a successful project.
The key to appreciating a Lean-Agile Mindset is first developing a thorough understanding of the history, prevalence, and characteristics of both Agile and Lean Thinking.
What is Agile?
One wouldn’t likely peg the small town of Snowbird, Utah as the site of a software rebellion, but in 2001 a band of software insurgents united to transform the way software is envisioned, produced, and delivered. The Agile manifesto was born as a combative response to the prevailing “Waterfall” software development process. A practice that was neither timely nor responsive.
The principles and practices of Agile were used to rapidly develop working applications and bring them into the hands of end-users. Often described by its 17 founding thought leaders as a “lightweight” approach, the key features of the Agile movement turned out to be accelerated feedback and a willingness to adapt.
Today, the majority of organizations have embraced Agile. An HP study polling 600 IT and development professionals showed that two-thirds described their company as either “pure agile” or “leaning towards agile”.
In practice, the Agile methodology is characterized by a few key distinctions:
- Slow down: The Agile mindset is (ironically) about slowing things down and being iterative in production. It’s about taking small steps and making small changes to the product you’re developing not the process you’re using to develop it. Speed propagates error. Agile teams commit themselves to quality – creating a sense of pace and reliable outcome.
- Customer satisfaction is the highest priority: To control expectations, Agile teams deliver reliably in a predictable, measured way. The customer (product owner) is integrated into the process and part of the conversation throughout the project.
- Flexibility: Agile teams are flexible to requirements, willing to make changes, and adjust expectations. The idea of “tossing it and starting over” is not only necessary but welcome. Flexible teams achieve the best outcomes through iteration. They are willing to set aside their own ego and invest only in the product owner’s approval and satisfaction of the final product.
- Build projects around motivated people: Great teams know that they will only succeed through collaboration. It is important for the people building the product (engineers, designers, developers, etc) to have a sense of ownership, both of the success and quality of the product.
The best way to invest those individuals in the product is to make them feel heard – put them face to face with decision-makers. On the other hand, it is important to encourage decision-makers to listen and respond directly to the team’s input.
Collaboration and motivation within an Agile team is about establishing a healthy relationship between the team and stakeholders.
What is the Lean methodology?
Believe it or not, the Lean management approach was introduced in the 20th century by the well known, Japanese motor company, Toyota. The company was experiencing product delivery issues and sought to rectify and streamline its operation.
The Lean methodology is a set of principles around a manufacturing process, used to reduce waste and inefficiency. “Lean” is not so much a process to follow as it is a set of principles for developing a process. It wasn’t until 2003 that “Lean” was applied to software development and adopted as an Agile methodology.
A Lean enterprise’s driving force is to eliminate waste and reduce the cost of production. With a foundation in leadership, the lean methodology leverages respect for people, culture, flow, innovation, and relentless improvement.
In practice, Lean can be characterized by a few additional distinctions:
- Multitasking: The Lean methodology asserts that multitasking is fundamentally counterproductive. Its premise encourages that each job be very granular. It doesn’t discourage cross-functional jobs but asks that tasks be worked on one at a time.
- Reduce waste of materials and time: Within the Lean methodology, teams are called upon to foster innovation and relentless improvement. They are encouraged to continuously improve by reducing waste of any kind including interruptions in process (change orders, etc).
The key within Lean is to ensure that once you’ve built an engine to churn out code, widgets, etc, nothing will interrupt it. It is important to ensure that the engine keeps running smoothly regardless of what it’s being fed.
With that in mind; to avoid interrupting flow, the Lean method requires divorcing engineers from the decision-making process.
- Defer commitment: Until you’ve committed, there is always room for improvement. In other words, don’t make promises you can’t keep. Or yet, seek to exceed expectations rather than simply meeting them.
Deferring commitment is a mechanism to control for uncertainty. It allows room for changes while still moving forward at full speed. Often referred to as defensive development, delivering software in modular steps that don’t rely on one another allows for alterations to be made easily.
Where Agile and Lean Collide: A Lean-Agile Mindset
Within healthy, innovative product development, teams adopt the two aspects of Lean-Agile mindset; thinking Lean and embracing Agility. Agile and Lean are like spaghetti sauce and tomato paste.
Agile is an application and result of Lean thinking, not a competitor. Both methodologies conjoin in their mutual pursuance of trust. They encourage team members to take ownership of their work.
Adopting a Lean-Agile mindset motivates teams to be self-organizing and self-healing, to work together and solve problems, and to build something that can be demonstrated to customers on a consistent basis.