1、第10章 软件外包软件外包行业从业人员的职业发展行业从业人员的职业发展 学习目标l了解软件外包行业的职位体系l了解PCMM模型的架构及各成熟度组织的基本特点l了解PMBOK体系基本知识域的关键活动l熟悉软件外包行业职位体系的各职位工作职责l熟悉软件外包行业各职位体系的发展路径l掌握软件外包行业各职位的关键素质及能力第10章 软件外包软件外包行业从业人员的职业发展行业从业人员的职业发展软件行业是高度依赖人力资源素质和能力的智力密集型行业人力资源战略已经成为软件企业保持和增强竞争能力的核心战略软件外包行业分工细致、职责清晰、方向明确的人力资源管理和发展体系业已形成国际通行的人力资源发展成熟度体系模
2、型受到广泛关注和引入第10章 软件外包软件外包行业从业人员的职业发展行业从业人员的职业发展人力资本成熟度模型(People Capability Maturity Model,PCMM):美国卡耐基梅隆大学软件工程研究所开发的人力资源管理和发展的管理框架来源于人力资源、知识管理、组织发展等诸多方面的管理实践指导软件企业改善人力资源管理流程,帮助软件企业提高人力资本成熟度,建立持续的人力资本发展规划对人力资本发展及业务流程管理进行有效整合,将人力资本管理和发展深度融入企业文化氛围之中人力资本能力:指为实现企业经营和发展目标,员工需要具备的知识、技能和实际业务能力第10章 软件外包软件外包行业从业
3、人员的职业发展行业从业人员的职业发展PCMM各成熟度等级及其关注的人力资本管理要点成熟度级别人力资本成熟度模型核心关注发展能力团队及文化管理与绩效人才塑造5 优化级能力持续改善一致性组织绩效人力资源持续创新4可预测级教练式指导团队能力组合良好的绩效管理组织能力管理3已定义级能力发展计划知识与技能分析团队建设共创式文化职业发展能力开发人力资源规划2已管理级培训沟通协作环境、绩效、薪酬人员配备第10章 软件外包软件外包行业从业人员的职业发展行业从业人员的职业发展PCMM Level 2(已管理级):核心实践:对于企业员工如何进行管理,包括培训与发展、沟通与协作、薪酬绩效管理、环境管理及人员配置等几
4、个关键过程域基本特征:企业决策层认可人力资源管理实践是企业的必要成本和基础的管理活动,持续提高员工的知识、技能、敬业度和工作品质对于企业非常重要,并且承诺为企业的人力资源管理实践提供必要的资源和支持在这个层级上,企业尚未明确为实现战略目标,全体员工应该掌握的关键技能和知识,岗位职责和技能尚未形成标准,最佳实践经验没有得到及时总结和推广,人力资源管理体系缺乏系统性,部门间沟通协作存在障碍第10章 软件外包软件外包行业从业人员的职业发展行业从业人员的职业发展PCMM Level 3(已定义级):核心实践:如何进行员工能力的管理,包括员工能力分析和发展、项目团队发展、人力资源规划、员工能力实践和员工
5、职业发展规划等关键过程实践基本特征:企业决策层认可人力资源实践是企业必要而且重要的活动,员工能力是企业核心竞争能力建设的必要和先决条件,人力资源能力的提升成为企业经营管理的重要组成部分达到已定义级的企业,建立了企业范围内的职位能力标准和能力素质模型,从而形成企业的标准能力体系,人力资源最佳实践通过系统的人力资源管理体系得以在企业范围内传播、推广和复用第10章 软件外包软件外包行业从业人员的职业发展行业从业人员的职业发展PCMM Level 4(可预测级):核心实践:如何进行有效的面向企业层面的能力管理和建设,包括绩效管理和激励和以高绩效目标为导向的人力资源管理基本特征:企业决策层认可人力资源实
6、践是企业重要的战略活动,具有人力资本和人才投入的战略理念,人力资源能力上升为企业战略企业建立并维护知识财富并在工作实践中得以充分运用,员工实现自我管理人力资本财富化、能力与绩效可量化评价、授权和自我管理得以实现是这个层级企业在人力资源实践中的典型特征第10章 软件外包软件外包行业从业人员的职业发展行业从业人员的职业发展PCMM Level 5(优化级):核心实践:有效地实现人力资本管理的持续改善、标识变革机会并进行实践基本特征:企业决策层认可人力资源实践永无止境,拥有持续改善和改革创新的理念,持续改善和创新成为企业文化的核心变革成为企业管理的日常活动、自我完善和管理、持续改进和创新及组织绩效在
7、企业范围内一致地有效地达成成为优化级企业的典型特征第10章 软件外包软件外包行业从业人员的职业发展行业从业人员的职业发展软件外包从业人员的职涯发展模型:第10章 软件外包软件外包行业从业人员的职业发展行业从业人员的职业发展软件企业的通常职位序列:第10章 软件外包软件外包行业从业人员的职业发展行业从业人员的职业发展软件技术人员职涯发展路径(示例):10.1 软件工程师在软件外包行业中,软件工程师是需求量最大的技术职位,熟练掌握一种技术系列,拥有快速地技术学习能力的软件工程师是各个软件外包企业竞相吸引的对象。岗位职责1理解、评估并接收相关的需求、架构和软件设计文档2根据需求规格和系统设计文档,参
8、与项目相关子系统/模块的详细设计3遵循公司(部门)编码规范,负责编码实现4负责验证编码质量(如代码评审,单体测试及其他测试工作)5协助测试人员进行相关测试,并负责修改缺陷,完善软件模块6负责编写项目技术相关文档,进行项目技术总结,以积累和分享项目经验素质和能力要求1具有较强的问题判断和解决能力2具有较强的书面沟通能力3具有较强的学习能力4具有很强的责任心5有一定的外语读写能力专业知识结构要求1熟悉软件设计理论、实践和工具,以准确无误地理解相关设计;2掌握软件编程理论、实践和工具,包括面向过程/对象的编程技术和统一建模语言等;3掌握将用于实现系统的开发语言和编程技能(例如:Java、C+、汇编语
9、言等);4掌握数据库或中间件技术;5掌握开发测试流程和测试技术(特别是单元测试);6熟悉相关配置管理工具;7了解相关业务领域知识8掌握软件开发过程方法9了解需求分析方法10.2 桥梁工程师(Bridge Software Engineer,BSE)软件外包行业中有别于其他软件企业的一个特殊职位;指常驻于发包方现场,能够与发包方直接进行交流和沟通,从而起到业务窗口和桥梁作用的复合型软件工程师;在建立离岸接包交付团队与在岸发包方项目团队对于需求的一致理解、品质把握和日程控制方面的作用十分重要,经验及技能的要求非常严格;软件外包行业中属于较紧缺的资源,职业发展前景非常广阔。10.2 桥梁工程师(Br
10、idge Software Engineer,BSE)典型在岸-离岸团队建制下的BSE:10.2 桥梁工程师(Bridge Software Engineer,BSE)典型的BSE岗位描述:岗位职责1负责理解、传递发包方的项目需求2负责配合发包方对离岸交付成果物的测试和验证3平缓衔接发包方团队和离岸交付团队在项目进度、需求确认、成果物评价等的工作4在岸现场的必要技术设计开发、测试及技术支持5项目范围内与发包方进行项目层面的商务沟通素质及能力要求1具有很强的外语沟通能力2具有很强的分析和解决问题的能力3具有必要的软件专业技能4熟悉发包方的商务习惯5具备较强的项目管理能力6具备对项目成员的指导和作
11、业指示能力专业知识要求1深入理解软件外包业务的流程和方法2掌握软件项目管理标准体系和方法论3熟悉相关业务领域知识4掌握软件开发方法学5掌握软件需求开发、设计方法及至少一门开发语言10.3 软件架构设计师软件架构师是将客户的业务需求转化为软件可实现的系统架构蓝图的关键角色;软件架构师是软件项目关键技术选型、架构规划和关键技术决策的核心;软件架构师最重要也是最需要掌握的知识是基于技术选型的软件架构模型及设计模式;软件架构师需要具有足够的行业业务知识。10.3 软件架构师典型的软件架构师岗位描述:岗位职责1参加技术架构编制,参与重大项目的技术架构评审2负责理解、评价并接收系统业务需求,管理非功能性系
12、统需求3负责评估和管理软件开发的技术风险4负责对软件架构的设计,对整个软件结构、关键构件、接口、机制和开发策略的设计5负责推动与协调整个项目中的技术活动,为设计和开发提供指导,确保相关决策能够有效地传达和贯彻6负责评估软件架构的实现7工作结果有清晰的文档描述并存档,保证被其他方向复用的方便性,保证对其他方向的有效支持素质及能力要求1具有很强的成就导向2具有很强的沟通能力3具有很强的影响力4具有很强的问题判断与解决能力5具有很强的学习能力6具有较强的创新能力专业知识1掌握需求分析和需求管理方法和工具2掌握业务领域知识、业务分析方法3精通软件架构设计理论、实践和工具4. 精通主流的设计模式、软件开
13、发方法学10.4 质量工程师/过程改善顾问质量工程师是随着软件业界越来越重视并导入系统的质量管理体系而产生的新的岗位分支;独立于项目以独立审核、审计的方式监督项目各阶段的活动执行状态,为项目经理和管理层提供反映项目执行品质的信息和数据;工作思路是“用软件过程的质量保证项目交付的质量”,其基本的逻辑是由于交付的软件产品是有一系列过程活动产生的结果,过程的质量是过程结果质量的重要保证;质量工程师(Quality Assurance Engineer)与测试工程师(Test Engineer)就其工作依据、工作内容和职责看是完全不同的;过程改善顾问是软件企业中建立和维护软件过程体系的专家,是质量工程
14、师发展的更高阶段。10.4 质量工程师/过程改善顾问典型的质量工程师岗位职责描述:岗位职责1协助过程改善顾问进行过程改进工作2协助项目经理根据发包方及项目的需要,对组织过程标准进行裁剪,定义项目软件过程3协助项目经理策进行项目策划4负责确定项目的质量管理活动,协助项目经理制定质量保证计划5负责监督项目开发过程的执行,评价项目活动和工作产品,执行验证和确认活动6在项目生命周期中的各主要里程碑,组织复审活动,以确保项目活动和工作产品的质量,控制项目的进度和成本风险7负责软件度量数据的分析和反馈工作8负责对项目成员进行过程方面的培训和指导素质和能力要求1具有良好的沟通能力2具有较强的文档撰写能力3具
15、有很强的工作责任心4具有较强的分析和解决问题能力5具有较强的学习能力10.4 质量工程师/过程改善顾问典型的过程改善顾问岗位职责描述:岗位职责1负责策划、推动过程改进工作2负责根据组织标准过程,裁减项目的软件开发过程,满足具体项目的需要3负责对项目成员进行过程方面的培训和指导4负责总结项目的最佳实践经验,并推广应用这些经验,以促进组织过程能力和人员成熟度的提高5必要时,协助项目负责人策划项目6负责相关过程评估工作,参与评审素质和能力要求1具有较强的成就导向能力2具有很强的问题判断与解决能力3具有较强的学习能力4具有很强的沟通协调能力5具有很强的文档撰写能力6具有一定的创新能力专业知识1掌握相关
16、业务领域知识2掌握软件开发方法学3掌握质量模型及标准4掌握软件开发度量5掌握软件开发过程和技术实践6掌握过程改善的方法、实践和工具7掌握项目管理体系知识10.5 测试工程师是软件开发过程中检验系统是否满足需求以及预期运行结果与实际运行结果是否一致的重要技术角色;在美国、日本等软件行业高度成熟的国家,很多以软件产品为主营业务的公司,软件工程师与测试工程师的数量比例可以达到11,有的公司甚至一名软件工程师对应23名测试工程师;在以行业解决方案及软件服务为主营业务的公司,专业的测试工程师比例也可以达到30%左右;测试工程师纵向可以发展成为测试设计师、测试经理,横向可以发展成为高级软件工程师、项目经理
17、。10.5 测试工程师典型的测试工程师岗位职责描述:岗位职责1支持制定测试策略和设计测试过程,负责准备和搭建测试环境2根据系统分析和软件设计文档,负责进行所承担模块的测试设计,并指导他人进行测试设计3参与测试设计的评审4按照测试设计文档,负责执行所承担功能模块的测试过程,提交缺陷报告,并反馈和跟踪缺陷的修改5负责对开发人员修改过的缺陷进行测试确认,形成测试报告6配合开发人员进行缺陷分析素质及能力要求1具有很好的沟通能力2具有很好的问题判断与解决能力3具有很强的责任心4具有较强的文档撰写能力专业知识1了解业务领域知识2掌握各种测试理论和方法3熟悉测试设计4掌握测试流程及验证方法5掌握软件测试工具
18、6熟悉开发语言工具7熟悉软件开发方法10.6 项目经理是软件外包项目成功与否的关键角色;确保项目启动时定义的目标得以实现,领导项目团队按时、保质并在预算成本范围内完成项目交付工作;需要在行业技能、技术上和项目管理与控制方面有充分的经验;也必须在沟通能力、人际交往能力和团队影响力等方面有充分的技能。众多的软件发包企业明确要求接包方的项目经理必须通过国际项目管理专业人员资质认证。10.6 项目经理PMP:Project Management Professional, 由美国项目管理协会(Project Management Institue,PMI)发起的用于评估项目管理人员知识技能的资质认证,
19、是目前项目管理领域最具价值的认证和项目经理资质标准;PMBOK:Project Management Body of Knowledge,即PMI提出的项目管理知识体系,是PMP认证的基础最新的PMBOK第五版发布于2012年,分为10个知识域。10.6 项目经理PMBOK的10个知识域:项目集成管理:包括制定项目章程,制定项目初步范围说明书,制定项目管理计划,指导与管理项目执行,监控项目工作,实施整体变更控制和结束项目或阶段7个子过程;项目范围管理:包括范围规划、范围定义、制定工作分解结构、范围确认和范围控制5个阶段;项目时间管理:包括活动定义、活动排序、活动资源估算、活动时间估计、项目进度
20、编制和项目进度控制6项任务;10.6 项目经理PMBOK的10个知识域:项目成本管理:包括成本估计、成本预算和成本控制3个子过程;项目质量管理:包括质量规划、质量控制和质量保证3个过程;项目人力资源管理:包括人力资源规划、团队组建、团队建设和项目团队管理4个过程;项目风险管理:包括风险管理计划、风险识别、定性风险估计、定量风险估计、风险应对计划和风险控制6个过程;10.6 项目经理PMBOK的10个知识域:项目沟通管理:包括编制沟通计划、信息传递、绩效报告及利害关系管理等过程;项目采购管理:主要包括编制采购计划、编制询价计划、询价、选择供应商、合同管理及合同收尾等过程;项目干系人管理:包括识别
21、干系人、规划干系人管理、管理关系人参与及控制干系人参与等4个过程。10.6 项目经理典型的项目经理岗位职责描述:岗位职责1负责与客户达成一致业务目标和清晰的业务前景,确定项目范围,并在项目执行过程中及时掌控和管理需求范围的变化2负责组织架构师、核心软件工程师、质量工程师、项目测试经理及其他相关方进行项目策划,制定项目计划和裁减项目规范和指南,并掌控进度情况及计划的变更3根据组织内部要求和客户要求,定义项目质量、成本及交付日程指标并负责达成4负责建立与客户方的沟通计划,及时了解客户的满意度,并督导项目组织的适应性改善5负责项目内部的资源调动,解决项目中的重大质量、成本及交付日程相关问题6负责项目
22、团队的建设和员工的培养,保持团队的凝聚力和战斗力7接受组织内部实施项目质量保证要求和项目审计(质量、成本、交付日程及客户满意度评估)。素质及能力要求1具有较强的成就导向能力2具有很强的计划与沟通能力3具有较强的组织协调能力4具有较强的发展他人和领导能力5具有很强的问题判断与解决能力6具有较强的压力管理能力专业知识1掌握相关业务领域的知识2掌握软件开发方法学3掌握系统的项目管理理论和方法4掌握需求管理和变更管理5掌握软件工程的相关知识6掌握质量模型7掌握配置管理理论和工具第十章思考题u请简述软件工程师的基本工作职责、素质及能力要求。答案要点:详细设计、代码实现、测试、文档编写、问题判断与解决、学
23、习/沟通能力、责任心、外语能力;开发语言、软件工具、设计理论 。u请简述从软件工程师向项目经理发展的一般路径,其在发展过程中的每个阶段需要加强的关键能力项都是什么。答案要点:略。uPCMM是什么?请概要描述PCMM的5级成熟度。答案要点:人力资本成熟度模型、已管理级、已定义级、可预测级、优化级。u请概要描述PMBOK是什么,PMBOK的知识域包括哪些。答案要点:PMI提出的项目管理知识体系Project Management Body of Knowledge、项目集成管理、项目范围管理、项目时间管理、项目成本管理、项目质量管理、项目人力资源管理、项目风险管理、项目沟通管理、项目采购管理、项目干系人管理