InfoQ: 速览:软件开发中的7大浪费

来源:百度文库 编辑:神马文学网 时间:2024/04/29 19:38:13

速览:软件开发中的7大浪费

作者 Mike Bria译者 金毅发布于2009年8月13日 上午9时33分

社区
Agile
主题
消除浪费
标签
精益

精益软件开发的基本原则是追求浪费最小化。TPS总结了制造业的7种主要浪费,而Poppendiecks已经把它们引入到我们软件开发的领域中。Jack Mulinsky最近在agilesoftwaredevelopment.com上发表了系列文章对这些浪费进行一一介绍。

该系列文章的第一篇讨论了部分完成工作这一浪费。软件中的这种情况相当于精益制造业中的“进行中的清单”,Mulinksy认为这是所有浪费中最极品的部分。他对“进行中的工作”这种浪费归纳如下:

  • 已完成但尚未签入的代码
  • 没有相关说明文档的代码
  • 未测试的代码
  • 没人使用的代码
  • 被注释掉的代码

第二篇文章中,参考那个众所周知的统计数据:在现有的软件应用程序中,多达三分之二的功能几乎或从未被使用过,Mulinsky提出额外的功能(制造业中的“生产过剩”)这一浪费。除此之外,他还指出什么是直接浪费(开发的花费而不是人员)以及什么是间接浪费(更多的功能意味着更多的代码以及更高的维护复杂度)。

Mulinsky的第三篇文章关注的是软件再学习/返工的浪费,这对应于精益制造业理论中的“额外处理”这一浪费。他用了这样一些浪费的例子来描述了他的想法,包括:

  • 糟糕的计划
  • 低劣的质量
  • 在不同的任务间切换
  • 不足的沟通和知识积累
  • 没有相关说明文档的代码

这一系列中的第四篇(写此文时最新的部分)讨论的是交接带来的浪费,软件中的交接相当于制造业中的“运输”。他提到了以下一些可能产生浪费的技术方面的例子:

  • 开发人员之间的代码交接
  • 开发人员和测试人员间软件的交接
  • 软件从开发到部署的交接

Mulinsky应该很快会继续其余3个软件浪费的话题:在不同的任务间切换延期缺陷。软件浪费这一概念,是由Mary Poppendieck和Tom Poppendieck在他们两本非常出色的精益软件方面的书《Lean Software Development: An Agile Toolkit for Software Development Managers》和《Implementing Lean Software Development: From Concept to Cash》中提出的。如果这是你和这一概念的第一次亲密接触,敬请期待Mulinsky的后续大作。

同样,对那些很熟悉这些观点的朋友们,不妨分享一下你们觉得浪费是怎么在软件开发中产生的,你们又是如何消除它们的?这会对大家都有很帮助。