• 消除浪费与软件开发 - [Lean]

    2008-03-16

    消除浪费

    浪费往往是通过价值流的流动和拉动过程使其浮出水面的,各行各业都有不同的办法来消除浪费,有趣的是,不同行业采用的方法出奇地相似。TPS中有“单件流生产方式”,敏捷有“迭代式开发”;TPS中有“看板”,敏捷中有“故事卡”;TPS中有“人性的自动化”,敏捷中有“持续集成”;TPS和敏捷都强调全能小团队……

    前面提到浪费划分为“纯粹的浪费”和“必要的浪费”。前者要彻底消除。后者要认真对待、尽量减少。在软件开发中,测试、集成、重构和管理等都属于这类浪费。下面列出了四个启发模式,帮助我们处理“必要的浪费”:

    • 积极对待,配备少而精的人

    敏捷团队非常重视上面提到的几种浪费,团队中的管理人员和测试人员要比传统团队数量少而且要求更高。

    • 由个人的任务变为团队的任务

    赋予团队成员清晰简单的目标,实现自我管理。团队中几乎所有人都参与到设计、测试和部分集成的工作。代码所有权也被共享。

    • 将工作自动化,区分人和机器的职责

    人工测试和自动化测试相区分,应用持续集成。

    • 工作提前做,频繁做

    测试驱动开发,在早期开始频繁的单元测试、重构和集成。早期就赋予团队成员目标,并通过各种方式确保他们及时了解项目状态。

    消 除浪费的方法是仁者见仁,智者见智。对于软件开发领域,敏捷已经提供了一整套对付浪费的实践。但要注意的是,像在精益五原则一节中的例子提到的那样,敏捷 开发的众多实践是消除浪费的工具,而不是让一个开发团队变得更敏捷的全部。一个敏捷的开发团队未必要一一地执行这些实践,团队也可以发明适合自己的新实 践。有些实践非常基础,需要一开始就采用,而有些实践只需要在它能够对目前消除浪费的目标有贡献时才必要。



    收藏到:Del.icio.us