您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 用CMM_模型透视微软公司的项目管理过程
@AllrightsreservedbyJeffXiong从CMM模型透视微软的软件开发管理实践微软项目经理熊明华@AllrightsreservedbyJeffXiongCMM(CapabilityMaturityModel)概述•什么是CMM?(能力成熟模型)–对软件开发管理的最佳方法的描述。–由美国SEI根据对软件管理作业的评估和软件行业反馈于1991年规范制定。–软件管理的指导准则,不是具体实现方法。–公认的软件管理流程改善模式。–该软件管理标准仍在不断改进。@AllrightsreservedbyJeffXiongCMM概述•为什么CMM如此热门?–美国选择软件承包商的强制标准。–对软件质量至关重要的大型公司,是很好的软件管理标准。–软件公司可用来评估和改进软件管理流程。–若恰当使用CMM,有助于软件公司提高效率和软件质量。@AllrightsreservedbyJeffXiongCMM概述•实施CMM过程中存在哪些问题?–实现CMM没有权威的标准。–CMM需求庞大,实施需要较长时间,且费用很高。–许多公司在实施半年内,或只达到较低级别的CMM后就放弃。–对于追求高效的小公司过于繁琐。–没有国际统一认证机构,CMM审核非常耗时、频繁且昂贵。@AllrightsreservedbyJeffXiongCMM级别的定义等级特性重要操作领域5Optimizing可优化的对软件管理不断改进操作改进管理新技术管理防止失误4Managed可掌控的对软件开发流程有定量分析,对软件质量定性控制软件质量控制流程定量分析控制3Defined规范化的有规范的软件开发操作流程同级审核项目组间协调软件产品工程集成式软件管理培训计划公司内规范流程公司内注重流程2Repeatable可重复的有管理控制,有稳定的规划和产品基准,但开发仍倚赖个人。软件配置管理软件质量保证软件分包管理软件项目跟踪和监控软件项目规划软件需求管理1Initial初始的个人英雄@AllrightsreservedbyJeffXiongCMM各级别软件管理透明度@AllrightsreservedbyJeffXiongCMM各级别公司达到比例%0102030405060708090100Level1Level2Level3Level4Level519961989基于从1996年以来的对901家组织机构进行的最新评估FromSEI’s“ProcessMaturityProfileoftheSoftwareCommunity,SEMAUpdate,August2000。”@AllrightsreservedbyJeffXiongCMM第一级特点与问题•没有稳定的软件开发与维护流程操作。–没有有效的项目规划。–开发过程是应急式反应系统。–任务紧迫时只做编码与简单测试。•软件进度、花费、功能和质量变化莫测。•软件成功依赖个人。•项目较大和复杂时,管理经常漏洞百出。@AllrightsreservedbyJeffXiong如何摆脱CMM第一级•微软经验:–以团队的方式工作,选择有力的领导来管理。–对团队成员明确分工与责任。–采用规格说明书,对开发周期各个阶段进行验收和控制。–进度、花费和功能等需文档记录并适时调整。@AllrightsreservedbyJeffXiong微软产品组行政架构ProductUnitManagerGroupPMDevManagerTestManagerPMLeadPMDevLeadDevTestLeadTester@AllrightsreservedbyJeffXiong微软项目组工作架构DeveloperLeadDeveloperDeveloperDeveloperDeveloperTesterLeadTesterTesterTesterTesterProductManagerProgramManagerUserEducationUsabilityEngineerDesigner@AllrightsreservedbyJeffXiongCMM第二级主要实践领域•需求管理(RequirementsManagement)•软件项目规划(SoftwareProjectPlanning)•软件项目跟踪和监控(ProjectTrackingandOversight)•软件分包管理(SubcontractManagement)•软件质量保证(QualityAssurance)•软件配置管理(ConfigurationManagement)@AllrightsreservedbyJeffXiongCMM第二级:需求管理•目标–软件规划、开发活动和产品必须同软件的系统需求保持一致。–控制软件的系统需求,并作为软件开发和管理的基准。•实践–与用户建立并保持软件项目需求协议。–在项目正式开始前审核系统需求,解决有关问题。–当系统需求修正时,其所涉及的软件规划、产品以及各项活动必须进行适当调整。@AllrightsreservedbyJeffXiongCMM第二级:需求管理•微软经验:–项目经理负责撰写需求文档,作为软件产品基准。–需求来源包括:•产品经理制定的客户和竞争对手研究报告•可用性工程师提供的产品可用性检测结论•Beta用户及重要客户意见反馈•公司战略方针和项目组间合作需要–需求变动时,项目经理负责落实项目各项相关修改,使与需求一致。@AllrightsreservedbyJeffXiongCMM第二级:软件项目规划•目标–记录项目的评估,用来规划和跟踪整个软件项目。–软件项目活动和投入是有计划的并有文档记录。–相关的组和个人同意他们对于软件项目所做的相应承诺。•实践–评估软件产品及所需资源的规模。–制定开发时间表。–确定及评估软件风险。–讨论各方投入。@AllrightsreservedbyJeffXiongCMM第二级:软件项目规划•微软经验–项目经理准备项目规划的草案。包括产品目标、基本功能集、进度、里程碑以及资源估算等。–项目经理主持由开发经理,测试经理及有关人员参加的Brainstorm会议,讨论该草案。–确定产品功能集,商定开发进度,并将未解决问题和行动项目分配给相关人员。–在一次或多次Brainstorm会议以后,解决全部项目规划的问题。–项目经理制定一页(高层次的)规划书,包括有优先级的功能集、资源估算、开发时间表及各种开发风险的评估。@AllrightsreservedbyJeffXiongCMM第二级:软件项目跟踪和监督•目标–根据软件规划书跟踪实际的结果和产品性能。–当实际结果严重偏离规划时,有步骤地采取措施矫正以缩小差距。–相关的组和个人同意对于软件计划的调整。•实践–根据规划文档中有关的评估、投入和计划跟踪并审核软件的完成结果。–根据实际结果调整这些计划。@AllrightsreservedbyJeffXiongCMM第二级:软件项目跟踪和监督•微软经验–PM主持每周的团队会议,交流项目的进展情况并撰写报告。–PM负责每天跟踪产品问题(Bug),必要时同开发组长与测试组长开”诊断会议”(Triage),用以监控Bug情况。–对多项目组合作的大型产品,由总经理和各项目经理组成战争团队(WarTeam),定时召开会议讨论影响产品的热点问题。–PM根据实际情况作出决策,修正项目计划各项,并通报有关方面予以实现。@AllrightsreservedbyJeffXiongCMM第二级:软件分包管理•目标–主承包商选择合格的软件转包商,并彼此接受承约。–双方随时保持通讯联系。–主承包商根据承约,对转包商的实际结果和性能进行跟踪。•实践–选择软件转包商。–同转包商确定承约。–跟踪并审核转包商的产品结果和性能。@AllrightsreservedbyJeffXiongCMM第二级:软件分包管理•微软经验–核心产品开发工作较少外包。–与微软合作的大公司开发人员常要在微软本部工作,便于通讯交流,更好的控制项目进度。–一些较外围工作,如培训课程设计、部分软件测试、许多本地化工作包括翻译、测试等外包给合格软件商。–对外包的软件商,微软派项目经理协商项目要求,并通过频繁电子邮件、定期会议和实地考察方式进行项目监控。@AllrightsreservedbyJeffXiongCMM第二级:软件质量保证•目标–有规划地进行软件质量保证工作。–客观地检验软件产品是否遵循已制定的标准、步骤和需求运作。–软件质量检验结果通报相关的组和个人。–把项目组内无法解决的问题提交给高级管理人员处理。•实践–审核并监测软件产品和运作,来验证是否符合已制定步骤和标准。–向软件项目组和其它相关负责人提供监测与审核的结果。@AllrightsreservedbyJeffXiongCMM第二级:软件质量保证•微软经验–微软组织结构保证软件测试组独立于项目经理和开发组运作。–测试规划由测试组长根据功能规格书制定,并由项目经理和开发组长审查通过。–测试人员根据规划执行整套测试。一般有BVT,SmokeTesting,PerformanceTesting等。–测试人员找到缺陷(Bug)后,立即将所有步骤,现象等记录在中央数据库RAID中,并发邮件通知项目经理和有关开发人员。–项目经理负责Bug处理,指定开发人员改正,或有必要时交给高级经理处理。@AllrightsreservedbyJeffXiongCMM第二级:软件配置管理•目标–有规划地进行软件配置管理工作。–软件产品能够标识版本,是可控制及可获取的。–在软件产品版本上的修改作业是受控制的。–软件功能基准调整后,相关组和个人可获知其状态和内容。•实践–在任意时间能确定软件的配置(如软件产品版本和描述)。–有系统地控制软件配置的调整。–在软件整个生命周期中,维持配置的完整性和可跟踪性。@AllrightsreservedbyJeffXiongCMM第二级:软件配置管理•微软经验–项目编码使用源代码控制和管理软件。–源代码改变都有记录,每次check-in须用电子邮件通知项目组和所有相关人员。–开发人员需每天执行Sync操作,和最新代码保持一致。–BuildTeam负责在每天固定时间,摄取当时的所有源代码和其它设置,运行生成产品,并标识版本号。–所有每日产生的产品存于服务器上,供查询和使用。@AllrightsreservedbyJeffXiongCMM第三级主要实践领域•公司内注重流程(OrganizationProcessFocus)•公司内规范流程(OrganizationProcessDefinition)•培训计划(TrainingProgram)•集成式软件管理(IntegratedSoftwareManagement)•软件产品工程(SoftwareProductEngineering)•项目组间协调(IntergroupCoordination)•同级审核(PeerReviews)@AllrightsreservedbyJeffXiongCMM第三级:公司内注重流程•目标–在整个公司中协调软件流程的发展和改进工作。–根据相关的流程标准来衡量所使用的软件流程的优缺点。–规划整个公司的软件流程发展及改进工作。•实践–发展并保持对公司和项目组的软件流程的理解。–协调对软件流程的评估、开发、维护及改进的工作。@AllrightsreservedbyJeffXiongCMM第三级:公司内注重流程•微软经验–公司范围内采用标准的项目管理工具/平台。如Raid,SLM,SourceDepot,LocStudio等。–所有项目使用相同或类似的软件开发流程。如check-in,dailybuild,bvt等。–由高效率工具组(ProductivityToolsGroup)开发软件流程管理平台,并负责在各个项目中推广。–由项目总结会(postmodern)来汲取经验,发现问题和提出流程改进意见。–在全公司范围内实施最佳实践活动。@AllrightsreservedbyJeffXiongCMM第三级:公司内规范流程•目标–公司开发和维护标准的软
本文标题:用CMM_模型透视微软公司的项目管理过程
链接地址:https://www.777doc.com/doc-780309 .html