原IBM在马里兰州盖兹堡的系统技术主管Joel Aron,在他所工作过的9个大型项目的基础上.对程序员的实施效率进行了研究。他根据程序员和系统部分之间的交互划分这些系统,得到实施效率表。
一般说来,底层软件(操作系统、编译器、嵌入式系统、通信软件)的接口复杂度要比应用软件(MIS、操作维护软件、管理软件)要高得多。
在估算软件开发项目工作量时要充分考虑任务的类别和复杂程度.因为抽象的、接口复杂的系统开发过程.其沟通消耗必然大。另外,有深厚行业背景的软件.要考虑开发人员为熟悉行业知识所需付出的沟通消耗。
2.2 团队规模与实施效率
需要协作沟通的人员的数量会影响开发成本.因为成本的主要组成部分是相互的沟通和交流,以及更正沟通不当所引起的不良结果(系统调试)。
人与人之间必需通过沟通来解决各自承担任务之间的接口问题.如果项目有13个工作人员.则有nx(n—1)/2个相互沟通的路径。假设一个人单独开发软件.年实施效率为10 000行代码,而每一条沟通路径上每年消耗掉的工作量可折合500行代码.则团队规模和沟通消耗以及实施效率存在以下关系。
2.3 团队的默契度与实施效率
团队的默契程度对软件实施效率影响很大。一个经过长期磨合、相互信任、形成一套默契做事方法和风格的团队.
可能省掉很多不必要的沟通.其合力甚至可以超越这个团队本身,而做出一些平时他们连想都不敢想的成就来。相反,初次合作的团队因项目成员各自的背景和风格不同、成员间相互信任度不高等原因,就要充分考虑沟通消耗。
营造一个配合默契的团队并没有一个简单易行的规定和过程,但是有~个必不可少的因素.那就是团队中的所有成员对这个小组承担的全部义务,成员乐于为整个团队而放弃自己的利益和志向.这样整个团队就一定有很强的内聚力,而且一个人置身于氛围良好、合作默契的团队中心情一般都较好,这种良好的氛围所能带来的能量是不可估量的。
所以持续良好的沟通和交流是一个团队的无形资产.而由之形成的一个自然、稳定、默契的开发团队就是软件企业的核心竞争力所在。