Agile development practices aim to optimize developer productivity and product quality while minimizing waste. Three very common practices include Iterative Development, Test-Driven Development (TDD), and Pair Programming. Lean practices aim at delivering value to the customer with fewer resources by maximizing the productivity of the process that creates the product. Three lean practices that are related to the Agile development practices include Just-In-Time Production, Eliminating Waste, and Building Quality In. This article will aim to map the three Agile practices to these Lean practices.

Table of Contents

1. Iterative Development <-> Just-In-Time Production

Iterative Development is a core practice in Agile methodologies. It involves delivering work in small, incremental portions. Instead of trying to deliver the entire product at once, the team creates a small, functioning piece of the product, delivers it, then builds on that with the next piece, and so on.

This directly relates to the Lean practice of Just-In-Time production, where products are created as they are demanded by customers, rather than being created in mass quantities and stored. Both practices aim at reducing the risk and waste associated with producing more than is currently needed or can be efficiently managed.

For example, if you were developing a new email app, you might release a version with only the most fundamental features (send, receive, delete) before adding more complex features like spam filtering or automated sorting. This allows you to get feedback on your basic functionality before building on it, reducing the risk of having to make large, costly changes later.

2. Test-Driven Development (TDD) <-> Building Quality In

TDD is another common Agile practice. In TDD, the developer first writes a test for a small piece of functionality they want to implement. Then they write just enough code to make that test pass. The cycle repeats as additional features are added, maintaining a comprehensive suite of tests for the product.

Similar to this is Building Quality In, a Lean practice that emphasizes preventing defects or errors from entering the system in the first place. Rather than “inspecting” the quality in by catching errors after the fact, it’s better to perform work correctly the first time.

A simple yet practical example of this would be the development of a calculator. A developer would initially write a test that instructs the calculator to add 2 and 2 together. The calculator should return 4. When the function is created, this test should pass.

3. Pair programming <-> Eliminating Waste

In the Agile method, Pair Programming is a common practice where two developers work on the same code at the same time. One person types code, while the other person reviews it as it’s typed. They switch roles frequently. This practice ensures the quality of the code and offers a way to transfer knowledge between team members.

In Lean practices, Eliminating Waste is a key concept that involves removing anything that is not adding value to the customer or the team. When applied to the development process, this can mean eliminating duplicate work, reducing bugs and rework, and encouraging effective communication. Pair Programming aligns with this practice by promoting a greater understanding of the work and reducing the “waste” of misunderstood or poorly communicated requirements.

In Summary

In summary, Agile development practices can be closely mapped to Lean practices. The Agile concepts of Iterative Development, Test-Driven Development, and Pair Programming tie directly to the Lean goals of Just-In-Time Production, Building Quality In, and Eliminating Waste, respectively. By understanding how these practices relate to each other, teams can create more efficient, high-quality, and productive workflows.

Practice Test

True or False: Lean practice values the principle of eliminating waste, which can be aligned with the Agile development practice of prioritizing a minimal viable product (MVP).

  • True
  • False

Answer: True

Explanation: Both Lean and Agile place a significant focus on eliminating unnecessary work and focusing only on what’s essential. In Agile, this is done through the concept of an MVP which aligns with Lean’s principle of eliminating waste.

Multiple Select: Which of the following are principles of Lean methodology that relate to Agile development practices?

  • A) Amplifying learning
  • B) Deciding as late as possible
  • C) Deliver as fast as possible
  • D) Maximize work done

Answer: A, B, C

Explanation: Amplifying learning goes hand in hand with Agile’s principle of continuous improvement, deciding as late as possible is equivalent to Agile’s last responsible moment, and delivering as fast as possible aligns with Agile’s incremental delivery.

Single Select: Which of the following Agile practices aligns most closely with Lean’s principle of ‘Respect for People’?

  • A) Prioritizing the backlog
  • B) Conducting standup meetings
  • C) Pair programming
  • D) Sprint planning

Answer: C) Pair programming

Explanation: Pair programming not only fosters team collaboration but also respects the individuals involved by recognizing their unique skills and insights.

True or False: Agile’s iterative development aligns with Lean’s principle of “building quality in.”

  • True
  • False

Answer: True

Explanation: Iterative development in Agile allows continuous improvement and immediate feedback, which can be used to ensure quality is built into the product from the start. This aligns with the Lean principle of “building quality in.”

Single Select: The Lean practice of “Just-In-Time Production” is most similar to what Agile concept?

  • A) User Stories
  • B) Timeboxing
  • C) Prioritized Backlog
  • D) Scrum ceremonies

Answer: C) Prioritized Backlog

Explanation: Just-in-time production aligns with the Agile practice of maintaining a prioritized backlog, as both concepts involve focusing on what’s necessary at the given moment and not overloading with unnecessary tasks.

True or False: Lean’s emphasis on visualization can be seen in Agile’s use of Kanban boards.

  • True
  • False

Answer: True

Explanation: One of Lean’s practices is to visualize the workflow. Agile’s use of Kanban boards to visualize work in progress signifies the workflow and shares similarities with this Lean practice.

Multiple Select: The following Lean principles relate to which Agile practices?

  • A) Empower the Team –> Self-Organizing Teams
  • B) Optimize the Whole –> Systems Thinking
  • C) Continuous Improvement –> Iterative Development

Answer: A, B, C

Explanation: Lean’s principle of ‘Empower the Team’ aligns with Agile’s ‘Self-Organizing Teams’. ‘Optimize the Whole’ is akin to Agile’s ‘Systems Thinking’ where one looks at the whole system instead of individual parts. ‘Continuous Improvement’ is a significant part of Agile with Iterative Development.

True or False: Agile’s Retrospectives and Lean’s Kaizen events share the same principle of continuous improvement.

  • True
  • False

Answer: True

Explanation: Both Agile Retrospectives and Lean’s Kaizen events focus on continuous improvement by inspecting and adapting based on lessons learned.

Single Select: Which of the Lean principles the Agile’s ‘Inspect and Adapt’ aligns?

  • A) Amplify Learning
  • B) Build Quality In
  • C) See the whole
  • D) Empowerment

Answer: A) Amplify Learning

Explanation: Agile’s ‘Inspect and Adapt’ method allows the team to learn from what was successful or not in past sprints, which is very similar to Lean’s ‘Amplify Learning’ principle.

True or False: The Lean principle of ‘Pull scheduling’ can be seen in Agile’s Sprint Planning.

  • True
  • False

Answer: True

Explanation: In both Lean’s pull scheduling and Agile’s Sprint Planning, work is scheduled based on the team’s capacity and the current demands, instead of forecasting far ahead into the future. Thus, Sprint Planning can be considered as an implementation of Pull scheduling.

Interview Questions

Q1: What is Lean Practice in Agile Development?

A1: Lean practices in Agile development refer to principles that aim to streamline and speed up the production process by eliminating waste, ensuring continuous improvement, and enhancing efficiency. These practices aim at creating value for the customer and improving the overall process flow.

Q2: Can you name three Agile development practices related to Lean practices?

A2: Three Agile development practices that relate to Lean practices are Iteration, Incremental development, and Feedback. These practices focus on delivering high-quality, minimalist designs quickly and frequently, and adjusting based on the customer’s needs and feedback.

Q3: How does the Agile practice of Iteration relate to Lean?

A3: Iteration in Agile aligns with Lean’s concept of ‘Just-In-Time.’ Instead of waiting until the entire project is complete, Agile teams deliver work in small, manageable chunks called iterations. This approach reduces wasted effort from overproduction or correction.

Q4: Can you relate Incremental Development in Agile practices to Lean?

A4: Incremental development in Agile is the practice of delivering the most valuable features first, then gradually adding more features. This practice corresponds to the Lean principle of “value,” which emphasizes delivering as much customer value as possible with as little waste as possible.

Q5: How does the Agile practice of feedback relate to Lean practices?

A5: The principle of regular feedback in Agile aligns with Lean’s idea of Kaizen or continuous improvement. By regularly receiving and responding to feedback, teams can continuously improve and adjust their work, reducing waste from unnecessary features or functionality.

Q6: How does the Agile practice ‘Working Software Over Comprehensive Documentation’ relate to Lean?

A6: This principle aligns with the Lean practice of ‘eliminate waste’. Instead of creating extensive documentation that may not be useful, Agile prioritizes creating working software that provides value to the customer.

Q7: How does Test-Driven Development (TDD) in Agile correlate with Lean practices?

A7: TDD represents the Lean principle of building in quality right from the start. It focuses on reducing rework by developing tests before writing the software code, which assures the code will meet requirements and minimizes the potential of defects.

Q8: How does Pair Programming in Agile practices connect with Lean principles?

A8: Pair Programming aligns with the Lean principle of ‘respect for people’. It involves two developers working at one machine, which fosters a collaborative, learning environment and reduces defects and rework.

Q9: How does the Agile practice ‘Customer Collaboration Over Contract Negotiation’ relate to Lean practices?

A9: This practice relates to Lean’s ‘genchi gembutsu’ principle, which means “go and see for yourself”. Agile emphasizes working closely with the customer to understand their needs and wants, leading to the delivery of better value.

Q10: How do Continuous Integration and Continuous Delivery (CI/CD) in Agile correspond with Lean?

A10: CI/CD embodies the Lean principles of “flow” and “pull”. They enable a steady, continuous flow of work and allow for value delivery whenever there is demand, calling for efficiency and waste reduction.

Leave a Reply

Your email address will not be published. Required fields are marked *