对软件工程来说,个人的效率对整个团队非常重要,然而我认为对软件工程来说很难准确测定一个人的效率。软件工程不像其他传统行业,能通过业绩直观的看出一个人的效率。每个人负责实现整个工程中的部分子功能,但是这些子功能并不能一概而论。某些实现涉及到整个软件核心的设计,而某些只需调用已有函数实现具体功能,即使两人完成速度相差无几或相差甚远,也不能以此来判断效率的高低。
我想,在利用n*30评分时,可以采用奖惩并用的方式。首先在项目开始前每人将获得25分的基础分,在进行需求分析完成分工后,会对每个人设定具体的完成时间(这里可以先让个人自己设定,再经过大家讨论),每个人应当争取在规定时间内完成,若在规定时间内未完成则要扣掉相应的分数。在经过一段开发时间后集体对每个人进行评比,要求每个人选出几个在工作中表现优异效率高的人(不能选自己),得票较多的人可以分享剩余的5*n分及某些人被扣掉的分数。
这里并没有考虑每个人工作量大小的不同,但是每个人的deadline都是经过所有人讨论且个人认可的,应当具有责任意识。根据心理学的观点,人有损失厌恶的特性,相比获得奖励的喜悦,人们往往对损失的恐惧更加强烈,因此设立扣分的机制,即使任务的分派不太公平时,也会迫使成员尽力实现。为弥补任务分派不公平可能造成的损失,再利用民主的票选奖励机制,即使因为任务负担过重未能及时完成,也能根据大家的评判挽回损失。且民主投票不投自己的方式会迫使每个人在关注自己分内任务的同时关注团队每个部分的状态,这有利于每个人对整个项目的理解。
我认为对软件工程来说以上方法未必完全公平,但以奖惩制度代替单纯的评分制度有利于团队项目的推进乃至最终完成,在任务指派未必公平的前提下即保证了项目的进度又能较为客观的反映个人效率。