Lean is one of the project management techniques which comes under the umbrella term of agile project management methodology. Actually the special thing of this project management practice is it does not include a set of principles like other software project development methodologies. When considered simply it can be recognized as a mindset because the lean follows the set of principles and values. In lean terminology that is called the “Thinking tool”.
The term “Lean” was actually born in the manufacturing sector then after in the twenty-first century Tom and Mary Popendiecka adopted it with the software development sector. Further the primary objective of this management is focus on an effective and efficient way of eliminating waste. As same as the other agile frameworks the Lean also has a unique set of values that helps to commitment ,focus, openness, respect and courage not only that but also these things actually lead to the team getting into the mindset.
Most important thing of this framework is that it also flavors flexibility, communication, collaboration and simplicity. However there are some drawbacks with this methodology as well. Lean is less understood and lacks a clear cut definition supported by a professional consensus
According to the above definition we can get the idea of the lean. Actually which is not only one of another practice and it is built around the values. Those sets of values are supported to improve the quality of development method. The special thing of these lean values is that those are aid to eliminating the waste of time resources and other project related wastages.
- Eliminate waste
Find and remove the task that does not directly help to the project to be done.
2. Amplify learning
Collaborativeness is the most important concept of this framework so there is multiple feedback coming from that considerable project. As a result, the team improves the quality of software.
3. Decide as late as possible.
The team does not get decisions regarding the project until team members collect most of the information. they are respective of the decisions and those are the last responsible movement.
4. Deliver as fast as possible
Understand the value of all delays and minimize it.
5. Empower the team.
Build the most energized team in an effective environment.
6. Build integrity in
Build software that intuitively makes sense to the users, and which forms a coherent whole.
7. See the whole
Understand what works to be done on your project and take the right kind of measurements to make sure you actually see everything clearly, warts and everything.
“An organization will get what it values, and the Agile Manifesto does us a great service in shifting our perception of value from process to people, from documentation to code, from contracts to collaboration, from plans to action. ”
-Tom & Mary Poppendieck: Agile toolkit-
How to identify waste activities? & Where is the value added?
At the very beginning of the project first it mapped the process then going through that and identified the processable task and discussed each and every task then categorized it as do and do not do. Basically, value-adding activities contribute to the transition of a product from its raw to a completed state in the least possible time, at a minimum cost. For one activity to be considered as value-adding, it needs to meet the following three criteria:
- It aids the product downstream and also it helps to get at least one step closer to completion of the final product.
- When selecting activities, consider whether it adds a value to the client’s and; eventually the customer would like to pay for it.
- The team highly pays attention to the activity that needs to be done right the first time. Actually they hope to go away without any rework. The same as the team and client do not have to waste time and resources on that activity again.
On the other hand, non-value-added activities affect organizational efficiency by delaying the product delivery process. They place a burden on the organization, and therefore customers would not be willing to pay for them. The non-value adding activities fail to meet the criteria from above and are generalized as waste.
Lean & Agile — Ideas that work together
From the first looks of this figure, you can see that Agile is a concept inspired by Lean.Actually agile follows many core Lean concepts.
Focus on Customer Value:
In truly fast-paced organizations, everyone is obsessed with giving value to the customer more than anything else. For this, Agile adds “user stories” and describes the specific features and feedback related to them. This is why user stories are described in a language that captures the needs of the customer, not the developer or designer.
Accelerated methods focus on breaking down the complexity of a project. At Agile, several user stories will be directed into a single “Sprint”, a targeted development cycle that leads to a usable customer feature. Complex user stories with multiple features and benefits are “epics” and are usually completed at multiple speeds.
Sprints usually take about 1–2 weeks. They can be sorted according to customer need. That’s how Lean focuses on the many activities of improving a process that offers great benefits.
An emphasis on flexibility Vs control
Agile pays close attention to resolving complexities while successfully dealing with continuous changes. Successful organizations are very fast and adapt quickly to changing customer needs, competition and markets.A theoretical organization needs a new way of thinking about authority and accountability and approval. It allows a team to make a decision.
Continuous flow of results
Agile is mostly focused on working smarter rather than the harder. It means that not like doing more work in less time it accepts more value with less time. The core of lean also has the same concept. Effective and efficiency through quicker feedback and doing the right thing at once.
“Individuals and interactions over processes and tools.” Agile manifesto.
Actually it is not easy to find or understand waste therefore the team may spend more time and resources doing something and that thing may be of no practical value added to the project. The lean value of Eliminate Waste is supported to find the project activities that are not added value. This eliminates waste starting from Seeing Waste which is the first think tool of Lean.According to the software development perspective,if something is waste actually that doesn’t mean that it’s not useful. It is just not useful for building software. It may be a task which helps the senior manager and that can be a project plan so that she can convince shareholders to keep funding the project. Or maybe the meeting minutes are required for regulators. A statement of work may not be useful for the team, but it could be a required part of a contracting process. Those things may all still be required, but they’re not useful for the project itself. That makes them waste.(So it is essential to have better common sense of the task as well that is my own opinion.)
Merry Popendika, who spearheaded the development of Lean Software, presents in detail the seven major types of waste that occur in software development.Actually better understanding of these waste types leads to achieving effective and efficient software products as well as better understanding among the team members.
Partially done work
One of the most important concepts of the Lean is “At a first time do a task fully completely”.However if that considerable activity does not deliver the value to the user or customer that is waste. Further if customers do not pay for the activity that is also a waste.When it comes to the iterative development methodology, the development team sometimes added the activities into DONE state but the case is that activity is not 100% complete and that is not much with user satisfaction. and it may have rework for another developer or tester in the development team. Those kinds of works are considered a waste.
When it considers the group project it is essential to know the better understanding among the group members. So most teams continue the status sheet and they spend some time there. Those are not related to the development process. but it must be need the team to manage their work well. but there is no need to design that sheet and do not need to use most creative things for that and that is only project management ethics.
In some cases a developer who works on a group project, tries to add a feature which actually is not requested by the client. Actually s/he hopes to get some opportunity to learn something through that kind of work and who is excited about the new technology. Even that may be a very valuable experience for the feature but it does not need to exist directly. So those are waste activities.It is only an opportunity or maybe it is totally waste for the future as well.
Some teams go on with multi tasks, and get out of hand of multi tasks. Team members feel like they already have a full-time job, focus to work parallel on other projects or something plus many additional part-time tasks added on (like support, training, etc.)That may be a case for messing him by himself. on the same project, adds unexpected delays and effort, because context switching requires a lot of cognitive overhead. Now we have another word for this:waste.
When it comes to the software project development there are so may time for waiting for something in somewhere for example tester may waiting for developer completing the development, developer may wait for business analyst who gather the requirement, senior manager may wait for to sit around until someone in the project who finish the work.And also some junior developer trainer may wait for approvement of senior developer or supervisor
When the team doesn’t sit together, people literally have to stand up and walk to their team members in order to have a discussion. This extra motion can actually add days or even weeks to a project if you add up all of the time team members spend walking around.
Test-driven development prevents a lot of defects. Every developer who is “test infected” had that “a ha” moment where a unit test caught a bug that would have been very painful to fix later, and realized that it took a lot less time to write all of the tests than it would have to track down that one bug — especially if a user discovers the bug after the software is released. On the other hand, when the team needs to stay late scrambling to fix bugs that could have been prevented, that’s waste.
- Learning Agile_ Understanding Scrum, XP, Lean, and Kanban