1、毛新军毛新军http:/ 计算机科学与技术系计算机科学与技术系602教研室教研室 0731-(45)73649软件项目管理课程软件项目管理课程 之之Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理21.什么是团队2.团队管理的内容3.团队的组织结构4.成功团队 vs 失败团队5.团队激励机制6.做一个好的项目经理7.小结Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理3n由一组具有共同目标、相互关联、相互合作的人组成的一个集体,例如战斗小组 共同的目标 明确的任务 相互关联 相互合作n软件项
2、目组就是一个团队 目标:开发出软件产品、完成项目 任务:需求分析、设计、管理 相互关联:工作的依赖 相互合作:解决问题Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理41.什么是团队2.团队管理的内容3.团队的组织结构4.成功团队 vs 失败团队5.团队激励机制6.做一个好的项目经理7.小结Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理5n团队管理的目的 确保团队的战斗力 确保团队的凝聚力 确保团队的工作效率和质量Copyright Xinjun Mao 2005第第10讲讲 软件开发团队
3、的管理软件开发团队的管理6n团队管理的内容 团队的组织n工作效率和质量、凝聚力 团队的交流和合作n工作效率和质量、战斗力 团队的纪律n战斗力 团队的激励机制n凝聚力Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理71.什么是团队2.团队管理的内容3.团队的组织结构4.成功团队 vs 失败团队5.团队激励机制6.做一个好的项目经理7.小结Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理8n组建团队结构应考虑的因素n团队模式Copyright Xinjun Mao 2005第第10讲讲 软件开发
4、团队的管理软件开发团队的管理9n明确团队的目标n确定团队的种类n理解高效团队的特征Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理10n解决问题 开发一个具体的项目n创新 研发一个新的产品,具有新颖的产品目标、提供了其他产品所不具备的功能、采用了新的方法和技术n战术执行 执行一个良定义的计划、问题明确,如产品升级、维护Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理11n问题解决团队 解决一个复杂、问题没有明确定义的问题 例如,开发图书馆管理软件系统 团队的成员应该是可信赖、活跃、聪明n创新
5、团队 探索可能性和选择性 例如,研发一个智能决策软件用于诊断天然气管道的故障 自我激励、自治、富于创新、百折不挠n战术执行团队 执行一个良定义的计划、具有明确的问题 例如,一个软件维护工作 紧迫感、注重行动Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理12n明确角色和职责 各个成员清晰、明确地知道自己做什么 项目计划n监控个人表现和提供反馈 让成员知道是可接受的还是有待进一步提高 项目跟踪、质量保证n有效沟通 易于获得信息、沟通的媒介、参与、记录沟通 配置管理、会议、文档化n以事实为依据提供决策 决策要依赖于事实依据,而不是主观判断Copy
6、right Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理13n业务团队n首席程序员团队n臭鼬项目团队n特征团队n搜索救援团队n战术(SWAT)团队n大型团队Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理14n由一个技术领导带领的团队n团队成员可能来自不用的专业领域、熟悉不同的编程语言 数据库、制图、交换机 Java, C+, TSAPIn技术领导人负责技术的最终决策n典型的等级层次结构 技术领导人,技术决策和管理部门沟通 团队成员在自己的领域内工作n适合于解决型、创新型、和战术型Copyright Xin
7、jun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理15n产生于20世纪60年代末70年代初,IBMn首席程序员负责完成软件开发的主体工作:完成所有的设计、编写大部分的代码、进行项目决策,其他人为首席程序员提供支持 后备程序员,批评家、联络人、研究助手 管理员,处理管理事务如财务、人员、场地和机器设备 工具员,制作首席程序员所需的工具n适合于创新型和战术型团队目标Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理16n由一批有才华、有创造性的产品开发者、置于一个不受组织官僚限制的机构中,使他们放手开发和创新n典型的黑箱管理
8、方式n可以调动积极性、但是缺乏可视性n适合于创新型Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理17n成员来自不同职责和功能部门,例如质量保证、配置管理、系统分析,这些人员只向本部门汇报和负责n特征团队有授权、责任和平衡的优势n适合于解决问题和创新类型Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理18n专门针对特定的问题n由专业人员和队伍组成n短期n适合于解决问题型Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理19n每个成员是某个方面
9、的专家,如人机界面、用户领域知识n团队经过专门、多方面的培训n协同得非常好,天衣无缝n让掌握特定工具和技能的一组人员去解决与这个特定的工具和实践有关的问题n持久,习惯在一起工作,有明确定义、稳定的角色n适合于解决问题Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理20n大型团队的人员组成较多n沟通膨胀,n*(n-1)/2n简化沟通n方式:创造层次、划分小组、指定代表进行沟通Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理211.什么是团队2.团队管理的内容3.团队的组织结构4.成功团队 vs
10、 失败团队5.团队激励机制6.做一个好的项目经理7.小结Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理22n明确的角色和责任 每个人在任何时候都是负责的n监控个人表现和提供反馈 让团队成员知道他们是否无愧于团队的期望n有效的沟通n以事实为依据制定决策n相互帮助、不断改进、勇于创新的文化Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理23n挫伤积极性 如:要求工作到深夜,老板长时间休假而员工假期加班,到项目结束时无奖金n人员素质低 人员的选择着眼于尽快雇佣到人,而不是在项目周期中工作最好的人
11、,虽然可以使项目尽早启动,但不能确保项目尽快完成n英雄主义 中等管理水平的项目经理更为强调团队精神Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理24n项目后期加入人员 火上浇油n对有问题的员工失控 这是项目组员对领导最常见的抱怨n办公环境拥挤嘈杂n开发人员与客户之间发生摩擦 如客户不在开发计划上签字、需求确定后的需求变更、拒绝接受已完工的产品 主要原因是缺少沟通Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理25n缺乏有效的项目支持 没有有效的高层支持;高层人员强迫开发者接受不现实的项目进
12、度等n缺乏各种角色的齐心协力n缺乏用户介入 没有用户早期介入的项目充满需求误解的风险n政治高于物质 政治家型项目组的精力集中在于领导的关系,在项目初期,会运行得很好,但进入中后期,会失败Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理26nIT技术人员需要沟通技能 需参加大量口头沟通活动,有时辅以书面记录 仔细倾听同伴的谈话,对问题做出恰当的反映 有时不得不参加某些形式的非正式的公开演讲 口头沟通是职位提升的关键因素之一nIT技术人员缺少沟通技能 和非专业人员的沟通很难,IT技术人员的不断发展,产生了大量的技术行话 注重技术技能,缺少沟通技能
13、的教育和培训Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理27n个人间讨论n里程碑n文档(需求说明、设计文档、代码、测试文档等)n报告(错误追踪报告、项目状态报告)n需求、设计、代码、状态评审n配置管理n电子邮件n小组会议n项目公告栏n项目控制工具Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理28n非正式谈话能更好地发展信任关系,彼此了解、了解项目信息n短时的面对面会议通常更有效n人更愿意从非正式的形式和双向的会谈交流,不愿看成堆的文件和报告n研究表明,不足10%的沟通通过文字,一个人的
14、音调和身体语言较多地表达他们的真实感受Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理29n建立一个远景n使团队为团队的行为负责n以具有挑战性的、清楚的和支持的方式委派团队任务n将如何完成任务的细节留给团队n当团队运行不好时,想想MOI模式:多数团队问题来源于动机、组织或信息n责、权、利明确Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理30n缺乏共同的远景n没有认同感n缺乏认可感n生产力障碍n低效率的沟通n缺乏信任n有问题的员工n责、权、利不统一Copyright Xinjun Mao 2
15、005第第10讲讲 软件开发团队的管理软件开发团队的管理31n更高的生产率n低启动费用n较低的个人问题风险n减少人事变动n时间空闲问题Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理32n避免团队目标向政治问题妥协n向团队目标显示个人的承诺n不用太多优先级的事物冲淡团队的工作n公平、公正地对待团队成员n愿意面对和解决与团队成员不良表现有关的问题n对员工的新思维和新信息采取开放的态度Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理33n展示对于个人角色和责任的真实理解n展示以事实为基础的判断n
16、和其他团队成员有效地合作n使团队目标优先于个人目标n展示投身于任何项目成功所需的努力的愿望n愿意分享信息、感受和产生适当的反馈Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理34n当其他成员需要时给予适当的帮助n展示对自己的高标准要求n支持团队决策n展示直接面对重要问题的勇气和信念n以为团队的成功而奋斗的方式体现带头作用n对别人的反馈做出积极的反应Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理351.什么是团队2.团队管理的内容3.团队的组织结构4.成功团队 vs 失败团队5.团队激励机制
17、6.做一个好的项目经理7.小结Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理36n激励机制n团队成员的典型动机n士气杀手Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理37n开发人员最有可能提高生产率和质量(相比较开发过程、产品、技术)n开发人员的生产率和质量的差距达到 1:10。无论是否具有相同经验n激励是决定工作表现最重要得影响因素,对生产率的影响比任何其他因素更大Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理38n成就感n发展机遇
18、n工作乐趣n个人生活n成为技术主管的机会n领先n同事间的人际关系n受认可程度n工资n责任感n工作保障n公司政策和经营n工作条件n地位Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理39n成就感n工作乐趣n受认可程度n发展机遇n与下属关系n同事间的人际关系n领先n工资n公司政策和经营n工作保障n称为技术主管的机会n地位n个人生活n工作条件不要用对自己有效的方式来激励开发人员不要用对自己有效的方式来激励开发人员Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理40n提供一个良好的环境,使他们能轻松
19、进行喜欢的工作n自主权 让开发人员自己定工作进度n设定目标 如短期目标、风险降到最小、项目可视化程度最大 不要太多、公认不能实现、经常变化的目标Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理41n职业发展原则:帮助员工决定他们自己希望如何发展技能,并提供职业发展的机会 提供进修机会 提供参加培训或自学的假期 购买专业书籍 分配发展技能的项目工作 为新的开发人员指定导师和教练 避免进度太大n排名前10%的企业平均每年为软件开发人员提供2周的培训,为软件经理提供3周的培训Copyright Xinjun Mao 2005第第10讲讲 软件开发团
20、队的管理软件开发团队的管理42n工作动力的三大来源 感受工作的意义 对工作成果的责任 了解工作的实际结果n影响工作动力的5个方面: 技术的多样性、任务的完整性、任务的重要性 自主性、工作反馈 n为能够专注于工作本身创造条件Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理43n安排休假n同意员工在工作日偶尔外出 个人生活对开发人员排在第4位 对项目经理排在第15位Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理44n指派每个人分别作为某个特定领域的技术负责人,如负责用户界面设计、数据库、网络、
21、模块接口n指派每个人分别作为某个任务的技术负责人,如技术评审、代码重用、工具评估、系统测试n除新手外,指定所有人作为指导者Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理45n奖励和表彰是激励组员的一种重要手段,它向组员以及其他人展示他们所做的贡献n表彰方式(实物、金钱、荣誉)n表彰为了实现富有挑战性的目标而加班的员工,愿意帮助同事的员工n糟糕的奖励:给最佳表现者6%的奖励,同时给表现平庸者5%的奖励n使得无论大小成就的表彰活动成为小组文化Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理46
22、nIntel总裁Andrew Grove说,业绩评价是“我们作为管理者所能提供的最重要、最贴切的工作反馈”n不恰当的业绩评价会减弱开发者的工作劳力Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理47n管理者过分使用权力,强制执行不现实计划n缺乏对开发而付出努力的表扬n因技术措施不当而受到牵连n开发人员没有参与同自己有关的决策行为n生产率障碍n低质量n过分夸张的激励形式Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理481.什么是团队2.团队管理的内容3.团队的组织结构4.成功团队 vs 失败
23、团队5.团队激励机制6.做一个好的项目经理7.小结Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理49n项目经理的技能n项目经理的职责n项目经理的影响力n项目经理的权力n项目经理要则Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理50n管理能力 理解、引导和设法满足项目涉众的需求和期望 开展大量的领导、沟通和谈判活动 不断解决问题,并对整个组织产生影响 明确前景,合理授权,积极营造一个充满活力的工作环境n组织和团队建议能力 激励不同类型的组员一起为项目目标协力工作 在团队内部以及团队与其他项
24、目涉众之间培养团队精神 具有一定的应变能力、灵活性、创造性、耐性n有效使用相关技术和工具Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理51有效的项目经理低效的项目经理有表率作用有洞察力技术过硬有决断力善于沟通善于激励他人必要时能够支持上级领导支持团队成员鼓励新概念新思想表率作用差不自信缺乏专业技能和经验不善于沟通不会激励他人Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理52n确定项目范围n识别项目涉众n指定项目计划n确认并跟踪项目的关键里程碑n参与项目的阶段评审n保障所需的资源n管理变更
25、控制过程n汇报项目状态Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理53n了解组员的职业生涯和个人的生活情况,根据他们的需要提供激励 关心个人发展和晋升 工作的认可和鼓励 舒适的工作环境 组织聚会和社会活动,增加归宿感Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理54n公司关心的是市场竞争力和业绩n员工关心的是个人事业的发展和对工作的满意度n项目经理应充当好协调员,将员工个人的发展和公司的发展有机结合起来,对员工进行培训n不能采用硬性指标Copyright Xinjun Mao 2005
26、第第10讲讲 软件开发团队的管理软件开发团队的管理55n为组员提供服务,包括训练和指导、解决问题和冲突、提供资源、建立项目目标和优先级、提供适当的技术指引。要使每个组员都能清楚的知道,你总是可以帮助他们。在你所作的事情中,对于组员要求你帮助他们这件事,应该具有非屏蔽中断的优先级Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理56n强制力n合法权力n专家权力n奖励权力 现金、地位、认可度、升职、富有挑战的任务n感召力和友谊Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理57n让组员感知这些权力
27、n过分强调合法权力或权威,会导致项目失败n过多使用资金、惩罚或威胁,会导致项目失败n一些特定的奖励,如富有挑战性的工作,工作成就,以及认可度才能真正引导员工改变行为或者努力工作Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理58n保持积极状态n牢记主要目标n把最重要的事放在最重要的位置上n考虑双赢n首先去理解和倾听别人,然后再被别人理解n协同n不断学习Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理59n基于项目总结,建立短期以及长期改进的一些目标n目标要尽可能量化n两个强烈的原因要求改进过
28、程:校正问题和防止问题,确保你的改进努力要围绕着已知的或可预知的可能威胁项目成功的问题n领导你的小组找出当前正在使用的方法的长处和短处,以及项目面临的风险Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理60n每个经理花时间处理每种可能的错误是非常困难的,学习过去的成功和失败是成功的开始n项目结束后,要实施项目总结。目标不是判定责任,而是为了在以后项目中作得更好n在每个项目的主要里程碑时,通过集体讨论或公平的组织者,用同样的方式,领导小组对其展开分析n了解已有的软件工业的最佳准则n建立自己的最差实践和最佳实践Copyright Xinjun M
29、ao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理61nBlack和Mouton提出的五种冲突处理模式 面对 妥协 圆滑 强制 侧推Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理62n弄清项目经理所面临的问题、机会和期望n明白冲突是团队发展中的自然之物n弄清谁是利益关系者n意识到组织的强烈政治色彩n必须精于领导,但应灵活机动n明白判断项目成功的四个标准:预算、进度、绩效标准、客户满意n充当激励者、教练、活跃气氛者、维和人员和冲突裁决人n注意你的情绪团队成员培养品质的基础n不能安于现状,经常做“如果那么”的假设n有效地利用好时间
30、n首要任务是:计划、计划、计划Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理631.什么是团队2.团队管理的内容3.团队的组织结构4.成功团队 vs 失败团队5.团队激励机制6.做一个好的项目经理7.小结Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理64n了解团队的性质或要组建什么类型的团队n如何使团队成功n如何做一个好的项目经理Copyright Xinjun Mao 2005第第10讲讲 软件开发团队的管理软件开发团队的管理65Practice, Practice, and Practice