Jan 27 2008
Introduction of Lean Project Management
Software development is a procedure of manufacture. However it is not all about manufacture, it is manufacture of creativities. When Toyota started applying Lean methodology in their car making plant, they might never imagine that some years later, IT industry would start applying lean in the software development. The successful experience mostly come from the combination of Lean and Agile.
So what lean principle is and how to apply Lean principle in Agile project management? Typically Lean processes; synchronize the flow of work, through the business balance work loads, reduce work in progress and shortens lead times. Lean has seven principles. They are:
- Eliminate Waste
- Amplify learning
- Decide as late as possible
- Deliver as fast as possible
- Empower the team
- Build integrity in
- See the whole
Eliminate waste
As we know lean basically aims to eliminate the waste, shorten lead time and empower the team, so it is all about eliminate the waster in order to response customer’s requirement more effectively and cut down the cost.
So in IT project, how do we eliminate the waste? We have to find the waste first then find a way to eliminate them. Let’s see where the waste come from in a software development project:
- Partially done work
- Extra processes
- Extra features
- Task switching
- Waiting
- Motion
- Defects
Yes, in order to eliminate those waste,one strategy could be used here which is called Value stream mapping:
Find your waste and map your current process with value, any in valuable process should be eliminated from the process
- List 10-15 most important activities and rate them 1-5, (1: least important, 5 highest value) . —- Take two lowest scoring activities and plan to cut the time of these two activities into half.
- Discuss one of the 7 waste in the meeting and ask
- Do you agree that this “waste” is really a waste? Why or why not?
- Whether or not you agree that the item is a waste, estimate how much time it consumes in an average week.
- What can or should be done to reduce that time?
- Develop a value stream map. Start with an incoming request and map a timeline of its progress to providing customer value. Find out how much of the time is spent adding value and how much is spent waiting. Take the biggest cause of delay and develop a plan to cut it in half.
Amplify learning
In an IT project it is always critical for the team to communicate efficiently and get feedback as fast as possible so the team can learn fast and response fast. In order to achieve it, there are several things that you can do:
- Feedback
- Iteration
- Synchronization — Define and dev interface then component
- Set-based development
Talking about set-based management which is opposite to point-based management,check out how to apply set-based management in a project below:
Set-based VS point based development
- Set-based development: three steps
- develop multiple options
- communicate constraints
- solutions emerge
Decide as late as possible
When a team decide the plan for the next 6 months, they work hard for the goals, however, people found that the plan was always changing because the requirement was changing, the team was changing and almost everything was changing. So in my opinion, don’t make decision too early unless that you have to. There is a famous 100 days rule in project management which was defined as that never plan a project more than 100 days or 3 months. Why don’t we try the option thinking?
- Options thinking
- The last responsible moment
Someone might say that there is a lot risk if we try to make the decision as late as possible. Yes there is. So that we should to try to do the following in order to keep the risk lower.
- Share partially complete design information
- Organize for direct, worker-to-worker collaboration
- Develop a sense of how to absorb changes
- Develop a sense of what is critically important in the domain
- Develop a sense of when decisions must be made
- Develop a quick response capability
- Making decisions — Flexibility, Robustness, Self-organization
Deliver as fast as possible
No customer want to see the result in the end rather than see the progress very often. So as a software development team, “deliver as fast as possible” is quite important.
- Pull system — against push system, and information radiator
- Queuing theory
- Reducing cycle time
- Steady rate of arrival
- Steady rate of service
- Slack
- Cost of delay
Empower the team
From the experience of GE’s work-out, we can see there is no better way than let the worker to make the decision rather than the managers because the workers are the core of productivity.The people who add value are the center of organizational energy. Managers should play a role of collaboration, leading and support.
- Self-determination (CMMI VS Lean)
- Motivation
- Leadership (Manager VS Leader)
- Expertise
Talking about Self-determination, I have to talk about the difference of CMM and Lean. There is no good or bad while they are just different and can work in different circumstances.
CMMI Assumption
- A system is best managed by disaggregating it into identifiable work products that are transformed from an input to an output state to achieve specific goals.
- A mature organization is one in which everything is carefully planned and then controlled to meet the plan.
Lean Assumption
- A mature organization looks at the whole system; it does not focus on optimizing disaggregated parts.
- A mature organization focuses on learning effectively and empowers the people who do the work to make decisions.
Here contrast to the original concept of management or manager, as planning, scheduling, controlling and reporting, management and managers are also should be leading or leaders. As Jack Welch said in his book Winning, before you become a manager/leader, all you need do is to develop yourself, after you became a manager/leader all you need do is to develop the people in your team. As a leader you not only do Plan,Budget,Organize,Staff,Track and Control but also do Set Direction,Align People and Enable Motivation. Yes, give it a try that is always a good motivation!
Build Integrity In
You can also find some suggestions about Integrity in Jack’s book. Almost every successful organization or manager encourage people to build integrity in the organization or team.
- Perceived Integrity — Model Driven Design(Conceptual domain model, glossary, use case model, Qualifier)
- Conceptual Integrity
- Refactoring — Simplicity, Clarity, Suitability for use, No repetition, No extra features
- Testing
See the whole
Last but not least, a team not only the project manager should always see the whole of the system even not in his own project but in the whole product or system.
- System Thinking
- Measurements
- Contracts
Now people can see when you do a project, there are more that you can do to eliminate the waste, empower the team in order to response customers’ requirement faster, increase the efficiency of the project. It is not really easy to apply all these principles in one day however bear in mind and give it a try. There would not be too long to see your own project better and better!


