Combining an Agile and Lean Approach
Several approaches exist to improve software development, among them are agile and lean. Managers have to decide which approaches to deploy in their organization. Approaches can also be combined depending on the problems that need to be solved.
In his talk agile for building, lean for learning Régis Medina shared his learnings of the two approaches. InfoQ interviewed him about combining agile and lean, focusing on people and learning.
InfoQ: Your presentation at the lean and kanban Central Europe Conference was about "agile for building, lean for learning". Why do you recommend this combination?
Régis: 10 years after the Manifesto, agile has proved to be effective in reducing development cycles, drastically improving quality, eliminating silos within the teams, and making project management easier. However, when I consider the issues agile teams face on the field, I see three new challenges emerging:
- Making the right products: that requires refining the product owner’s practices. I see too many product owners changing the course of action between iterations or asking for features that will end up not being used. The challenge is to develop the product owner’s skills beyond collecting users’ needs and demands in order to develop only the necessary features.
- Delivering more at the end of each iteration. Too often, the number of features delivered frustrates the client because she has her own deadlines to meet, regardless of what was negotiated with the development team. In that case, agile teams are often clueless because they don’t know how to develop faster while preserving the quality of their software and not working long extra hours.
- Learning how to better collaborate with the other departments within the company, up and down the value stream. I just mentioned the case of marketing teams requiring more features faster. At the other end of the stream we find production teams, for which promising opportunities are emerging with the rise of DevOps. But concretely, agile teams have a hard time taking others onboard, which often slows down the delay for production or causes incidents. One of the main obstacles I see in that area is the difficulty for agile teams to interact with their own management.
On these topics, the agile community is constantly exploring and trying out new ideas. Personally, after 10 years practicing agile, I decided to step back a little and took the opportunity to learn lean in other areas of IT under the guidance of real lean sensei. When I saw really spectacular results in various domains, I realized that there was a huge opportunity here for the agile community.
Lean and agile are perfectly compatible but very different in nature. Lean is not a process, or a toolbox for improving processes, but a management practice that individuals develop along the years with the help of their sensei. Managers and team leaders who practice lean actually learn:
- How to improve customer satisfaction, well beyond her initial demands.
- How to identify improvement opportunities in their teams in order to obtain significant and measurable performance gains, and link them to the company’s needs. They achieve this by getting things done right the first time, improving the flow of work across people, or finding ways to accomplish certain tasks much faster.
- How to create a working environment in which team members develop the right skills much faster and think deeper about how to perform their job better.
InfoQ: How does the combination of agile and lean help us to increase our insights in the value that we can deliver to customers?
Régis: Because of its iterative nature, agile does involve the client - or at least a client representative - a lot in the project. But there is room for improvement when it comes to understanding value from the client perspective. This is not easy, since what the client asks for is not necessarily what she really needs or what will drive her buying decision afterwards.
This is where lean comes in handy:
- It develops a “go & see” habit. In lean this is called “genchi genbutsu”, it means going to the field in order to understand the client context and to formulate the problem he is trying to solve.
- It provides a framework to analyze the client’s expectations and understand the way he uses the product or service. Lean develops your ability to see value as well as waste on the field. This helps understand the customer’s experience and improve the product so that it creates as little waste as possible for its users.
- It helps align the project members on these objectives, which are more focused on the problems to solve for the customer than on the list of features to develop.
- It makes you see the product evolution as a constant flow of experimentations that helps better understand the clients’ context and preferences.
InfoQ: Both agile and lean help us to pay attention to people. Can you explain how they compliment each other.
Régis: Agile strengthens the collaboration and communication between the stakeholders of the project, and creates and environment that helps the teams do a better job at an acceptable pace. This aspect is very close to lean’s “Respect for people”. But lean goes a lot further with the notion of training.
Taiichi Ohno believed that the waste we see every day in our organizations is a result of our misconceptions. In lean, investing in skills development and improving everyone’s capacity of judgment is the key to success. The main lean question being: “who needs to learn what for the company to succeed?”
Indeed, lean is a set of practices and exercises aimed at developing people skills:
- The problem solving approach based on the "Plan-Do-Check-Act" cycle helps clarify one’s thinking in order to, first, choose the right problems, and second, take decisions based on facts rather than on beliefs.
- The two pillars of the Toyota Production System - Just-in-Time and Jidoka - define standard types of problems that people need to solve constantly to improve their skills: work together at the right pace and do everything right the first time.
- Writing standards and performing continuous on the job training helps accelerate skills development and spread the know-how, be it at team level or companywide.
These practices perfectly fit in the agile world.
InfoQ: Should an organization start with agile, and then adopt lean, or the other way around. Or are there ways to mix both approaches and do them at the same time?
Régis: The lean answer to that question is actually another question.
As a set of development practices, agile is a solution. The lean question is: what is the problem you are facing for which agile could be a solution? Imposing a solution when no problem exists could lead to a waste of time, create more problems than it solves, or leave the real problem untouched.
Following that logic, I would encourage a manager asking these questions to:
- Clearly define the problem she needs to solve, and clarify the reason why this problem is important for the company.
- Engage all team members in the challenge.
- Identify with them, on the field, the main obstacles that get in their way on their path to success.
- Lead experimentations that will help them overcome these specific obstacles.
- pread and share the know-how within the team and beyond, across the whole organization.
...which actually means starting with lean!
InfoQ: You mentioned lean for learning. What about agile retrospectives? They can also help teams to reflect and learn.
Régis: Yes, agile retrospective are perfect opportunities to learn, even though the results tend to vary widely depending on the skills of the coach who is leading them. To me, the retrospective will be efficient and useful if you ask the following questions:
- How does the team know it is working on the right problems and learning what it needs to learn, rather than what it wants to learn?
- How does that learning improve the skills of each and every member of the team?
- How do you evaluate the benefits of this learning for the customers and for the company?
That being said, retrospectives are more a batch approach to improvement, happening once every iteration and tackling (hopefully) a limited number of problems. Lean helps develop kaizen on a daily basis, one problem after the other, to make sure that everyone, every day, contributes to the improvement. It is based on a different approach to visual management, the Obeya model, that aims at making problems visible to drive the team to constantly collaborate in order to solve these problems. A kind of “continuous retrospective”, I should say.
You can view the video of the talk Lean & Agile by Régis Medina from the Lean IT Summit 2013.