项目管理培训软件开发中的项目管理1李天泉litianquan1@hotmail.com18601242292课程介绍•本课程主要讲授项目管理基础知识•适用于项目经理•面向的学员是新的项目经理以及对规范流程不熟悉的项目经理2概要•项目管理概述什么是项目什么是项目管理项目管理知识体系•软件开发中的项目管理软件项目管理过程•案例分析与讨论进度、质量、成本和沟通管理3什么是项目?•上课•野餐活动•集体婚礼•社区保安•开发微软的操作系统•每天的卫生保洁•神州飞船计划4什么是项目?•项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的一个临时性的努力。•项目是以一套独特而相互联系的任务为前提,有效地利用资源,为实现一个特定的目标所做的努力。项目的特征有哪些?5项目的特征•有明确的目标•项目之间的活动具有相关性•限定的周期•有独特性•资源成本的约束性•项目的不确定性•结果的不可逆转性6项目与日常运作78概要•项目管理概述什么是项目什么是项目管理项目管理知识体系•软件开发中的项目管理软件项目管理过程•案例分析与讨论进度、质量、成本和沟通管理软件项目面临的问题•计算机广泛应用的瓶颈无规则、混乱的开发状态,进度滞后,费用超支等失败的例子很多,如FAA,AshtonTate……•业务失败,合同纠纷,法律诉讼,客户投诉等等困扰着软件业•对于软件开发商的问题手工作坊式的软件开发项目时间总是推迟,无法保证按期提交项目预算成倍超过项目人员不断流动•对于客户的问题为什么项目要这么多费用为什么开发时间要这么长主要开发人员是否能得以保证提交的系统错误太多9缺乏软件过程管理能力•上述问题主要原因是缺乏软件过程能力:开发过程随心所欲时间计划和费用估算缺乏现实的基础管理者主要在应付突发事件对产品质量缺乏客观基础软件开发的成败建立在个人能力基础上10什么是项目管理?•项目管理是一系列的伴随着项目的进行而进行的、目的是为了确保项目能够达到期望的结果的一系列管理行为。•项目管理的质量与软件产品的质量有着直接的对应关系。11软件项目管理常见的问题•常常先承担了项目开发责任,然后担任项目经理•项目管理常常不是通过系统的学习的来的,而是在实践中摸索出来的•缺乏项目经理的职业意识•经常面临失败的经历12项目管理的难点-元素间的相互作用13项目管理的难点-实现项目目标的制约因素14概要•项目管理概述什么是项目什么是项目管理项目管理知识体系•软件开发中的项目管理软件项目管理过程•案例分析与讨论进度、质量、成本和沟通管理•Q&A15项目管理知识体系165个标准化过程组17PMBOK的5个标准化过程、9大知识领域和39个标准化模块关系脉络图执行过程--结束过程--控制过程--计划过程--启动过程项目范围管理项目成本管理项目沟通管理项目人力资源管理项目采购管理项目风险管理项目质量管理项目时间管理项目集成管理启动范围计划范围定义项目计划编制活动定义活动排序活动工期估计进度计划编制资源计划成本估算成本预算质量计划组织计划人员招募沟通计划风险管理计划风险识别风险定性分析风险定量分析风险应对计划采购计划招标计划项目计划执行保证质量团队建设信息发布招标货源选择合同管理集成变更控制范围核实范围变更控制进度控制成本控制质量控制绩效报告风险跟踪控制行政终止合同收尾18SampleQuestions1.Adocumentthatformallyrecognizestheexistenceofaprojectisa:A.GanttchartB.WBSC.ProjectcharterD.Scopestatement2.Decompositionisusedindeveloping:A.ThemanagementplanB.ThecommunicationsplanC.TheearnedvalueD.TheWBS3.Thecriticalpathonaprojectrepresents:A.TheshortestpaththroughanetworkdiagramB.ThelongestpaththroughanetworkdiagramC.ThemostimportanttasksonaprojectD.Thehighestrisktasksonaproject19概要•项目管理概述什么是项目什么是项目管理项目管理知识体系•软件开发中的项目管理软件项目管理过程•案例分析与讨论进度、质量、成本和沟通管理•Q&A20软件开发中的项目管理启动阶段细化阶段构造阶段移交阶段开发过程需求设计实现集成测试管理过程项目启动、立项、过程定义、项目计划、风险管理、组间协调、子合同管理、项目跟踪与监控、评审、项目总结、支持过程配置管理、质量保证、培训、用户、维护启动阶段里程碑移交阶段里程碑构造阶段里程碑细化阶段里程碑21项目管理过程过程定义项目策划软件工程活动项目跟踪与监控项目总结组间计划组间约定组间问题组间约定子合同管理评审定量过程管理、软件质量管理项目启动风险管理、需求管理22项目启动和立项•申请启动输入:《任务委托意向书》或外部启动文档输出:已批准的《任务委托意向书》或《项目初步构想》•开通研发管理资源输入:已批准的项目启动文档输出:《研发管理系统项目开通表》、《研发项目编号申请简化版立项报告》•开项目启动会(启动会可裁剪)输入:项目的QA人员确定输出:《启动阶段计划》•启动阶段里程碑评审(立项)输入:项目范围清晰,关键风险已识别且有规避措施或者已规避输出:《启动阶段里程碑报告PPT》、已批准的《项目工作描述》或《立项报告》、《软件开发计划》、《项目软件过程定义》确定是否启动该项目申请资源,保障项目管理活动动员项目成员评审项目范围、风险、资源投入,决定项目是否继续开展,并确定项目的考核标准23过程定义•选择生命周期标准过程的生命周期模型定义•裁剪过程元素的活动,说明裁剪理由标准过程元素的定义和裁剪原则•决定工具和方法,以及进入和完成准则•输出:《项目软件过程定义》明确项目的生命周期,使得项目的过程符合组织的要求,指导项目的管理和工程活动。24项目计划•根据过程定义划分任务(WBS)•估计规模、工作量、成本等并建立阈值;安排进度;制订培训计划、评审计划、质量目标、风险管理计划等估计规程历史数据风险管理规范使过程定义具体化,从而切实指导工程和项目管理活动25计划的版本演化细化软件开发计划,保证计划根据实际情况及时更新,使得计划具有指导意义26标准过程、项目过程和计划的关系27Anywhere旅行社一个可以到世界任何地方的旅行社28精品线路——你的线路标准过程——项目过程意大利希腊罗马、威尼斯、米兰雅典、克里特岛飞机、汽车飞机、船食宿标准……法国、意大利、希腊旅行社提供各种精品线路,这类似于我们组织提供的标准过程你根据自己的情况选择你的线路,可能你去过罗马,那你就会裁剪掉它,这类似于我们的项目过程29旅行线路——行程项目过程——计划光有旅游线路还是不能马上就出发,我们还要计划一下具体的行程,这就类似于我们的项目计划30集成软件过程管理-CMM中的过程域过程文档样本库组织标准软件过程组织过程财富库过程数据库标准生命周期模型裁剪指南裁剪组织标准过程需求设计项目定义软件过程编码测试验收项目状态和缺陷报告软件开发项目计划,活动,过程和规程等等项目策划31项目跟踪与监控•开例会——项目例会会议纪要•数据采集和分析工作量管理进度资源跟踪•项目状态报告•阶段里程碑评审•风险跟踪和监控增加项目过程的可视性,使得对项目的管理能够起到切实有效的作用;尤其是当项目性能明显偏离软件计划时采取有效的措施32数据采集和分析工作量纪录数据采集756121110842193数据汇总表项目状态报告过程性能基线过程能力基线项目成员度量小组项目经理33风险管理•什么是风险?•风险管理模型识别分析计划跟踪控制沟通图1风险管理模型风险指数=概率×损失例如:A失火的概率为0.1%,损失为¥350,000,那么A失火的风险指数就是¥350,这可能是愿意为A失火付出的保险金尽早识别风险并采取有效的规避措施严重性可能性优先级高优先级中优先级低34组间协调•对象项目涉及到的系统组、硬件组、公司其他部门的软件组、项目合作单位的软件组、以及联想软件内部的其他软件组子合同方不属于此范围•目的建立一种软件工程组和其他工程组沟通的机制,使客户的需求能够更有效和迅速的得到满足•该活动的输出《组间计划》、《组间约定》以及《组间问题》35组间协调的活动•参与系统组的需求活动•制订《组间计划》•记录《组间约定》•跟踪组间的进展,必要时提出《组间问题》,共同商定解决方案认同!36子合同管理•子合同策划•子商选择•执行子合同•子合同验收与总结•子合同变更包含项目管理的所有内容!规范子承包商的活动,对子承包商的项目开发活动进行必要的、有效的监控,从而降低我方的风险37项目总结•项目总结报告与《项目状态报告》属一个系列总结项目的整体状态留下经验和教训给出建议•技术总结、测试总结、SCM总结、SQA总结、子合同总结对于OSSP的积累和过程改进非常重要!使项目中好的实践积累下来,并在适用的项目中得以推广;同时一些失误和无效的实践能够被记录并分析,以寻找改进的方式,避免再次出现同样的问题。38概要•项目管理概述什么是项目什么是项目管理项目管理知识体系•软件开发中的项目管理软件项目管理过程•案例分析与讨论进度、质量、成本和沟通管理•Q&A39案例分析与讨论一个软件开发项目已经立项,并进入设计阶段,项目是编写一个行业应用程序,项目经费160万元,开发团队6人,开发时间一年(12个月),且与其它两个公司一起协作完成该应用软件。合同中的开发协议规定,时间从经费到位时计算,12个月后交付程序。用户方先支付开发启动费50万元,如果按期交付客户测试,再支付剩余费用60万元,如果不能按期交付,每延缓一天,扣除滞纳金10%。通过客户验收,再给剩余的50万。其中某些模块的算法由另外两家提供。40请各小组讨论回答以下问题1.项目开始时,小组应当有什么样的约定(协议)?2.项目如何选择生命周期?如何计划项目时间并保证按时交付?3.项目经费如何分配?最后利润如何估计?4.在什么情况下,项目完全没有利润?5.如果开发过程中一人因故离职,应当有什么措施?6.不可预知(意外)因素可能有哪些影响项目开发?7.如何保证开发过程顺利推进?如何保证进度和程序质量?8.测试应当在何时介入,总体测试应当注意什么?9.如果不得以突破交付期,应当采取什么措施?41整体管理•软件项目中的整体管理–项目经理是一个集成者–范围、进度和成本–项目管理是平衡的艺术•解决的问题:进行整体的管理和控制,在软件的功能点、时间和可用资源之间找一个平衡点42范围管理•软件项目中的“范围管理”–MustHave,ShouldHave和BettertoHave–工作分解结构(WBS)–范围变更管理(ChangeControl)•解决的问题:需求蔓延43时间管理•软件项目中的时间管理–自底向上的时间估计与自顶向下的时间估计相结合–TimeBoxing和FixedShipDateMindset–BufferTime•解决的问题:制订合理的阶段计划,进度控制44成本管理•软件项目中的成本管理–资源的分配和计划安排:人力、设备、材料–考虑节假日、开会、培训等时间–应急储备和管理储备•解决的问题:有效分配资源,将成本控制在预算之内45质量管理•质量计划的制定和执行--质量目标管理子系统•独立于项目组的质量保证组--质量保证子系统•同行评审,进行缺陷管理--评审管理子系统•专业测试组、Bug管理、测试计划制订和执行--测试管理子系统•解决的问题:产品与过程质量的保证,提交高质量软件产品46沟通管理•软件项目中的沟通管理–项目经理90%的时间花在沟通上–项目管理是沟通的艺术–沟通方法:正式书面(立项报告或管理计划);非正式书面(工程师日志、备忘录);正式口头(讲