上海交通大学计算机集成技术开放实验室2019/9/191第11讲软件项目中的人员管理上海交通大学计算机集成技术开放实验室2019/9/192理解人类的行为具有实际经验的人是项目中最重要的要素人类行为的解释“如果A情况出现,B可能是结果”主要的问题是真实世界中影响因素过于复杂,难以真正确定A与B的关系对这些问题的思考,人们可以对人类行为的认识达到深化上海交通大学计算机集成技术开放实验室2019/9/193组织行为学OrganizationalBehaviour组织行为学起源于19世纪末,20世纪初,由泰勒(FrederickTaylor)发起泰勒研究人类行为的目的有:为工作选择最合适的人员让这些人员采取最佳方法给最好的工人以更高的工资来刺激泰勒主义(Taylorism)经常被用来指代“粗鲁的”和“机械的”,但是有趣的是泰勒主义方法被用在体育训练中,如标枪运动员的训练中。上海交通大学计算机集成技术开放实验室2019/9/194组织行为学工资不是唯一的因素DonaldMcGregor提出X理论和Y理论X理论:一般的人对工作有一种内在的不喜欢因此需要强迫,指导和控制人们有逃避责任的倾向Y理论工作就像休息和玩耍一样自然外部的控制和强迫并非使大家一起为公司目标努力工作的唯一途径对目标的承诺是与将成绩与报酬相联系的函数一般的人都能够学会拥有并扩大责任心想像和其它创造性能力广泛分布上海交通大学计算机集成技术开放实验室2019/9/195组织行为学判断目前处于理论X和理论Y的方法是观察管理者离开后员工的表现,如果表现没有变化,则处于理论Y环境,如果每个人明显松弛下来,则为理论X环境。期待能够影响行为。如果经理认为你能够干好,那么你可能就会尽力去达到他的期望。上海交通大学计算机集成技术开放实验室2019/9/196开发人员性格MBTI测试方法外向或内向判断或直觉理性或感性推理或主观4个方面可有16种组合,即16种性格类型两个广泛的调查表明,计算机专业人士比一般人更加“内向”,MBTI测试中的“内向”只是表示对内心的想法而不是对外部世界的人和事更感兴趣。大约有50%~65%的计算机人士表现为性格内向,而普通人只有25%~33%(Lyons1985,Thomsett1990)这两个调查还发现,80%的计算机专业人士更具理性倾向,而普通人只有50%。计算机人员更倾向于推理,66%的计算机人员属于推理类,而普通人只有50%。推理类人喜欢有计划,有条理的生活方式,主观型人更灵活,更容易适应环境。上海交通大学计算机集成技术开放实验室2019/9/197人员选择软件工具和采用的方法学都会对编程效率产生影响,但是最大的还是人员的影响。1968年进行的调查发现在对同一任务编写程序时,时间上可能有1:25的差异,而编译则会有1:28的差异。最好的软件人员有何特征?是有经验的编程者还是具有很好数学基础的刚毕业的学生?研究发现最为关键的是经验,而数学基础相对而言影响很小。上海交通大学计算机集成技术开放实验室2019/9/198人员选择研究发现,从事软件行业的人员与其它行业人员相比,不太愿意“社会交往”。“Ifasked,mostprogrammersprobablysaytheyprefertoworkalonewheretheywouldn’tbedisturbedbyotherpeople”-GeraldWeinberg因而选择从事软件开发作为职业并成为专家的人,将来并不一定成为一个好的经理。上海交通大学计算机集成技术开放实验室2019/9/199招收人员(Recruitment)尽管这是一项非常重要的工作,但是经常项目经理无法作出自己的选择。合格的人员(eligible):简历(CV,curriculumvitaeorresume)显示该人员在某些岗位上有相当时间的工作经验。合适的人员(suitable):真正能够干好事情的人。需要避免选择了合格但不合适的人员。上海交通大学计算机集成技术开放实验室2019/9/1910招收人员刊登招人广告列出人员要求获取申请者:注意刊登广告的杂志或报纸要与要求人员的素质匹配。审查简历面试其它过程:如要求推荐信或体检等。上海交通大学计算机集成技术开放实验室2019/9/1911招收人员某一公司承担了一个系统改造项目,需要招聘一位有一定工作经验的分析员/编程员,请列出在招工广告中需要写明的该岗位的工作。对已有系统的新需求的详细分析对调查的结果的分析和解决方案的评估,包括相关成本的估计根据组织标准准备系统描述系统测试准备功能模块定义准备和修改模块结构图软件模块的编码和修改执行单元测试用户文档的准备用户培训上海交通大学计算机集成技术开放实验室2019/9/1912最佳工作方法当一个新成员被聘用后,引入到一个项目组时,要仔细考虑团队领导需要不断地考虑团队成员的培训需求提供参加培训班的机会内部培训上海交通大学计算机集成技术开放实验室2019/9/1913激励机制泰勒主义模型在制造行业采用计件工资制,在销售部门采用销售奖金当新技术引入后,计件工资需要调整,但这是一个敏感的问题。即使在技术很稳定的场合,也并不见得所有人会最大化地去生产,因为该过程中还受到社会心理的影响另外,在某些需要协同工作的场合,如软件开发中,很难将他们的工作分开。上海交通大学计算机集成技术开放实验室2019/9/1914激励机制问题:某一软件开发部门想通过重用软件组件来提高效率。他们准备采用奖金来鼓励采用这种方法。你认为如何去实施,实施过程中会有什么问题?问题1:使用组件的编程人员可能减少了代码问题2:他们需要开发软件组件,但是对当前的项目而言并没有提高生产率可以采用功能点法去衡量交付系统的规模,可以采用重用代码比例来度量每个人的工作,重用的代码也可按比例算成编程者的工作量通过记录组件重用的次数并进行奖励来鼓励编程者提供可重用的组件。上海交通大学计算机集成技术开放实验室2019/9/1915激励机制Maslow的需求层次:不同的人需要不同的激励AbrahamMaslow认为需求是有层次的,低层次的需求满足后,高层次的需求就出现了。最基本的需求是食品和住所,最高层次的需求是自我实现在实际生活中,该原理告诉我们,不同的人在生活的不同阶段需要采用不同的激励方法。例如加薪对新来的,工资较低的员工作用很大,而对工资本来就很高的老员工作用就未必那么明显。老员工可能更希望工作有自主性。问题:报纸报道在许多公司中对核心员工支付了大量薪水,是不是意味着这些人位于需求层次的底层,他们是不是真需要这么多钱才能被激励,这些薪水真正的意义是什么?钱不是用来仅仅满足物质需求的。上海交通大学计算机集成技术开放实验室2019/9/1916激励机制Herzberg的两因素理论卫生学或保持因素(hygieneormaintenancefactors):如果这些因素出了问题,例如工资或者工作条件将使你不满意促进因素(motivators):让你觉得工作是值得的。问题:请举例说明你学习或工作中使你感到特别高兴的事,并说明使你特别不满意的事,比较一下,是否能够从中发现一些规律?上海交通大学计算机集成技术开放实验室2019/9/1917激励机制激励的期待理论(expectancytheoryofmotivation)(Vroom)影响士气的三种因素:期待:相信努力工作会有好的成果手段:相信好的成果会有好的报酬感觉值:报酬结果三者都很高的话,将得到高的激励,如果有一者为0,则得不到任何激励如果你在为一个企业安装调试一个第三方开发的软件包,如果你意识到因为其中有一个Bug所以你无法使其工作,你将放弃如果你在安装调试该软件包,但是你听到客户正在采用其它办法,不再需要你的工作,你也将放弃如果用户真的需要该软件,你得到的只是一些感激,但是如果出来问题,他们将向你提出抱怨,你可能想尽量避开这种事情。上海交通大学计算机集成技术开放实验室2019/9/1918激励机制Oldham-Hackman工作特性模型技能多样性:工作中需要多种不同的技能提供了练习的机会任务的独特性:你工作的内容和结果多大程度上与别人相区别任务的意义:你的工作对别人的影响,“为飞机拧螺丝感觉上要比为装饰镜拧螺丝更重要也更有意义”自治性:控制工作方式的能力,“自己做老板的感觉”反馈:工作结果的反映Couger和Zawacki研究发现编程人员对这些因素的分值较低,而系统分析员较高。Cheney发现反馈和意识到他们的工作对决策的影响能够对编程者产生很好影响。需要使每个人意识到他的工作对整个产品的进度的贡献。上海交通大学计算机集成技术开放实验室2019/9/1919激励机制激励的方法目标设定提供反馈工作设计工作范围扩大,例如,编程人员参与维护小组将提高他的责任感,使他在编程时更加仔细。工作的丰富上海交通大学计算机集成技术开放实验室2019/9/1920不同人员动机比较开发人员项目管理人员普通人1成就感责任感成就感2发展机遇成就感受认可程度3工作乐趣工作乐趣工作乐趣4个人生活受认可程度责任感5成为技术主管的机会发展机遇领先6领先与下属关系工资7同事间人际关系同事间人际关系发展机遇8受认可程度领先与下属关系9工资工资地位10责任感操控能力操控能力11操控能力公司政策和经营同事间人际关系12工作保障工作保障成为技术主管的机会13与下属关系成为技术主管的机会公司政策和经营14公司政策和经营地位工作条件15工作条件个人生活个人生活16地位工作条件工作保障数据来源:《软件工程经济学》(Boehm,1981)上海交通大学计算机集成技术开放实验室2019/9/1921不同人员动机比较与一般人相比,开发人员更容易受发展机遇、个人生活、成为技术主管的机会以及同事间人际关系等因素的影响;而不容易受地位、受尊敬、责任感、与下属关系及受认可程度的影响与管理员相比,开发人员易受发展机遇,个人生活及成为技术主管的机会等因素影响,而不容易受责任感,受认可程度及与下属关系等因素的影响。如果一个管理者以对自己有效的方式来激励开发人员,则很可能会遭到挫折。上海交通大学计算机集成技术开放实验室2019/9/1922最重要的激励因素(1)“踹一脚并不能产生动力,只能产生被动行为”(Herzberg1987)成就感自主权当人们为实现自己设定的目标工作时,会比为别人更加努力地工作。“开发人员提出的进度表总是雄心勃勃的。”(CusumanoandSelby,1995)设定目标设定明确的发展速度目标是加速软件开发的简单有效的方法。上海交通大学计算机集成技术开放实验室2019/9/1923最重要的激励因素(2)一个有趣的实验:对于5个小组,安排他们完成同样的任务,该项任务中每个小组都需要完成5个相同的目标,但是对每一组分别要求使不同的目标最优化。结果5个小组中4个最先完成了要求他们实现最优化的目标,另外一个小组第二个完成。每个小组都设定了第2目标,有3个小组第2个实现了第2个目标,1个小组最先完成,1个小组最后完成。没有一个小组对所有目标完成得同样好。试验表明:开发人员会去做安排他们做的工作,他们会为指定的目标工作。如果一个小组一下子有了几个目标,对他们来说每一个目标都做好几乎是不可能的。ITT的一项研究发现,当提出多个目标时,生产率会严重下降。(Vosburghetal,1984)为提高项目效率,项目管理人员应该选定一个最为重要的目标。上海交通大学计算机集成技术开放实验室2019/9/1924最重要的激励因素(3)发展机遇目前从事的工作中用到的知识有一半在3年内必将过时一个企业可以从如下方面鼓励职工的职业发展:提供进修机会给员工提供参加培训或自学的假期购买专业书籍派开发人员进扩展其技能的项目工作为每个新的开发人员指定导师,同时向他们表明企业致力于其职