现代软件工程 第十七章 【人、绩效和职业道德】 练习与讨论

0. 为啥要讲人、绩效、和职业道德? 学好专业不就行了么,为啥要扯这么多?

        用专业知识教育人是不够的。通过专业教育,他可以成为一种有用的机器,但是不能成为一个和谐发展的人。要使学生对价值有所理解并且产生热烈的感情,那是最基本的。他必须获得对美和道德上的善恶鲜明的辨别力。否则,他 —— 连同他的专业知识 —— 就更像一只受过很好训练的狗,而不像一个和谐发展的人。为了获得对别人和对集体的适当关系,他必须学习去了解人们的动机、他们的幻想和他们的疾苦。

    ---- 爱因斯坦

1. 比较不同团队的绩效评估方法,提出自己团队的绩效评估计划

用某一次《现代软件工程》课上的几个团队的博客做例子:

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

第二组(霸王):
对于浮动分数,可以通过每个职位对团队的贡献来分配。队友之间根据各自的贡献给出排序,最后汇总得分。

第三组(铷铯):
一群学生做软工项目(PM、开发、测试),PM:0.3(n*30)分,开发:0.5(n*30)分,测试:0.2(n*30)分

第四组(take it & go):
在团队合作中,每个成员的贡献度不仅仅取决于其工作量,而且还取决于这份工作对团队的意义有多大。我们认为贡献度的计算应遵循如下公式:

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

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

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

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

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

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


2. 在团队中会不会出现 “劣币驱逐良币” 或者 “不敢犯错误” 的现象?

例如,在大家做任务估计的时候,那些给出非常乐观估计的成员会不会产生无形的压力,让一些实事求是的团队成员不得不调整他们原来比较靠谱的估计,最后导致整个团队的估计都是过于乐观, 客观(包括比较保守和悲观)的估计都消失了?

或者,在工作中太看重失误,惩罚失误,导致无人敢冒险?

    请看这个例子: NBA 球星科比的投篮不中次数已经是历史第一,超越了大部分NBA 球员的所有投篮数:

    http://china.nba.com/news/4/2014-11-12/1048/24547.html   link2

    这么多投篮不中,应该惩罚么? 如果要严厉惩罚的话,科比,或者球队会有更好的成绩么?

3. 请阅读驱动和责任[LL1] ,讨论团队如何能让所有人都明确驱动和责任

    有极端的看法说任何与报酬挂钩的绩效评估都是有害的,你怎么看?

  • http://www.joelonsoftware.com/articles/fog0000000070.html

4. 采访并收集下面几类公司对员工绩效考核的做法:

  • 已经上市多年的公司
  • 刚刚上市或准备上市的公司
  • 国有软件企业,
  • 民营软件企业
  • 初始的创业公司

5. 走出“自我”和“当下”

在授课过程中,我也看到不少同学还是只关注“自我”和“当下”,不善于跟别人合作,也不会估计别人会怎么想,或者估计“我们的团队将来会发生什么,我要如何应对”。造成这种现象的一部分原因是,不少同学从小就被灌输“搞好自己的学习就可以了”,“把眼下的考试考好,以后就好了”,另一部分原因是,同学们从来没有练习如何与别人合作,估计别人会想什么,估计团队以后会发生什么。

科学家认为,人类有别于其他动物的最大特点是人类大脑里有发达的部分在处理“别人在做什么”和“未来会发生什么”(Interpersonal Awareness & Social Awareness)这些事情。能摆脱[自我/当下]而考虑到[别人/将来],从而主动为群体和将来行动,这是人和其他动物不同的地方(来源: http://www.pbs.org/wnet/humanspark/)。

在成功的大型企业中,人际交流能力和人际觉察(Interpersonal  competence, and Interpersonal Awareness)是员工素质培训的一个重要部分,它包括如何与别人建立平等而融洽的合作关系,如何处理矛盾与冲突,如何影响同事,如何给别人的工作做评价,如何能了解别人表面行动下的言外之意、隐含的动机等等。在前文提到的“黄金点游戏”这个场景中,一位参赛者需要了解一屋子的同学大概的思路 ,如何影响他们,自己才能增加获胜的希望。如果每个人独自埋头推导公式,而不管其他人在想什么,是得不出获胜的数字的。

一个软件团队,如果大家都不考虑“别人”、“未来”,光是每个人独立地搞自己眼前的一摊事,是不行的,把自己的代码重构出花来也不行,把SCRUM(史克朗姆)玩到极限也不行。这也是我觉得聪明的同学们欠缺较多的地方。所以《现代软件工程》课包括了很多“两人合作”、“黄金点游戏”以及估算工作量等练习[1]。

上这门课的同学,你觉得这些活动和练习有价值么?

人和人不一样, 你觉得程序员和自闭症的患者有什么联系么?

     http://archive.wired.com/wired/archive/9.12/baron-cohen.html

     如果把人按照 empathetic (有同理心的)  --  systematic (系统思维的) 两极来分类, 有人画出了如下的分布示意图,你怎么看?

6. 刷课软件和刷票软件, A/B 测试和道德,罪与罚
在大学里,网上选课非常讲究时效——因为好的课程不多,大家都想上。大家也讨论过“刷课机”、“换课机”这样的小程序是否合乎道德和公平。春运火车票也是同样的抢手,那么程序员写一些浏览器插件/专用小软件去搞票是好事,坏事,还是不好不坏?这些行为应该用哪些道德/规定/法律来约束?
同学们可以结合本章讲述的道德规范,从正面和反面辩论一下。

参考信息1 通常人们都在路边招手叫出租车,只有很少的人打电话约车, 从2014年起,在很多叫车软件出现后, 在路边招手往往看到很多出租车不停车,因为它们已经被叫车软件订了。很多人说这对于没有打车软件的弱势群体不公平,你说呢?

选取最近IT 界发生的一些事件(例如,某员工因为个人恩怨把公司服务器上的数据全删掉),对照软件工程师职业道德的条款, 评价当事人的软件工程师职业道德如何。
案例:http://blog.jobbole.com/79450/    偷了『半条命2』源代码的那小子

另一个讨论:阿里五人月饼事件 , 讨论

技术的发展必然会波及到社会的其它方面,例如道德。 一个网站能用 A/B 测试来影响用户的情绪么? 如果是为了“科学实验” 的目的呢?
请看下面事件并讨论:
http://techcrunch.cn/2014/07/02/ethics-in-a-data-driven-world/ 
7. 软件团队的发展阶段
结合课本上提到的四个阶段,描述一下你目前的软件团队处于什么阶段,为什么?
8. 团队如何做决定
软件开发和软件团队的生存都面临许多问题,需要许多睿智而果断的决定,一个团队如何做决定呢?  有下面几种方式,请评说各自的优缺点:
a) 独裁:   领导说了算
b) 独裁+顾问:  领导和一些外部的顾问商量之后做决定
c) 民主投票:这样就产生了赢家和输家
d) 全体一致同意后再决定:皆大欢喜?
9. 测定工程师的效率
软件工程师各自效率不同,这是客观存在的,你们团队中效率最高的工程师和效率最低的工程师相差多少? 能否设计一个可以量化的测试标准,统计一下?
10. 合作伙伴评比
在这个软件工程课上,你有机会和5-7 名同学进行了深度的合作,那么,谁的合作精神好?
在课程的最后阶段, 每个人列出一个一维的名单,你自己也在里面,从合作精神最高到最低排列,没有并列。
小伙伴1
小伙伴2
本人
小伙伴3
...
如何打分?  “本人” 得到0 分, 比“本人“高一个名次,则加 1 分,低一个名次,则减 1 分, 以此类推。 TA 拿到全部人的提名后,给所有人统计分数。 然后公布。
任课老师决定是否给得分最高的部分同学某种奖励分。  
11. 团队的职业道德,用户的道德
人们生活,工作在一个互相影响的社会里,每个单个员工的道德,会影响团队的道德。团队领导的行为和决定,也会给 “道德” 做最好的说明。竞争对手的道德,会影响你自己的处境和决定。   每个消费者(用户)的道德,也会对软件行业有影响。
这是最近的例子,这个事件是由个人导致的,还是团队的道德(潜规则)低下,无底线造成的,还是无奈地说 “这是行业的行规,大家都这么做”,就算了?
2014年,锤子手机在天猫电器城上预约数造假
http://tech.ifeng.com/a/20141020/40841049_0.shtml
http://www.chinahightech.com/html/727/2014/1020/15575128.html 
这是讨论中国软件发展困境的帖子,假设软件用户道德水准更高一些,使用正版软件的比例更高一些,中国的软件行业会有更好的发展么?
http://www.zhihu.com/question/22131582
看下面的例子:  每个涉案者应该得到什么样的惩罚,道义上的,或者连带经济,刑事上的? 如果你是原创,你会采取什么措施?如果你开发了一个应用市场, 或者是市场的监管者,你应该怎么办?
http://www.chuapp.com/2014/10/17/88997.html
下面是一个小组织和大组织之间关于创意,知识产权,契约精神,商业道德的争论:
http://weibo.com/1919387783/ByDRrqYyE?type=comment

12. 成长,责任,和公司的关系

绝大部分的工程师都在某一个企业工作,工程师的成长也和企业的兴衰有很大关系。企业兴旺,工程师也是与有荣焉,很多人觉得是自己的功劳,理所应当提薪升职;企业衰落,很多工程师未必觉得是自己的问题(我的代码很好的,都是经理,市场,老大的问题!); 企业最后要裁员,很多人为了一些补偿和企业产生纠纷。

几个例子:

    http://weibo.com/1620213837/BgSGLhdAe

    http://www.csdn.net/article/2014-09-29/2821931 

    http://www.csdn.net/article/2014-10-01/2821945 

那么,软件工程师在企业中是劳动密集型的工人么,还是有独创性的专业人士? 他们对软件企业的成败负多大的责任?

13. 工程师单打独斗 - 接私活

    和上面的讨论题目相关, 很多人把项目的不如意归结于团队,公司,等等个人之外的因素, 那么,当工程师一个人做全栈工程师,顺便把别的角色都搞定,是不是很爽呢? 当一个工程师直接在社会上拼搏的时候,会碰到什么有意思的事情呢? 我们看看 “接私活” 这个场景。 请看完下面的几个故事,谈谈 “接私活的软件工程要注意几个方面”:

    http://www.cnblogs.com/geeking/p/3157744.html

    http://www.cnblogs.com/txw1958/archive/2012/11/06/programmer-personal-work.html

    http://www.cnblogs.com/yhyjy/p/4444094.html

    http://www.cnblogs.com/myproj/p/3402928.html

    http://www.cnblogs.com/toutou/archive/2013/05/06/4602685.html

    http://www.cnblogs.com/shenyisyn/archive/2013/01/11/2856753.html

    http://www.cnblogs.com/jj-fly/articles/2086838.html

    http://www.cnblogs.com/adylee/archive/2009/06/05/1497022.html

===== 教材知识点之外的话题 =====

16. 性别在软件工程
最初的软件工程师是女性居多?  https://twitter.com/Whizzpast/status/540151614242570241/photo/1
女性在计算机专业的比例变化: http://www.npr.org/blogs/money/2014/10/21/357629765/when-women-stopped-coding
17. 3-7年后的展望和计划
在这个课堂上的同学一般都是大学三年级的学生,很多同学都在考虑以后要走什么道路 工作/考研/科研/教书/转行...  市面上流行的就业指导大多数是功成名就的过来人 (工作或科研的大牛)在年事已高 :) 的时候提供的,但是一般的同学未必能走到那样的高度。那么有没有比较普通一些的人士给大家的一下短期规划的建议呢?  这个是有的:
当一个普通教授,或者,当一个入门级的软件企业员工:
http://pgbovine.net/academia-industry-junior-employee.htm  (博客里还有不少好内容)
一个普通IT行业的学生在中国应该怎么办:
http://www.cnblogs.com/bitfan/archive/2010/12/30/1921291.html
普通 IT 人士的10年回顾
http://blog.jobbole.com/12968/ 
关于学术或工作,我们看看更多牛人的指点:
http://www.cs.princeton.edu/~jrex/talks/research-jobs09.ppt 
http://scienceblogs.com/goodmath/2009/12/23/academia-vs-industry-an-update/
http://www.cnbeta.com/articles/130884.htm
========

[1] 国外还有Social awareness + emotional skills = successful kids的说法,  据说此类教育在小孩到了高中甚至成年都有积极的影响。参见:http://www.apa.org/monitor/2010/04/classrooms.aspx

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

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

相关文章

现代软件工程 第十六章 【IT 行业的创新】练习与讨论

16.6.0 Xerox Parc 的成功创新和推向市场的失败 http://research.microsoft.com/en-us/um/people/blampson/Slides/AltoAtPARCIn1970s_files/frame.htm http://research.microsoft.com/en-us/um/people/blampson/38-AltoSoftware/WebPage.html http://research.microsoft.com/…

《梦断代码》读后感 - 驱动,责任,交流,远虑

这三篇读后感原来发布在我自己申请的域名 yishan.cc 上面,后来这个域名被墙了。 (原文写于2008年12月) 几个星期前,我给《现代软件工程》课的每一个团队都发了一本 《Dreaming In Code》的中文版 《梦断代码》,要求写读后感。这本书讲了这样的…

现代软件工程讲义 7 分析和设计方法

(这一节在第一版的 《构建之法》中没有, 是《构建之法》电子书(多看版), 和纸版书第二版中新增加的内容,纸版书第二版预计2015年6月出版) 11.1 分析和设计方法 我们写软件就是要解决用户的需求,我们需要表达和传递下面这些…

现代软件工程讲义 源代码管理

【现代软件工程课件】 源代码管理 -- 以实践促进学习 移山软件学院的学生果冻问老师: 为啥需要源代码管理? 我自己写代码多爽,别人要,就用QQ 传过去好了。 老师问:原始人怎么建房子? 果冻:或者找一个洞&…

现代软件工程讲义 个人项目和结对项目练习 地铁

很多老师反映教软件工程和程序设计的时候没有合适的题目,《构建之法》提供了下面的题目,都是从简单的解题思路入手,逐步增量改进。学生们可以复习基本的编程技能,然后逐步加入模块化,文件处理,单元测试&…

最新软件工程总结,项目模板,软工作业下载

(改了标题吸引目标用户) 老师教课,学生上课,首先要讲明师生关系。 其次,就是要说明这门课的底线是什么。 我们假设所有人写作业都独立思考,认真实践,不断改进,勇于创新... 这个假设通常是不全面的&#xf…

构建之法 第三版 17 章 部分草稿

构建之法 17 章  人&#xff0c;绩效和职业道德 (<构建之法> 第三版草稿) 2016/12/23 17.1 领导力 在软件开发过程中&#xff0c;有很多平等合作&#xff0c;但是也有上下之分的领导/被领导关系&#xff0c;即使都是平级的员工之间&#xff0c;也有老师傅/新人&#xf…

构建之法 第三版 第3章 部分草稿 (剪牦牛毛、老程序员去金融公司的故事)...

/* * 这是 《构建之法》 第三版的草稿 */ 3.2 软件工程中的几种思维误区 正如我们在第一章讲的那样&#xff0c;软件有很多特性&#xff0c;软件开发有它自己独特的规律&#xff0c;如果不了解这些特性&#xff0c;软件工程师就会产生不符合实际的想法&#xff0c;在开发过程中…

现代软件工程作业 – 计算最长英语单词链

结对编程 – 计算最长英语单词链 《构建之法》练习题 大家经常玩成语接龙游戏&#xff0c;我们试一试英语的接龙吧&#xff1a;一个文本文件中有N 个不同的英语单词&#xff0c; 我们能否写一个程序&#xff0c;快速找出最长的能首尾相连的英语单词链&#xff0c;每个单词最多只…

AI应用开发实战系列之一: 从零开始配置环境

AI应用开发实战 - 从零开始配置环境 与本篇配套的视频教程请访问&#xff1a;https://www.bilibili.com/video/av24421492/ 零、前提条件 一台能联网的电脑&#xff0c;使用win10 64位操作系统请确保鼠标、键盘、显示器都是好的 建议和反馈&#xff0c;请发送到 https://g…

usb连接不上 艾德克斯电源_第十二届(深圳)新能源汽车核心电源技术研讨会成功举办...

2019年4月26日&#xff0c;由大比特主办的第十二届(深圳)新能源汽车核心电源技术研讨会在深圳登喜路国际大酒店成功举办。本次会议受到了法雷奥、长安铁雪龙、比亚迪、蔚来汽车、麦格米特、科陆电子、欣锐、英威腾、晶福源、英可瑞、瀚美特、航嘉驰源、核达中远通、永联、优优绿…

AI应用开发实战系列之二:从零开始搭建macOS开发环境

AI应用开发实战 - 从零开始搭建macOS开发环境 本视频配套的视频教程请访问&#xff1a;https://www.bilibili.com/video/av24368929/ 零、前提条件 一台能联网的电脑&#xff0c;使用macOS操作系统请确保鼠标、键盘、显示器都是好的 建议和反馈&#xff0c;请发送到 https…

安卓能硬改的手机机型_手机后盖材质,金属比塑料的好,玻璃比金属的好,是这样么?...

从2000年至今&#xff0c;18年手机发生了巨大变化到现在&#xff0c;人们不再唯性能至上屏幕、拍照、材质、工艺等等也成了人们选购手机的标准手机后盖材质的发展史很好的见证了人们喜好的变化接下来我们来看手机后盖材质的演变史从手机的创造到手机的普及作为一个材料人我们经…

AI应用开发实战系列之三:手写识别应用入门

AI应用开发实战 - 手写识别应用入门 手写体识别的应用已经非常流行了&#xff0c;如输入法&#xff0c;图片中的文字识别等。但对于大多数开发人员来说&#xff0c;如何实现这样的一个应用&#xff0c;还是会感觉无从下手。本文从简单的MNIST训练出来的模型开始&#xff0c;和…

重力加速度换算_中考物理重难点汇总——公式换算大全

初中物理中最重要的部分就是公式了&#xff0c;在这之中公式的换算可以说是一个难点&#xff0c;也是一个重点。力学部分一、速度公式火车过桥(洞)时通过的路程s&#xff1d;L桥&#xff0b;L车声音在空气中的传播速度为340m/s 光在空气中的传播速度为3108m/s二、密度公式(ρ水…

新手一小时就写出人工智能应用 - 看图识熊

来不及了&#xff0c;先上车&#xff1a; 人工智能开发案例 熊的分类 如何安装必要的工具并配置环境呢&#xff0c;请看这个详细的解说 今后会有更详细的文字版在这个专题出现。 如果有对这个教程有疑问&#xff0c;请在这里留言。

c++ 线性回归_模型之母:简单线性回归的代码实现

模型之母&#xff1a;简单线性回归的代码实现关于作者&#xff1a;饼干同学&#xff0c;某人工智能公司交付开发工程师/建模科学家。专注于AI工程化及场景落地&#xff0c;希望和大家分享成长中的专业知识与思考感悟。0x00 前言 在《模型之母&#xff1a;简单线性回归&最小…

AI应用开发实战系列之四 - 定制化视觉服务的使用

AI应用开发实战 - 定制化视觉服务的使用 本篇教程的目标是学会使用定制化视觉服务&#xff0c;并能在UWP应用中集成定制化视觉服务模型。 前一篇&#xff1a;AI应用开发实战 - 手写识别应用入门 建议和反馈&#xff0c;请发送到 https://github.com/Microsoft/vs-tools-for-…

现代软件工程 结对/团队作业 - 汉字的 2048 + 俄罗斯方块

一个很有趣的软件工程/编程作业&#xff0c;如果把汉字构成的规律运用在 2048 俄罗斯方块这样的游戏中&#xff0c;会有什么效果呢? (链接1&#xff0c; 链接2) 既然是软件工程的作业&#xff0c; 那就要体现出一些工程的特性&#xff1a; 作业要求&#xff1a; 1) 学生自行…

机器学习平台建设

本文从机器学习平台的架构开始&#xff0c;再到具体的功能&#xff0c;然后从需求的角度带给读者思考&#xff0c;找到合适的机器学习平台建设之路。最后&#xff0c;推荐了微软开源开放的机器学习平台OpenPAI&#xff0c;是可私有部署的机器学习训练平台。 本文不少要点都可以…