与制造业对比,软件没有代码的(重复)制造过程,软件是开发出来的,称为软件开发过程。软件开发项目组所经历的“需求分析、设计、编码、测试、交付”等过程,就自然而然地成为生产的核心,这引发了软件能否进行大规模的生产的讨论。
卡内基·梅隆大学的软件工程所(SEI)认为,软件的规模化生产也要从“以个体和小项目组的代码开发”转变为“生产线方式的大规模开发”。由此需要建立良好的“软件开发过程”把人、方法和工具有效地组织起来,提高软件生产力,如图9-3所示。
图9-3 用软件过程将生产要素联合起来
软件过程包括软件企业层面的组织结构、项目层面的组织与管理、项目小组层面的管理、以及个体成员的管理。人们期望软件企业能像福特汽车的生产流水线那样,实现软件的流水线生产。(www.xing528.com)
一方面,流水线生产的根本问题是如何知道最终产品的质量与每个生产岗位上工人的生产质量是什么关系?各级管理层的工作能力与质量的关系?与企业的组织结构和项目的组织方式是什么关系?这样,就可以知道改进哪些生产岗位(而不是全部岗位)的质量,进一步改进企业的结构、改进项目组的组织形态。
另一方面,生产一样的产品,可以采用不同的流水线——即设置不同的岗位、工作流程、以及管理岗位。如果能知道哪种流水生产的成本低、质量好,那么,整个企业或全行业就可以改进自己原先的流水线,以达到最佳的生产方式。
从宏观的角度看,每个软件开发也是一个流水线——需求、设计、编程、集成、测试、发布——时间顺序上就是一个典型的流水线。这样,就可以借用传统工业的统计学方法,观察软件劳动的每种岗位和流程的花费(时间和成本)、质量(例如,每编写1000行代码有多少个缺陷等)的统计数据,然后,研究这些岗位的先后次序、相互间的质量影响、以及对最终产品质量的影响。由此,通过改进每个员工的个体能力、改进每个软件开发小组的组成方式、项目的组织过程以及企业的组织过程,从而提高整个企业的软件生产能力。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。