现代软件工程 10 绩效管理

[现代软件工程 讲义 ]

我们前文讲了怎样衡量软件工程师的能力,  工程师如何成长, 如何证明自己的成长, 等等. 这些都是在一个独立的, 不受外界干扰的空间中做出来的判断。 我们假设一个有能力的工程师, 到了另一个团队, 仍然是一个有能力的工程师。

如何衡量个人在团队中的绩效?

如果一个工程师能够成长,他/她就应该在团队中发挥较大的作用。但是一个团队中的每一个人都有各自的努力和作用, 如何衡量个人在团队中的绩效呢?  我们看看别的行业的例子:

• 一群人把一堆砖头从A地搬到B地。

• 一个剧组排演话剧     (有导演, 有主角, 有配角, 有舞美设计, 有灯光师, 角色能随意替换么?)

• 一群画家集体创作 “百里长江图”     (你画一个局部, 我画一个局部, 如何构成一部好作品?)

• 一群医生/护士轮流值夜班     (有人值班一个晚上抢救了几个病人, 失败了几次;也有人值班时没人来求医, 谁好?)

• 一群老师教课     (有人讲得难, 有人讲得容易, 有不同的课程, 谁最有效率?)

• 一群编辑在出版社里出书     (有人碰到好题目, 有人碰到不靠谱的作者, 有人的书叫好,有人的书叫座, 有人的书冷门但是有热情,  谁是好编辑?)

• 一群学生做软件工程项目

 

这篇博客讲的是从管理者的角度出发如何管理一群人的绩效。  一群人在一起做事, 事成之后, 就有排座次, 论功劳的问题 - 在有些团队里, 事成之前就为功劳的事吵翻了 Smile 

软件团队如何做人员的绩效管理? 这个问题较难回答, 因为所有人的工作被集成在一个软件产品中, 互相依赖, 产品功能被用户赞扬或批评, 都不能简单地完全对应于某一个人的工作。 有些功能看起来好, 有人会说 - 因为这个很容易…  有些功能用户不喜欢, 当事人会说 -

“换别人来做, 可能还不如我呢.” 或者,

“这是底层的问题”, 或者

“PM 根本就没设计好” 或者

“测试人员没有好好测!” 当然, 还有 –

“用户太蠢了"。。。  

 

在软件工程这门课中, 几个学生组成一个小组, 干活多的人和干活少的人都得到一样的 “团队成绩”, 这似乎不利于调动积极性。 为了解决这个问题, 我给每个团队一些浮动的分数 - 相当于基本工资之外的奖金, 大家决定怎么分这个“团队贡献”的奖金。

 

有人会说, 根据工作量来算就好了!这会出问题 - 以前我写过:

今天一个做技术推广的朋友说他的老板非常重视“量的管理”,“质” 则次之。

这使我想起偶尔看到一本书中的一段回忆文字,虽然不是 IT 行业,但是有异曲同工之妙:

“。。。他是多年在联合国工作的资深外交人员,对议事规则相当熟悉,不断要求上台发言。... 他在代表团内始终是副代表代理常任代表,而他的待遇则依照在联合国内发言时间的多寡做决定。 …他每天游走于联合国大厦各会议室间,进门后即登记发言,随即静听先登记各代表发言内容,他不需准备,轮到他时即席演说,最少三十分钟,随即到次一会议室照样发言,…第二天将有关速记纪录中他的发言辑录起来,月底向祖国报销,根据发言数量由政府核发薪资
十月二十五日下午,大会中他将这项技术发挥尽致,多次依照议事规则相关条文要求发言,每次发言必长,引起与会代表极度反感。”

另外在软件行业, 如何衡量工作量这本身就是一个大问题.

  1. 根据每人代码量, 每天统计进度? 有大牛报告 - 今天我重构了原来的代码, 删掉了原来的2000 行多余的程序, 那我今天的贡献是 负的两千?!
  2. 注释, 空行算么? 如果算的话, 移山公司的果冻同学就高兴了, 他每天快乐地写注释, 边写边说 - 今年旅游的机票钱有了!
  3. 根据目标码大小? 那我们不能用库函数了?

有人建议按照角色来定位, 例如有猪, 鸡和鹦鹉等, 问题是大多数鹦鹉都说自己是鸡, 剩下的觉得自己是猪, 而且分量很重!  

有人建议根据工作时间来衡量,  这规定一宣布, 大家都开始比谁走得晚,  另外,  我周末的时候一直在想工作上的事, 这算工作时间么? 

在统计技术支持人员的绩效时, 有些公司主要考虑他们接到用户电话后处理问题的时间长短。这时有聪明的员工往往拿起电话后, 说: "你好!” 然后马上挂断电话。 顾客们虽然摸不着头脑, 但是技术人员的 "与顾客通话时间" 则大大降低。 这样的 “好” 绩效, 最后对公司有利么? 

看来似乎所有的衡量方法都有致命的空子可以钻。 在 <人件> 这本书中, “衡量劳动生产率” 和 “UFO” 是放在同一个小标题下的. 然而, “任何一种衡量方法都比完全不量要好” - 书中说。

这次《现代软件工程》上课的几个团队都有自己的点子:

第一组(seven):  我们可以按照以上的9级来分,但是对于我们而言,大家在很大程度上都是同一级的劳动者....所以我们可以更加细分同一级的排名,比如将整个任务分为等量的小任务,每个人负责其中的一个,而最终大家的排名可以通过完成这样任务的个数来决定。关于如何评价是否完成“任务”,可以通过功能性、是否准时来评价;而且当整个工程完结的时候,我们可以做一个review,包括功能、性能和代码的评价,然后大家之间讨论互评。

 

第二组(霸王):  

对于浮动分数,可以通过每个职位对于团队的贡献来添加。队友之间根据各自的贡献给出排序,最后汇总得分。

第三组 (铷铯):

一群学生做软工项目 (PM, Dev, Test),   PM:0.3(n*30)分,   DEV: 0.5(n*30)分   test:0.2(n*30)分

 

第四组 (take it & go):

在团队合作中每个成员的贡献度不仅仅取决于他的工作量,而且还取决于这份工作对团队的意义有多大。我认为贡献度的计算应遵循如下公式:

贡献度 = 工作量 × 工作的影响力 × 工作的不可替代性

这个等式给我们的评测提供了一个方向。与直接估计贡献度相比,分别估计三个分量显得更可操作,准确性也更高。

          //评点: 如果大家都想做 “不可替代的工作”, 怎么办?

第五组(banana):

关于管理体系,可以天花乱坠的说很多,但实际和理论会差的很远,我们并不能完全按照一个专业团队去执行。
大四是一个美好休闲的时光,很难要求大家训练有素地执行进度,我们只能尽可能友情提示大家一起干一些事,但我觉得做完整个工程应该没有问题。

我个人觉得第五组的同学最适合去垄断性国企。 Smile

 

当然, 在这片神奇的土地上, 还有这样的事情: (从 http://weibo.com/trawor截屏而来)

image

 

我以前听说过第一个网站, 但是没用过。 我想象有两个团队:

第一个团队说: 我们花了几个月的时间, 几易其稿, 搜集大量用户反馈, 做成这样。。。

第二个团队说: 我们一个星期就搞定了, 主要用了 IE “view source” 这一功能。

 

如何衡量两个团队成员的劳动生产率呢?  或者这已经超越了劳动生产率的范畴, 到了知识产权, 职业道德的领域?

 一帮学生临时组成一个团队, 用什么方法评比并没有重大的影响, 大不了在期末成绩上少一两分。 但是软件公司的团队就不同了, 不合理的绩效考核不但影响各人的收入, 而且会影响人员的士气, 流动, 后续的合作和产品质量,不能不慎重。   

 

比资历?

软件行业的竞争有”赢者通吃”的规律, 一个快要被市场淘汰的产品不能说: 我们是最先进入这一市场的, 我理应继续占有足够份额!  软件团队人员也不能说, 我来的早, 所以我的报酬就应该多!

 

大锅饭? 所有人都评 “优”, 大家平分钱, 好么?  优秀的人会离开, 最后会剩下平庸的人在过平均主义 - 也许整个团队都被淘汰了。 同一团队的成员报酬能差别多大?  我们看看职业篮球的一个例子:

1997-98 赛季, 迈克尔·乔丹挣了八千万美元。 和他同一个队的队友 Joe Kleine 当年挣了27万美元。 两者相差将近300倍! 如果两人挣钱平均分, 谁会离开? 球队因此变强还是变弱?

 

比效率? 

我们也知道软件开发人员的效率有很大的差别, 一流的程序员的效率是普通程序员的10倍; 有些效率的差别还有正负之分。  一个心不在焉的程序员可以一天写 2000 行代码, 然后别的开发/测试人员要花很多时间来修复其中的缺陷, 这些同事本来的任务就被耽误了; 同时, 一个非常用心的程序员发现可以重用以前的稳定模块, 他花很多时间重构和测试, 最后只修改了500行代码, 代码的缺陷特别少, 这样无形中节约了别的同事的大量时间。

背靠背评比? 根据所有其他人的评价来决定自己的绩效? 这样会发生小团体抱团, 以及劣币驱逐良币的现象。 做游戏的工程师一定听说过 "Valve" 这个公司,他们的员工手册很有意思,大家不妨看看。根据手册的描述, 他们的员工100% 的时间都可以自由支配, 做什么项目,在哪里工作, 等, 都可以由员工来决定。 但是在绩效评估上, 他们用了队友评估这一机制,得出下列四个值:

  技术等级/技术能力;  劳动生产力/结果;  对团队的贡献 (做一些工具让大家的工作更容易,帮助招人); 对产品的贡献 (除了本职工作外, 还有什么可以帮助产品的: 找bug, 预测用户的反馈,推广... )

比不犯错误?  软件项目的进展不是一帆风顺的, 总有问题发生, 出现了问题, 就一定会记在相关人员的帐上,以便总结提高。  但是一定会作为绩效评估的依据? 那倒不一定。

  • 如果成员的行为只影响自己, 或者是探索式的行动,则不是坏事。 例如有些成员自行探索最新的技术, 但是最后决定不采用此技术。 
  • 如果团队成员的行为影响整个团队 (例如 build break 导致daily build 失败), 则要注意。  在一个里程碑中可以统计谁导致这样的错误最多。 对这样的人可以采取 <移山之道> 中提到的 build master 方法处理。

如何区别对待?

团队中总有几个人的资历, 成绩, 口碑差不多, 这时要怎么分出一二三呢?  微软公司流传着“lifeboat drill” [救生艇练习] 的办法 - 如果大家在海上遇险, 一帮人挤在救生艇上, 眼看就要沉没, 必须扔一个人下海其他人才能得救, 你选谁呢?  或者是你要开始一个新的项目, 只能带走一个人, 你会带谁呢?  这当然拷问大家的直觉, 但直觉往往是对的。 

在玩过这些游戏之后,  一个一维数组就产生了, 这时候就可以区别对待, 分三段, 来一个好/中/差。  或者想GE 等公司那样,  给最好的 20% 某些待遇; 中间的 70% 某个待遇; 最后的 10% 某个明显不同的待遇。

 

当然这种一维数组总是有一些问题, 因为人的能力, 具体工作项目完成情况, 在一定时间内的贡献是相互影响但是又是相互独立的.  如果二十人的团队, 大家的确做得差不多, 什么人去当那两个 10%呢?  这是折磨很多经理的难题。在统计意义上, 一个几百人的大公司总有一小部分人不适合职位要求, 让排名最后的 10% 惊醒一下很好。 但是公司里往往层层把10% 的指标下放, 最后到了基层团队.  尽管两个团队的贡献和管理水平有很大差别, 这两个团队的经理都必须得选出10% 的成员来作为 [最差的成员]。  差的团队, 这些人不缺; 好的团队, 它的经理陷入了一个困境 - 他/她必须把表现挺不错的团队成员归到 10% 里。    

 

为了更客观地反映员工绩效的不同的因素,  有些公司实施过二维的评价体系:

 

完成任务维度: 主要由团队成员和直接经理商量年度目标, 直接经理有较多的自由度决定 好/中/差.  例如大部分成员都可以得到 “好”这一评价。

团队贡献维度: 还是严格根据人员百分比, 评出团队中最好的20%, 中间的70%, 和最需要改进的 10%.

 

image

 

在理想条件下, 把任务做得很好, 当然贡献会在最上面的 20%;  做的最差的, 贡献应该是最低的 10%.  但是在实践中要复杂得多,  有些人因为任务相对简单, 完成的很好, 但是对整个集体的贡献一般, 这种人可以得到 [好, 70%] 的位置。 有些人敢于做很难的事情, 结果未必令人满意, 但是对团队很重要,  [中, 20%] 应该是一个合适的评价。

 

还用篮球做一个例子, 假设NBA的球星 科比·布莱恩特 到中国某俱乐部打球, 他由于种种原因, 没有打出自己顶峰时的水平, 低于自己和俱乐部的期望, 但是和俱乐部所有球员相比还是高人一筹, 他应该得 [差, 20%] 的评价.  与此同时, 一个刚入队的球员, 大部分时间打替补, 时有超水平表现, 他的评价应该是 [好, 10%]. 与此同时, 在科比到来之前能拿 [好, 20%] 的球员, 则有些要拿 [好, 70%],  因为科比占用了一个 20% 的位置, 但是自己的球队因此变强, 成绩变好, 总的奖金数大大增加, 也许自己到手的报酬比以前还要高。

 

当领导给员工评价时,  员工的绩效可以从两个维度去评价, 就更好办一些了. 当然, 相应的流程和文字工作要做得更多 - 如果员工是公司最宝贵的财产, 多花一些流程和文字又算得了什么呢?  

 

[2012年11月更新] 看到某著名互联网公司的一个二维评价体系,  纵坐标是 业绩, 横坐标是 价值观:

 野狗   明星-藏獒
  牧羊犬  
  狗   哈巴狗

网络的解释如下, 话糙理不糙:

    刚入门的员工, 业绩和价值观都在培养阶段,  那就就是一条狗, 就像大街上乱跑的中华田园犬。 如果干了很久还没有业绩和价值观, 那就要赶人。 

    如果价值观不断提高, 但业绩平平, 则是听话的小白兔, 或者哈巴狗。 可以给机会, 但是机会不多了。 

    如果业绩很好, 但价值观不太对路 (不太听话?), 则是一条野狗。 要坚决清除, 不然功高震主...

    如果业绩和价值观都取得双丰收, 那就是 明星 员工了, 可以用藏獒来命名!  

    其他的同事则属于勤勤恳恳的 牧羊犬

各个公司在实践中会有很多不同的做法, 那么你们团队是怎么衡量绩效, 决定工资, 奖金的?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500466.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子计算机和多媒体教材分析,电子计算机多媒体教学设计模板

电子计算机多媒体教学设计模板教学目的&#xff1a;1、知识与技能(1)会写5个生字&#xff0c;理解词语意思。(2)理解课文内容&#xff0c;了解什么是计算机&#xff0c;什么是多媒体设备。(3)了解.电脑与多媒体之间的关系并能口述。2、过程与方法(1)通过查找资料感悟计算机飞速…

软件工程 - 团队博客第二阶段成绩

正如我在学期开始的时候跟大家介绍的那样, 如果所有团队都做同样的事情, 那么分数就采用 1/n 的体系。 第一名得满分, 第二名得 1/2 的分数, 第三名得 1/3 的分数… 大家都在一个地方写博客, 项目都是同样有趣, 所以我们采用 1/n 体系, 满分 20 分. 第一组&#xff1a; Seven …

计算机java培训总结,java培训总结范文

java培训总结范文在现在这个科技飞速发展的时代&#xff0c;计算机已经悄然走进我们的生活&#xff0c;并且占据了不可动摇与替代的地位&#xff0c;无论是在工作还是生活&#xff0c;学习还是娱乐中&#xff0c;当我们意识到的时候&#xff0c;却突然发现我们已经离不开这个叫…

戴尔r720服务器增加内存,dell r720服务器加了一根内存后,开机显示configuring memory,卡在这里进不了系统,请问这是什么情况?...

新添加硬盘&#xff0c;需要进BIOS进行检测之后保存新的硬件配置再进入。BIOS检测方法&#xff1a;1、开机按F2进行BIOS设置 。2、进入BIOS&#xff0c;将启动模式选择成UEFI。3、开机按F11进行UEFI启动。4、进入Boot Manager&#xff0c;选择UEFI Boot Menu。5、选光驱(插入系…

现代软件工程讲义 0 课程概述

这门课的教学方案在这里. 根据学生和学校的具体情况, 可以进行调整。 师生关系 首先要明确的是, 在这门课中的师生关系是什么样的. 大学目前的师生关系是怎样, 什么样才是理想的师生关系? 我们先看一些例子: Retailer / customer (餐馆/食客)? 一些学生说, 我既然交了…

现代软件工程讲义 1 软件工程概论

几乎所有程序员都知道“数据结构&#xff0b;算法 程序 ” 这句名言。但是在实际的学习和工作中&#xff0c;也有不少人产生了疑问。例如&#xff1a; 1. 我写了二叉树的周游算法实现&#xff0c;在这里&#xff0c;二叉树是数据结构&#xff0c;周游的实现细节是算法。…

qq修改群名服务器失败,如何解决qq群名片改不了的问题

我们在进入一个qq群的时候&#xff0c;一般都会修改自己的群名片&#xff0c;但是有时我们会发现改不了的问题&#xff0c;这时我们应该怎么办呢?下面就让学习啦小编告诉你如何解决qq群名片改不了的问题的方法&#xff0c;希望对大家有所帮助。解决qq群名片改不了的方法电脑登…

软件工程 项目管理的目标和细节

项目管理的最高目标并不是要保证让 “ideal” 和 “actual” 的线吻合, 因为项目中出现意外和需求的变化是很正常的事。 项目管理的目标是处理这些意外和变化, 让软件能如期发布, 尽量满足客户的要求。 例如: http://www.cnblogs.com/takeitandgo/archive/2011/05/26/2059363…

现代软件工程 学生自我评价表

每年上完 <现代软件工程课>, 我都要收集同学们对自己上课前/后的评价。这样可以看到同学们到底在什么地方得到提高, 提高了多少. 这样可以分析课程设计各个环节的效果, 以便跟踪和改进。 下面是我使用的自我评价表: 匿名调查&#xff0c;整个学期, 你在这门课平均每周花…

IT 行业的创新 - 创新的迷思 (1-4)

[这是和北大同学交流的讲稿, 暑期课程-职业规划与领导力发展 课程的一部分] Myths of innovation 创新, 创新型人才, 创新型企业, 创新型国家, 这些都是最近时髦的词汇, 我在微软亚洲研究院创新工程组工作, 看过创新的猪跑, 也吃过创新的猪肉, 在这里和同学们分享一下我的…

IT 行业的创新 - 创新的迷思 (5-6)

[这是和北大同学交流的讲稿, 暑期课程-职业规划与领导力发展 课程的一部分] Myths of innovation 创新, 创新型人才, 创新型企业, 创新型国家, 这些都是最近时髦的词汇, 我在微软亚洲研究院创新工程组工作, 看过创新的猪跑, 也吃过创新的猪肉, 在这里和同学们分享一下我的体会…

IT 行业的创新 - 创新的迷思 (7-8)

[这是和北大同学交流的讲稿, 暑期课程-职业规划与领导力发展 课程的一部分] Myths of innovation 创新, 创新型人才, 创新型企业, 创新型国家, 这些都是最近时髦的词汇, 我在微软亚洲研究院创新工程组工作, 看过创新的猪跑, 也吃过创新的猪肉, 在这里和同学们分享一下我的体会…

创新 - 王屋村的魔方们

最近我和一些同学们讨论了一些有关 “创新” 的问题。 我不由得想起王屋村发生的一个故事。 王屋村原来没有人玩过魔方. 有一年开学, 一个叫果冻的同学从爪哇国带了这个新奇玩意到学校。 他口里念念有词, 转来转去, 居然能把魔方从凌乱的颜色组合还原成整齐的六面。 哇, 太神奇…

技能的反面 - 魔方和模仿

魔方的故事 大概是在我小学五年级的时候, 大家开始玩魔方&#xff0c;我们家也买了一个。 我和几个小孩折腾了一会, 没搞出什么名堂。我哥摆弄了好一会, 嘿! 弄出一面一样的颜色。后来我也琢磨出来怎么把一面颜色拼出来。 再后来我才知道魔方有一些模式和一些口诀&#xff0c…

软件工程讲义 3 两人合作(2) 要会做汉堡包

[上回书说到这里: http://www.cnblogs.com/xinz/archive/2011/08/07/2130332.html ] 很多同学憧憬在大型软件团队中和各式各样的人打交道, 推动项目进展, 但是他们往往连一对一的合作的技巧和经验都很缺乏。 请问, 从小学到高中, 大家有没有练习过 1:1 的合作? 上课? 没有…

现代软件工程讲义 4 团队和流程

Advanced Software Engineering, Team Structure and Development Process 软件团队和开发流程 非团队和团队 在讲团队之前, 我们要讲什么是“非团队”。王屋村里经常发生这样的一幕: 王屋村的大智要把一堆砖头从村头搬到村尾。 他到顶球酒吧前, 看到前面三三两两地蹲着一…

现代软件工程讲义 12 绩效管理

我们前文讲了怎样衡量软件工程师的能力, 工程师如何成长, 如何证明自己的成长, 等等. 这些都是在一个独立的, 不受外界干扰的空间中做出来的判断。 我们假设一个有能力的工程师, 到了另一个团队, 仍然是一个有能力的工程师。 如何衡量个人在团队中的绩效? 如果一个工程师能…

校园招聘 - 比较容易的面试题

又到校园招聘的季节了, 自从和一些同事出版了《编程之美》一书之后, 我经常收到一些关于面试, 编程, 和“题库”的询问。 其实我自己对算法没有什么研究, 有些问题都答不上, 研究院最近搬了一次家&#xff0c; 原来的 “题库”也不知道搬到那一层楼去了。 不过, 常在河边走,…

现代软件工程讲义 2 工程师的能力评估和发展

Advanced Software Engineering 现代软件工程 讲义 软件工程师的能力评估和职业发展 介绍: 个人软件流程, 职业发展&#xff0c; 个人绩效的衡量和提高, 软件开发是科学, 工程, 手艺, 或是艺术? 我们刚讲了软件工程, 它包括了什么呢? 软件工程包括了开发&#xff0c;…

现代软件工程讲义 7 设计阶段 典型用户 - 故事 - 任务 - 具体工作

当我们写一个软件的时候, 都知道要为用户考虑, 但是用户在哪里? 有同学写 “图书馆管理系统” - 说来图书馆的同学都是我的用户, 但是他们有没有区别呢? 有同学写“自动柜员机系统”, 那到底有多少类型的用户来到柜员机前呢? 这些都是团队成员在需求分析和设计阶段要反复…