无论你是怎样的天才,都无法开发出几千万行程序的软件。大规模的软件必须要有足够的人力资源,并把人力资源有效地组织起来。软件小组的组织是有效开发软件的第一步。
小组的组织核心是相互间的交流。协调工作的成本是脑力劳动的主要组成部分。这是由人与人之间的交流途径和方式决定的,图4-7表达了人与人之间的交流途径。一般地,L 个人组成的项目组的最大协调或交流途径有
图4-7 人数与交流途径数
只有一个人的项目,如果所有的劳动都满足期望的(成果和质量)要求,工作是有效的,可以不考虑协调(管理)成本,也不用设立管理岗位。
对于两个以上的小组,就需要有管理成本(overhead),管理成本源于独立从事管理和协调工作的管理者花费的时间,或每个员工所花费在会议、讨论和交流上的时间。
一个团队的管理成本,可定义为[4]
式中,协调率r是指用于非业务工作与管理工作花费的成本占总成本的比例。
在协调率r不变的情况下,软件开发中人的组织形式直接影响管理成本,当两个人为一组时,交流途径数n=1,h=r(2×(2-1))=2r。敏捷方法的结对编程(参见4.5.4节)——是比较高效的工作模式。
三个人为一个小组时,h=r(3×(3-1)/2=3r。如果r>0.3,那么,h 接近于1.0,即大于一个人的工作量。如果考虑设立一个专门从事交流的人,那么,就只剩下两个程序工作者。两个技术工作者可以直接交流,而不需要管理者。因此,三人小组设立专职协调者是多余的,或者,管理者也必须承担技术开发工作。(www.xing528.com)
4人小组的情况比3人稍好点,也不适合于建立专职的协调人员。
5人小组的最大交流途径数是10个,h=10r,如果r大于0.1就可以设立一个专职的交流协调者,从而把交流途径变为4——其他人只通过管理者交流,而不需要私下交流(10条交流途径)。管理成本占总成本的1/4。
7人小组的最大交流途径数是21个,h=21r,如果r大于0.05就可以设立一个专职的协调者,从而把交流途径变为6——其他6个人只通过管理者交流,而不需要私下交流。实际管理成本占总成本的1/6。
9人小组的最大交流途径数是36个,h=36r,如果r大于0.03就可以设立一个专职的交流协调者,从而把交流途径变为8——其他8个人只通过管理者交流,而不需要私下交流。实际管理成本占总成本的1/8。
一般来讲,最佳的软件小组人数是5~9人,最佳为7人。
如果一个软件企业都按每7人一个小组进行结构分解,对于一个1 000人的软件企业,需要多少个管理者呢?按每个人管理7个人为基准,那么,企业就必须被分解为x 层的树形结构,从而有:1 000=7x
求得x=3.54,需要三个或四个管理层次,使得所需的协调管理人员位于:
(1+7+72,1+7+72+73)=(57,397)人之间
取中间数,一个1 000人的软件企业也需要200多人的专职协调管理人员。人均管理成本为200/1 000=1/5,即协调系数r起码为0.2。如果考虑到软件工程技术人员还要相互交流,r必定会大于0.2。
管理和协调工作不直接产生工作效益,但是,没有管理和协调,团队的工作总效率会下降,甚至处于无序的状态。因此,需要进一步讨论项目组的组织形式。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。