7 wastes of software development: Difference between revisions
(The LinkTitles extension automatically added links to existing pages (<a target="_blank" rel="noreferrer noopener" class="external free" href="https://github.com/bovender/LinkTitles">https://github.com/bovender/LinkTitles</a>).) |
m (Text cleaning) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
'''7 wastes of [[software development]]''' are the modified version of [[7 wastes of lean]] adjusted to requirements of [[Lean software development]]. They were described by M. Poppendieck and T. Poppendieck. | '''7 wastes of [[software development]]''' are the modified version of [[7 wastes of lean]] adjusted to requirements of [[Lean software development]]. They were described by M. Poppendieck and T. Poppendieck. | ||
Line 82: | Line 66: | ||
In summary, there are several approaches related to software development that can be implemented to reduce waste and improve the efficiency of teams and projects. These approaches include Knowledge Silos, Automation, Continuous Integration, and Agile Methodology. | In summary, there are several approaches related to software development that can be implemented to reduce waste and improve the efficiency of teams and projects. These approaches include Knowledge Silos, Automation, Continuous Integration, and Agile Methodology. | ||
{{infobox5|list1={{i5link|a=[[Lean software development]]}} — {{i5link|a=[[Kanban methodology]]}} — {{i5link|a=[[Muda mura muri]]}} — {{i5link|a=[[Quality management]]}} — {{i5link|a=[[Business process reengineering]]}} — {{i5link|a=[[Agile project management methodology]]}} — {{i5link|a=[[Genchi genbutsu]]}} — {{i5link|a=[[Continuous improvement]]}} — {{i5link|a=[[Work simplification]]}} — {{i5link|a=[[Annual report]]}} }} | |||
==References== | ==References== | ||
* Poppendieck M., Popendieck T. (2003), ''[https://books.google.ru/books?id=8o1eom6ifIMC&hl=pl Lean Software Development: An Agile Toolkit]'', Addison-Wesley Professional | * Poppendieck M., Popendieck T. (2003), ''[https://books.google.ru/books?id=8o1eom6ifIMC&hl=pl Lean Software Development: An Agile Toolkit]'', Addison-Wesley Professional | ||
* [https://www.cs.colorado.edu/~kena/classes/5828/s12/presentation-materials/schweikertmarcbubernakchris.pdf Presentation of Lean Software Development tools and approaches] (PDF) | * [https://www.cs.colorado.edu/~kena/classes/5828/s12/presentation-materials/schweikertmarcbubernakchris.pdf Presentation of Lean Software Development tools and approaches] (PDF) | ||
[[Category:Lean management]] | [[Category:Lean management]] |
Latest revision as of 16:04, 17 November 2023
7 wastes of software development are the modified version of 7 wastes of lean adjusted to requirements of Lean software development. They were described by M. Poppendieck and T. Poppendieck.
7 wastes
1. Work done partially
- The software that was never finished has tendency to become obsolete.
- Partially created code cannot be tested, so we don't know whether it will work.
- It cannot be also checked whether it will solve the business problem.
- Until the work is done, the value isn't created - there are costs, but no added value
- Partially done work increases risk and waste
2. Extra processes
If the process works smooth, some managers would like to add some paperwork to document it. This destroys process. Some documentation is required. Knowledge should be collected as lessons learned. But it cannot compete for resources with creating value for the customer.
The paperwork should be done only if someone needs it to perform tasks creating value for the customer. Just because the paperwork is required doesn't mean it adds value.
3. Extra features
Adding features just in case increases risk, makes software more complex, and what's the most important: doesn't creates value for customer, or at least customer won't pay for it. Adding extra feature is only beginning of the waste. The feature has to be tracked, compiled, integrated, tested.
The extra code may be nice, but is customer really needs it, or it's just ego of programmer?
4. Task switching
Workers that are in many projects in one time have to switch tasks. This limits their performance. There are methods like Single Minute Exchange of Project (see: article on Lean product development), but the performance still is lower than in one project. On the other side, if the worker time isn't used fully in one project the performance is lower anyway, so why to bother.
There should be decisions made by managers and team leaders. In some cases it is better for the project to have workers in one project only. Sometimes it's better for the company to share employees between projects.
5. Waiting
Delays happen on every stage of the project: starting, staffing, documenting requirements, reviews, approvals, testing, deployment, etc. Time cannot be managed - it flows with constant speed. You can only organize work to utilise it fully.
6. Motion
Any motion requires resources. If the team works in many places and has to meet every week, the costs of transportation quickly become huge. But motion is not only there. Other examples of waste are: not accessible customer to discuss features, not complete documentation, etc.
7. Defects
Defects are the most obvious waste, however many of them aren't notices. Programmers can remove them before someone finds it. But the time was lost. But the faster the problem will be identified, the smaller the waste. Detection should be as soon as possible.
Discussion about 8th waste
The authors added originally also the 8th waste - management activities. They claim that management activities don't add value to a product and therefore are waste. Well, if so, who is responsible for implementing lean software development?
It doesn't matter whether decisions are made by "manager" or "employee" or better say "knowledge worker". The fact is decision making is managerial activity. We can imagine company without managers, but not without management.
Advantages of 7 wastes of software development
The 7 wastes of software development are defects, overproduction, waiting, non-utilized talent, transportation, over-processing, and inventory. These wastes are used to identify and eliminate unnecessary activities that can negatively impact the software development process. Below are some of the advantages of the 7 wastes of software development:
- Defects: Identifying and addressing defects early in the software development process can reduce the amount of time and money spent on re-working products.
- Overproduction: By avoiding overproduction, developers can focus on producing the quality of software that meets customer needs.
- Waiting: Identifying areas of the software development process where resources are idle can help reduce wasted time and improve productivity.
- Non-utilized Talent: Identifying areas where the team is not utilizing their skills to their fullest potential can help increase the efficiency of the software development process.
- Transportation: Avoiding unnecessary transportation of resources and materials can help reduce costs and improve the efficiency of the software development process.
- Over-processing: Identifying areas where resources are being over-processed can help reduce wasted time and improve productivity.
- Inventory: Identifying areas where too much inventory is being held can help reduce costs and improve the efficiency of the software development process.
Limitations of 7 wastes of software development
The 7 wastes of software development are: Defects, Re-work, Waiting, Over-production, Over-processing, Motion and Transportation. These wastes can cause a significant amount of time and money to be wasted on software development. However, there are several limitations to the 7 wastes of software development:
- Defects: While defects are a major cause of waste, it is difficult to identify the root cause of defects due to their complexity.
- Re-work: Re-work can be difficult to identify and quantify, as the amount of time spent on re-work can be hard to track.
- Waiting: Waiting can be caused by external factors beyond the control of software developers, making it hard to identify and eliminate.
- Over-production: Over-production is difficult to identify and quantify, as it is hard to accurately measure how much of a product is actually necessary.
- Over-processing: Over-processing can be difficult to identify, as it is hard to determine how much effort is necessary to complete a task.
- Motion: Motion can be difficult to identify and quantify, as it is hard to track the amount of time spent on unnecessary movement.
- Transportation: Transportation can be difficult to identify, as it is hard to track the amount of time spent on transporting materials or personnel.
The 7 wastes of software development are a modified version of the 7 wastes of lean, adjusted to the requirements of Lean software development. Besides these 7 wastes, there are other approaches related to software development that can be used to improve the efficiency of teams and projects. These include:
- Knowledge Silos: This approach encourages developers to share their knowledge with the rest of the team, which helps to avoid duplication of effort and reduce wasted time.
- Automation: Automation can be used in software development to improve efficiency and reduce the amount of manual labor required. Automation can also minimize the potential for errors due to manual data entry.
- Continuous Integration: This process involves integrating code developed by multiple developers into a single code base. This reduces the potential for errors and ensures that the code is always up to date.
- Agile Methodology: Agile development is a type of project management methodology that emphasizes collaboration and frequent feedback from stakeholders. This helps to reduce waste by ensuring that the project is always on track and that any changes can be quickly implemented.
In summary, there are several approaches related to software development that can be implemented to reduce waste and improve the efficiency of teams and projects. These approaches include Knowledge Silos, Automation, Continuous Integration, and Agile Methodology.
7 wastes of software development — recommended articles |
Lean software development — Kanban methodology — Muda mura muri — Quality management — Business process reengineering — Agile project management methodology — Genchi genbutsu — Continuous improvement — Work simplification — Annual report |
References
- Poppendieck M., Popendieck T. (2003), Lean Software Development: An Agile Toolkit, Addison-Wesley Professional
- Presentation of Lean Software Development tools and approaches (PDF)