一.引论
棘轮效应(ratchet effects)一词最初来自对苏联式计划经济制度的研究。在计划体制下,企业的年度生产指标根据上年的实际生产不断调整,好的表现反而由此受到惩罚(因此,聪明的经理用隐瞒生产能力来对付计划当局)。这种标准随业绩上升的趋向被称为“棘轮效应”。其实,这种现象普遍存在于经济、管理领域,当然也存在于项目管理过程中。下面,我们主要研究一下软件项目管理过程中的棘轮效应及其对策。
二.产生的原因
在软件开发过程中,如何评价开发人员的业绩是一个非常棘手的问题。项目经理总是希望评价标准尽可能客观一些,因为评价标准越客观,对开发人员的努力水平的推断越准确,激励效果越明显。由于软件项目开发本身的信息不对称性,开发过程中存在着各种各样的不确定因素,项目经理对开发人员的评价标准是逐渐完善的。即通常情况下,项目经理是将开发人员过去的业绩作为评价标准,并以此制定新的工作计划。然而,开发人员的水平参差不齐,努力程度也高低不一。比如说,有一个开发人员能力水平高或努力工作,提前完成了项目经理分配给他的任务;而另一个开发人员能力水平低或工作偷懒,结果没有按时完成任务。那么,项目经理有可能认为前者的工作量小,需要提高工作量;后者的工作量大,需要减少工作量。这时,“棘轮效应”出现了:作为理性的高水平或努力工作的开发人员,是不会选择继续努力工作的,因为他们清楚,越努力项目经理评价他的业绩标准越高,自身利益损失越大。
三.产生的三个必要条件
下面我们简要描述一下“棘轮效应”产生的三个必要条件。
第一,项目经理和开发人员的合作具有长期性。在临时性的小型软件项目组中,由于开发周期很短,工作量小,开发人员的努力程度或水平差异没有明显的区别,项目经理也没有开发人员过去的业绩作为参考来评价其现在的业绩。或者在大型软件项目中,由于不同的技术支持需要,项目组常常从不同部门借调人员加入(完成工作后借调人员回原部门)。这部分人员具有很大的流动性,他们过去的业绩也不为项目经理所了解。在类似的情形下,“棘轮效应”是不会发生的。
第二,项目经理和开发人员之间存在着信息不对称。“棘轮效应”发生的关键在于项目经理对如何看待开发人员的业绩,缺乏一个客观的评价标准。造成这种现象的原因关键又在于双方之间的信息不对称。项目经理想建立一个客观的评价业绩标准,但他不知道开发人员各自的真实水平和努力程度;项目组成员清楚自身的能力和努力状况,但很难让项目经理相信他所拥有的能力水平和努力程度是所有成员中最大的(因为项目经理倾向于相信自己的评价标准是客观公正的)。
第三,开发人员是“理性人”。所谓“理性人”,是指能充分理解自身利益所在,并能采取正确对策去最大化谋取自身利益的人。如果“理性人”的假设不成立,软件开发人员即使知道努力工作的后果是项目经理提高其业绩评价标准,他仍然会继续努力工作。此时,不存在“棘轮效应”。
四.相应的对策
1.工时研究与标准化
我们可以在这里引入泰罗的科学管理理论——工时研究与标准化。它不是简单地对每位开发人员完成一项任务作出时间上的统计,而是把一项任务分解成各种基本的步骤,并作测试,然后根据其合理性,重新进行安排,以寻求最佳开发方式。采用工时研究的好处是,通过任务的分解,去掉无用的步骤,可以对高水平的开发人员在软件开发过程中的每一个基本步骤进行观察,并记录下完成每个步骤所需的时间。在所记录的时间上,再加上不可避免的耽搁和停顿所需的百分比,所得到的时间就是完成这个基本步骤的标准时间。项目经理可以以此作为评价开发人员业绩的标准。有了这个标准,开发人员就不用担心自己的努力得不到承认,“棘轮效应”也就不会发生了。当然,由于软件开发本身所固有的特性,这个标准不可能是精确的,开发工具的选取、开发环境的好坏、业务需求的清晰与否、软件质量的高低,等等,都可能改变标准时间的结果。
2.加强项目经理与开发人员的沟通
一.引论
棘轮效应(ratchet effects)一词最初来自对苏联式计划经济制度的研究。在计划体制下,企业的年度生产指标根据上年的实际生产不断调整,好的表现反而由此受到惩罚(因此,聪明的经理用隐瞒生产能力来对付计划当局)。这种标准随业绩上升的趋向被称为“棘轮效应”。其实,这种现象普遍存在于经济、管理领域,当然也存在于项目管理过程中。下面,我们主要研究一下软件项目管理过程中的棘轮效应及其对策。
二.产生的原因
在软件开发过程中,如何评价开发人员的业绩是一个非常棘手的问题。项目经理总是希望评价标准尽可能客观一些,因为评价标准越客观,对开发人员的努力水平的推断越准确,激励效果越明显。由于软件项目开发本身的信息不对称性,开发过程中存在着各种各样的不确定因素,项目经理对开发人员的评价标准是逐渐完善的。即通常情况下,项目经理是将开发人员过去的业绩作为评价标准,并以此制定新的工作计划。然而,开发人员的水平参差不齐,努力程度也高低不一。比如说,有一个开发人员能力水平高或努力工作,提前完成了项目经理分配给他的任务;而另一个开发人员能力水平低或工作偷懒,结果没有按时完成任务。那么,项目经理有可能认为前者的工作量小,需要提高工作量;后者的工作量大,需要减少工作量。这时,“棘轮效应”出现了:作为理性的高水平或努力工作的开发人员,是不会选择继续努力工作的,因为他们清楚,越努力项目经理评价他的业绩标准越高,自身利益损失越大。
三.产生的三个必要条件
下面我们简要描述一下“棘轮效应”产生的三个必要条件。
第一,项目经理和开发人员的合作具有长期性。在临时性的小型软件项目组中,由于开发周期很短,工作量小,开发人员的努力程度或水平差异没有明显的区别,项目经理也没有开发人员过去的业绩作为参考来评价其现在的业绩。或者在大型软件项目中,由于不同的技术支持需要,项目组常常从不同部门借调人员加入(完成工作后借调人员回原部门)。这部分人员具有很大的流动性,他们过去的业绩也不为项目经理所了解。在类似的情形下,“棘轮效应”是不会发生的。
第二,项目经理和开发人员之间存在着信息不对称。“棘轮效应”发生的关键在于项目经理对如何看待开发人员的业绩,缺乏一个客观的评价标准。造成这种现象的原因关键又在于双方之间的信息不对称。项目经理想建立一个客观的评价业绩标准,但他不知道开发人员各自的真实水平和努力程度;项目组成员清楚自身的能力和努力状况,但很难让项目经理相信他所拥有的能力水平和努力程度是所有成员中最大的(因为项目经理倾向于相信自己的评价标准是客观公正的)。
第三,开发人员是“理性人”。所谓“理性人”,是指能充分理解自身利益所在,并能采取正确对策去最大化谋取自身利益的人。如果“理性人”的假设不成立,软件开发人员即使知道努力工作的后果是项目经理提高其业绩评价标准,他仍然会继续努力工作。此时,不存在“棘轮效应”。
四.相应的对策
1.工时研究与标准化
我们可以在这里引入泰罗的科学管理理论——工时研究与标准化。它不是简单地对每位开发人员完成一项任务作出时间上的统计,而是把一项任务分解成各种基本的步骤,并作测试,然后根据其合理性,重新进行安排,以寻求最佳开发方式。采用工时研究的好处是,通过任务的分解,去掉无用的步骤,可以对高水平的开发人员在软件开发过程中的每一个基本步骤进行观察,并记录下完成每个步骤所需的时间。在所记录的时间上,再加上不可避免的耽搁和停顿所需的百分比,所得到的时间就是完成这个基本步骤的标准时间。项目经理可以以此作为评价开发人员业绩的标准。有了这个标准,开发人员就不用担心自己的努力得不到承认,“棘轮效应”也就不会发生了。当然,由于软件开发本身所固有的特性,这个标准不可能是精确的,开发工具的选取、开发环境的好坏、业务需求的清晰与否、软件质量的高低,等等,都可能改变标准时间的结果。
2.加强项目经理与开发人员的沟通