软件项目管理
                                
                                课程收益:
	华为研发能力已经可以和世界级的企业相抗衡,华为的产品研发中大部分比例是软件开发,而且是功能庞大复杂的软件开发。华为是如何做好软件的?开发过程是什么样子的?如何进行软件
项目管理的?为何华为出来的软件工程师广为其它企业所欢迎?其实,华为研发人员在入职后的三个月左右,都必须参加一个为期5天的被称为miniproject实战性培训,通过培训对新员工进行“洗脑”,装备华为式软件开发过程和方法。
 
	关于软件工程和项目管理的书籍和培训不少,但是它们大都是理论性的、概念性的,看完了、听完了,还是不知道具体怎样做软件项目。本软件项目管理实战演练课程,借鉴了华为miniproject实战培训,并结合多年的咨询、培训经验,使课程具有通用性,在课程中安排大量的案例分析和演练活动,可以让学员亲身感受国内最优秀的研发企业是如何进行软件开发和管理的,从中将收获具体的、行之有效方法,可以帮助项目管理者和开发人员解决长期所面临的下列困惑,这些困惑也曾是华为管理者和开发人员所面临的。
	本课程将解决如下困惑:
	①.为何有些项目会夭折?或收益率没有达到预期?有什么好的方法和过程来尽可能避免这种状况的出现?
	②.项目计划一般流于形式,如何制定有效的项目计划?
	③.对于进度计划,如何在初始就尽可能地做准确?
	④.当项目面临无法达到的工期要求、人员又不充足等问题,如何来计划项目?
	⑤.周边部门/项目组常常不能很好地配合工作,有什么好方法吗?
	⑥.项目怎样监控?周报怎样写?例会如何有效开?
	⑦.风险管理容易流于形式,如何做好风险管理?
	⑧.项目进行过程中如何有效地调整计划?
	⑨.……
	最后,引用一位学员培训后的感言:“我做软件开发12年了,今天我才知道软件应该怎样开发!”愿本课程能让大家少走12年的弯路!
	课程背景:
	据权威机构统计,很多项目失败并非技术因素导致,而是由于项目管理不善导致。在许多企业里,软件项目经理都是技术出身,没有经历过专业化的培训,即使参加过PMP培训和认证,但是由于没有接受过有针对性的软件项目管理培训,不具备软件项目管理技能,开发过程随意、混乱,导致项目延期、质量低下、没有技术文档或不全等许多问题,结果把项目带到失败的境地。
	本培训将学员划分小组,虚拟为一个项目组,同时以多个软件案例项目贯穿培训始终,通过对这些案例项目的各个环节进行实战性的演练和对演练结果的分享和点评,从而深刻理解和掌握项目管理知识和技能。
	课程特色:
	实战性:本课程具有很强的实战性,以多个软件项目案例作为培训从始至终的演练对象,通过学员的实际演练、讨论和老师点评,掌握软件项目开发和管理的各个重要环节。
	系统性:系统地讲解和演练软件项目管理的各个环节,使学员掌握软件管理全面。
	针对性:讲师拥有辅导过上百个项目的经历,针对国内企业软件项目开发和管理普遍存在的问题,结合国内企业特点、开发工程师的特点,有针对性地、重点地进行讲解、演练和点评。
	课程大纲:
	1.软件项目管理概述
	本单元学习目标:对软件开发流程体系有初步的认识,了解项目管理概况,掌握立项过程和主要活动的实践方法
	1.1.案例分析:K公司的智能手机项目为何失败了?
	1.2.从统计数据看软件项目管理现状
	1.2.1.18%的项目失败,53%的项目受到质疑,仅有29%的项目成功了
	1.2.2.项目失败的表现:进度超期,成本超预算,质量不满足客户要求,项目结束前被取消…
	1.3.研讨:根据本公司情况,讨论有哪些主要原因导致项目失败。
	1.4.剖析项目失败的原因
	1.4.1.不明确的项目目标
	1.4.2.拙劣的项目策划
	1.4.3.缺乏有效项目范围控制
	1.4.4.……
	1.5.项目管理的定义和作用:项目管理不是为了管理而管理,消除项目的原因、让项目走向成功才是项目管理存在的价值
	1.6.项目管理涉及的领域:通过案例引出范围管理、
时间管理、
成本管理、质量管理、风险管理……
	1.7.研讨:是不是具备了项目管理各领域知识和技能就能把项目做好?
	1.8.案例分享:华为的软件项目是如何管理的
	1.9.项目管理成熟度等级
	1.9.1.项目级的初级项目管理
	1.9.2.组织级的集成项目管理
	1.9.3.基于数据的量化项目管理
	1.10.过程资产库介绍
	1.11.技术重用平台介绍
	1.12.软件项目分类及其不同特点
	1.12.1.项目型项目VS产品型项目
	1.12.2.纯软项目VS嵌入式软件项目
	1.12.3.项目VS项目群
	1.12.4.……
	2.项目启动
	本单元学习目标:掌握立项过程和主要活动的实践方法,学会如何做“正确的项目”,如何识别项目干系人及其期望、确定项目目标
	2.1.项目五大过程介绍:每个关注点和主要活动
	2.2.案例分享:华为软件项目立项过程
	华为如何做了“正确的”项目
	2.3.演练:识别AHS项目的目标和干系人及其期望
	讲解成功项目的定义
	识别干系人期望及获得干系人承诺的重要性
	2.4.演练:对AHS项目进行可行性分析
	讲解项目的可行性分析要从哪些维度入手
	2.5.项目工作任务书(SOW)
	2.5.1.SOW包括的内容
	2.5.2.从SOW的制定到审批确认的过程讲解
	2.6.演练:为AHS项目制定SOW
	3.项目估算
	本单元学习目标:掌握软件估算过程和方法,以及如果根据估算结果调整项目目标
	3.1.案例分析:为何两个项目两种结局?
	讲解项目估算的重要性
	3.2.演练:体重估算练习
	3.3.讨论:从体重估算练习中我们学到了哪些估算原则和要点
	3.4.软件估算过程
	3.5.软件估算的常见方法介绍
	3.5.1.WidebandDephi方法
	3.5.2.类比估算法
	3.5.3.Proxy-based估算法
	3.5.4.T-Shirtsizing法
	3.5.5.FPA
	3.5.6.COCOMOII
	3.6.演练:估算能力测试
	3.7.根据估算能力测试演练结果讲解估算结果对执行的影响
	4.进度计划
	本单元学习目标:掌握如何根据估算结果调整项目目标,制定可行的进度计划
	4.1.演练:工作量与资源等方面冲突时,如何调整计划
	4.2.项目四要素介绍,如何调整项目计划使得计划可行,并点评演练结果
	4.3.演练:根据SOW、估算表等计划项目详细进度
	4.4.制定进度计划所要考虑的要点,并点评演练
	5.软件需求和项目范围管理
	本单元学习目标:掌握需求分析方法和需求文档的写作方法,从源头上把控好项目的质量,减少返工,提高效率;通过写好需求文档,明确项目范围,并掌握需求变更控制过程方法以有效控制范围。
	5.1.案例分析:AHS项目的软件需求和项目范围管理存在哪些问题
	5.2.需求的重要性
	5.2.1.需求对项目的进度和质量影响
	5.2.2.需求对测试活动和其它相关组的影响
	5.3.需求开发典型问题
	5.4.案例分析:请分析某项目的需求文档有什么问题,如何改进
	通过案例,说明什么是好的需求文档,进一步体会需求问题为项目带来的后果。
	5.5.造成需求开发典型问题的原因
	5.6.软件需求过程介绍,需求开发介绍,包括需求挖掘、分析、文档化、评审确认等
	5.7.软件需求挖掘和分析过程
	5.7.1.需求层次:needs,feature和requirement
	5.7.2.需求来源和获取方法,如客户访谈、竞争对手产品分析等
	5.7.3.需求分析方法和工具,如用例图
	5.8.高质量需求文档的标准
	5.8.1.好的需求文档特点
	5.8.2.需求文档中避免出现的一些词汇
	5.8.3.演练:写出一功能需求的输出部分
	5.9.总结:如何制定出高质量的需求文档
	5.10.演练:当需求发生了变更,项目应该怎样做
	5.11.需求变更
	5.11.1.通过有序需求变更过程使变更合理、受控
	5.11.2.计划的变更要与需求变更协同起来
	6.风险管理
	本单元学习目标:掌握风险管理过程和方法,学会如何让风险管理不流于形式,让风险管理落地、为项目带来价值
	6.1.风险和问题
	6.1.1.什么是风险,什么是问题
	6.1.2.什么是风险管理,什么是
危机管理,风险管理的意义在哪里
	6.1.3.是否所有的风险都应该管理起来?
	6.2.介绍风险管理全过程
	6.3.演练:识别AHS项目风险
	6.4.如何识别风险
	6.4.1.头脑风暴法
	6.4.2.噩梦法
	6.4.3.SEI分类法
	6.4.4.组织级风险库
	6.5.演练:描述风险并制定风险响应计划
	6.6.如何正确描述风险,制定有效的风险响应计划应对风险,并点评风险演练结果
	6.7.如何对风险进行监控
	6.8.剖析风险管理不落地的原因
	7.项目质量管理
	本单元学习目标:掌握质量管理方法,区分质量保证和质量控制,学会如何通过保证过程的有效性从而保证项目质量,如何有效实施质量控制活动(评审和测试)来提升产品质量
	7.1.质量保质和质量控制
	7.1.1.区分质量保证和质量控制
	质量控制关注产品,被动的,去发现缺陷
	质量保证关注过程,主动的,去预防缺陷
	7.1.2.从质量铁三角看过程的重要性,仅仅是牛人和工具是无法保证项目成功的
	7.1.3.流程本质是什么
	流程是最佳实践的固化,不应是降低效率的官僚体系
	关注过程的项目和不关注过程的项目效率对比
	7.2.产品质量和过程质量
	7.2.1.McCall软件质量模型,从三个方面对软件质量进行系统全面地分类说明
	产品运行方面:正确性、
可靠性、可使用性、效率、完整性
	产品修正方面:可维护性、测试性、灵活性
	产品转移方面:互联性、可移植性、复用性
	7.2.2.什么是过程质量,从三个方面说明
	组织级流程定义质量
	研讨:从“不拉马的士兵”看到什么?
	剖析为何许多项目不愿意走流程,或者走了流程效率反而会下降。
	项目级流程裁剪质量
	过程执行的质量
	7.2.3.过程质量定义以及过程质量和产品质量的关系
	好的过程体现了产品质量要求
	过程质量决定了产品质量
	7.2.4.演练:如何在项目计划中体现质量要素
	7.3.过程质量保证的角色:QA
	7.3.1.研讨:在项目中,QA的目标和项目经理的目标是否相同?
	剖析QA和项目经理常常发生冲突的根源
	国内QA普遍的角色错位
	7.3.2.QA的律师角色
	7.3.3.QA的教练角色
	7.3.4.QA的医生角色
	7.3.5.QA的警察角色
	7.3.6.QA的牧师角色
	7.4.产品质量控制手段:评审
	7.4.1.评审的意义
	7.4.2.案例分析:剖析某项目的技术评审
	7.4.3.评审的过程
	7.4.4.技术评审FAQ
	作者不愿意别人提出问题,评审人员为了顾及面子不愿意提出问题怎么办?
	评审人员把评审当成额外的工作,不愿意参加评审怎么?
	评审人员的技能不足怎么办?
	评审人员只与评审对象部分内容部分相关,对他的评审又什么要求?
	……
	7.5.产品质量控制手段:测试
	7.5.1.研讨:阻碍项目进行有效测试有哪些因素?
	7.5.2.测试的常见误区
	7.5.3.测试的
心理学问题:测试的目的为了发现问题,不是为了证明程序是对的
	7.5.4.测试的经济学问题:如何在有限的时间尽可能发现更多的缺陷
	7.5.5.测试分类
	静态测试vs动态测试
	黑盒测试vs白盒测试
	手工测试vs自动化测试
	按阶段分类:UT/IT/ST/Alpha测试/AT/Beta测试
	7.5.6.测试过程,包括制定测试策划和计划、设计测试用例和测试环境准备、测试执行、测试分析
	8.项目监控和执行
	本单元学习目标:掌握项目监控方法和过程监控方法,学会如何有效重计划,剖析项目失控的原因并给出解决建议
	8.1.项目监控方法简介
	例会,如何有效召开例会
	报告,报告的内容是什么,如何写好报告
	度量,如何从数据中看项目状况
	重计划,怎样把计划调整得更有效,而不是一遍又一遍地无谓地更改计划
	8.2.演练:对AHS项目进行重计划
	8.3.项目计划的变更管理
	8.4.讨论:项目计划与执行偏差的原因分析
	8.5.逐一剖析偏差原因并给出解决建议
	9.项目关闭
	本单元学习目标:掌握项目关闭过程、如何对项目进行总结,以累积组织过程资产
	9.1.项目关闭过程和主要活动
	9.2.演练:请对AHS项目进行关闭总结
	9.3.项目总结维度、时机和内容
	10.答疑、分享与总结