信息系统建设 是智力密集、劳动密集型项目,受人力资源影响最大,项目成员的结构、责任心、能力和稳定性对项目的质量以及是否成功有着决定性的影响。人在信息系统项目中既是成本,又是资本。一般来说,人力成本占信息系统项目成本构成的主要部分,这就要求我们从成本角度去衡量人力资源,尽量使人力资源的投入最小、产出最大。
在项目开发中,人越多越好吗?当项目进度延迟时,是否应该增加人力投入?效果如何?会不会越帮越忙?这些问题是人力计划要解决的。
制定信息系统项目的人力计划,主要基于工作量和进度预估。一般来讲,工作量与项目总时间的比值就是理论上所需的人力数。但选取和分配人力有许多值得研究的问题。许多学者从软件工程的角度提出了一些思路,比如“人员——进度权衡定律”,信息系统项目可以此为参照,从项目管理的角度分析人力资源的平衡情况。
可借鉴的经验
1.人员——进度权衡定律
著名学者Putnam在估算软件开发工作量时得出公式:E=L3(C3Rt4d),其中E表示工作量,L表示源代码行数,Ck表示技术状态常数,td表示开发时间。在这里,工作量的单位是人年,进度的单位是年。从公式中可知,软件开发项目的工作量(E)与交付时间(td)的4次方成反比,显然,软件开发过程中人员与时间的折衷是十分重要的问题。Putnam将这一结论称为“软件开发的权衡定律”。
我们知道,信息系统项目的建设时间主要取决于应用软件的开发时间,我们将这种人员与进度之间的非线性替代关系称为“人员——进度权衡定律”。
2.Brooks定律
曾担任IBM公司操作系统项目经理的F.Brooks,从大量的软件开发实践中得出了另一条结论:“向一个已经拖延的项目追加开发人员,可能使它完成得更晚”。鉴于这一发现的重要性,许多文献称之为Brooks定律。这里,Brooks从另一个角度说明了“时间与人员不能线性互换”这一原则。
对上述两个定律的合理解释是,当开发人员以算术级数增长时,人员之间的通信将以几何级数增长,从而可能导致“得不偿失”的结果。一般说来,由N个开发人员组成的小组要完成既定的工作,相互之间的通信路径总数为C2N=N(N-1)/2,而通信是需要时间的。所以,当新的开发人员加入项目组之后,原有的开发人员必须向新来的成员详细讲解某个活动或工作包的来龙去脉。由于信息系统开发具有较强的个人风格,所以交流沟通的时间更容易拉长,而后来者还不一定能达到原来开发人员的工作质量。
3.用做人力计划的Rayleigh-Norden曲线
图1是IS项目不同开发阶段的人力分配经验模型。图中以横坐标表示距开发起点的时间,纵坐标代表在不同时间点需要的人力。虚线画出的矩形显示了平均使用人力所造成的问题:开始阶段人力过剩,造成浪费(①),到开发后期需要人力时,又显得人手不足(②),以后再来补偿,已为时过晚(③),甚至可能如Brooks定律所说,导致越帮越忙的结果。
图1 用做人力计划的Rayleigh-Norden曲线
如何平衡人力计划?
信息系统项目的人力分配大致符合Rayleigh-Norden曲线分布,呈现出前后用人少、中间用人多的状况。然而,信息系统开发人员并不是想找就能找到的。因此,在制定人力资源计划时,就要在基本按照上述曲线配备人力的同时,尽量使某个阶段的人力稳定,并确保整个项目期人员的波动不要太大。我们称这一过程为“人力资源计划的平衡” 。
下面举例说明人力资源计划平衡的方法。假设有一个学籍信息管理系统已经立项,由于系统较小,准备采用原型法开发,并拟定了一个带有各子活动工期和人力需求的网络图(图2)。我们假设参加这个项目的所有成员都是多面手,也就是说,项目成员之间是可以相互替代的。
图2 人力资源需求网络图
如果不采用项目管理方法,一般人们都希望各项活动尽早开始、尽早结束。现在我们就假设网络图中每一活动在其最早开始时间执行,基于此,我们可以绘制相应的人力资源分配图(图3)。