•规范目的:–通过过程,而不是某个人或某种技术,来保证软件项目的成功是一个软件开发机构能够长期稳定发展的根本,也是本文的目的所在。•参考资料:–ISO9000、CMM(CapabilityMaturityModel)、CMMI(CapabilityMaturityModelIntegration)、SPP(SimplifiedParallelProcess)、SoftwareEngineering[Pressman]关于规范公司项目管理规范(一)项目运作过程中的角色常设角色临时角色机构过程改进项目管理过程项目研发过程机构支撑过程立项建议小组立项评审委员会结项评审委员会技术评审小组配置控制委员会软件工程过程组质量保证小组机构领导项目经理需求分析员技术预研人员系统设计人员开发小组测试小组配置管理员质量保证员外包管理员采购管理员培训管理员客户服务人员产品维护人员•在人员匮乏的情况下,可以一兼多职产品概念产品定义产品开发产品测试客户验收产品维护立项管理项目规划项目监控风险管理需求管理结项管理需求开发配置管理质量保证外包与采购管理培训管理项目管理过程项目研发过程机构支撑过程服务与维护技术预研系统设计实现与测试系统测试Beta测试客户验收第一课的内容1.立项管理•立项管理的目的是采纳符合公司获取最大利益的立项建议,通过立项管理使该建议成为正式的项目,杜绝不适合公司获取利益的立项建议被采纳,避免浪费公司的资源、资金、时间。1.立项管理•项目分类:–大项目:指开发周期大于18人月(事业部),24人月(研发中心)或需跨部门协作。–小项目:指开发周期小于18人月(事业部),24人月(研发中心)无需跨部门协作。1.立项管理小项目立项过程:1.立项管理•输出文档:–《立项调查报告》--选择–《立项可行性分析报告》--选择–《立项建议书》--必要–《内部立项评审报告》--选择1.立项管理•大项目立项过程(一):–内部评审专家组成员组成不做要求,即可全部来自事业部内部。–项目通过内部评审后,事业部技术负责人向总工办提交立项评审申请。总工办接受申请后通知技术委员会组织筹备项目立项评审。1.立项管理•大项目立项过程(二):–项目立项评审会由技术委员会主持,与会人员由评审专家组,项目建议小组,会议记录员组成。评审专家组一般由技术、市场人员组成,必要时可有人力、投资、物流人员参加。评审专家组需至少包含两名分别来自2个不同的事业部的成员。材料需提前两天发给评审委员,以便评审时能提有深度的问题。评审会后又评审委员会主席撰写《立项评审报告》。1.立项管理•大项目立项过程(三);–如果项目通过立项评审,则事业部技术负责人向总裁办提交立项评审申请。如果总裁否决项目立项申请则项目终止。如总裁批准项目立项则项目进入立项筹备,否则项目终止。–注:如项目由两个或两个以上事业部提出,则在项目提出时需每个事业部负责人同意才能继续,相应的项目建议小组组长由相关事业部负责人协商后任命,所有相关事业部都必须有项目建议小组成员。1.立项管理•项目筹备:–首先由机构领导参考立项建议小组和立项评审委员会的意见任命项目经理,并协助项目经理获得经费、人力资源、软件硬件资源。然后由项目经理组建项目组,开始执行项目研发和管理工作。2.项目规划2.1目的为项目的研发和管理工作制定合理的行动纲领(即项目计划),以便所有相关人员按照该计划有条不紊地开展工作。2.项目规划2.2规程划分及流程规程划分:项目估计、制定项目计划、审批项目计划、项目计划变更控制。项目规划流程图:2.项目规划2.3项目估计目的:估计项目的范围、产品规模、工作量、成本等,为制定《项目计划》提供依据。角色与职责:项目规划小组由项目经理和核心成员组成,所有人员共同参与项目估计。启动准则:机构领导已经批准立项;项目规划小组已经成立。输入:《立项建议书》和一些用户需求文档;用于项目估计的一些经验数据。输出:《项目估计表》附:《项目估计表》模板–必要2.3项目估计主要步骤:1)估计项目范围:规划小组根据用户需求,分解产品的功能。可用产品的WBS表示。2)估计产品规模:规划小组各成员根据WBS,先独立估计,然后汇总,取均值,保证个人估计差额小于10%。3)估计工作量:规划小组各成员独立估计,然后汇总分析,取均值,保证个人估计差额小于10%。4)估计成本:估计人力资源、软硬件资源、商务活动等成本。2.项目规划2.4制定项目计划目的:根据项目估计产生的数据,制定《项目计划》。角色与职责:项目规划小组所有人员共同制定《项目计划》。启动准则:项目估计已经完成。输入:《立项建议书》和一些用户需求文档;《项目估计表》。输出:《项目计划》附:《项目计划》模板2.项目规划2.项目规划2.4制定项目计划主要步骤:1)确定目标与范围2)确定过程模型3)制定人力资源计划4)制定软硬件资源计划5)制定财务计划6)分配任务并制定进度表7)确定下属计划2.项目规划2.5审批项目计划目的:主管领导审批《项目计划》,确保其合理性,符合公司实际情况。角色与职责:机构领导审批计划,如有不合理之处,责成规划小组修正。输出:修正后的《项目计划》,并附主管领导的审批意见。2.项目规划2.6项目计划变更控制目的:修改原《项目计划》不合理之处;控制《项目计划》的变更,防止发生混乱。角色与职责:机构领导审批变更申请;项目经理更新《项目计划》。输出:《项目计划变更控制报告》;新的《项目计划》。附:《项目计划变更控制报告》模板公司项目管理规范(二)第二课的内容产品概念产品定义产品开发产品测试客户验收产品维护立项管理项目规划项目监控风险管理需求管理结项管理需求开发配置管理质量保证外包与采购管理培训管理项目管理过程项目研发过程机构支撑过程服务与维护技术预研系统设计实现与测试系统测试Beta测试客户验收3.1目的通过调查与分析,获取用户需求并定义产品需求。需求开发和需求管理是相辅相成的两类活动,它们共同构成完整的需求工程。3.需求开发3.需求开发3.2规程划分及流程规程划分:需求调查、需求定义。需求开发流程图:3.需求开发3.3需求调查目的:获取用户的需求信息,经分析产生《用户需求说明书》。角色与职责:客户提供必要的需求信息;需求分析员调查、分析用户的需求。主要步骤:1)需求分析员调查用户需求;2)记录并分析需求信息;3)编写用户需求说明书;4)专家和用户评审并作书面承诺。输出:《用户需求说明书》附:《用户需求说明书》模板3.3需求定义目的:定义准确无误的产品需求,产生《产品需求规格说明书》。角色与职责:需求分析员定义产品需求;客户确认产品需求。主要步骤:1)需求分析员对《用户需求说明书》细化,产生详细需求;2)对较复杂的用户需求进行建模分析;3)撰写《产品需求规格说明书》;4)专家和用户评审并作书面承诺。输出:《产品需求规格说明书》附:《产品需求规格说明书》模板3.需求开发2.1目的在立项之后到开发工作完成之前的时间内,对项目将采用的关键技术提前学习和研究,尽可能早地发现并解决开发过程中将会遇到的技术障碍。2.技术预研2.2技术预研规程角色与职责:项目经理或技术负责人识别项目中的技术难题,指定预研人员攻克它。主要步骤:1)预研人员制定《技术预研计划》;2)展开技术预研;3)撰写《技术预研报告》;4)项目经理视情况决定是否对预研成果进行技术评审。附:《技术预研计划》模板、《技术预研报告》模板2.技术预研3.1目的设计软件系统的体系结构、用户界面、数据库、模块等,从而在需求与代码之间建立桥梁,指导开发人员去实现能满足用户需求的软件产品。3.系统设计3.2主要规程与过程示意图主要规程:概要设计、用户界面设计、数据库设计、模块设计。系统设计过程示意图:3.系统设计详细设计高层设计需求开发概要设计用户界面设计数据库设计模块设计实现与测试3.3概要设计目的:分析与设计软件的体系结构,产生《概要设计报告》。角色与职责:项目经理指定开发人员从事体系结构设计。输入:需求文档如《产品需求规格说明书》。输出:《概要设计报告》。结束准则:《概要设计报告》已完成,并通过技术评审。附:《概要设计报告》模板3.系统设计3.系统设计3.3概要设计主要步骤:1)设计准备;2)确定影响系统设计的约束因素;3)确定设计策略;4)系统分解与设计;5)撰写概要设计文档;6)概要设计评审3.系统设计3.4用户界面设计角色与职责:项目经理指定开发人员;如可能,邀请用户或美工协助设计。主要步骤:1)设计准备;2)用户界面设计;3)撰写用户界面设计文档;4)用户界面设计评审。结束准则:《用户界面设计报告》已完成,界面原型已通过评审。附:《用户界面设计报告》模板3.系统设计3.5数据库设计角色与职责:项目经理指定若干开发人员从事数据库设计。输入:需求文档;概要设计文档。输出:《数据库设计报告》。结束准则:《数据库设计报告》已完成,并且通过了技术评审。附:《数据库设计报告》模板3.系统设计3.5数据库设计数据库设计流程:3.系统设计3.6模块设计目的:设计软件所有模块的主要接口与属性、数据结构和算法,产生《模块设计报告》。角色与职责:项目经理指定模块设计人员;模块设计人员将在实现阶段编写这些模块代码。主要步骤:1)设计准备;2)模块设计,包括接口与属性设计、数据结构与算法设计;3)撰写模块设计文档;4)模块设计评审。结束准则:《模块设计报告》已完成,并通过技术评审。附:《模块设计报告》模板4.1目的通过周期性地跟踪项目计划的各种参数如进度、工作量、费用、资源等,不断地了解项目的进展情况,以便当项目实际进展显著偏离计划时能够及时采取纠正措施。4.项目监控4.项目监控4.2规程划分及流程规程划分:项目计划跟踪、控制偏差、项目进展汇报。流程:4.项目监控4.3项目计划跟踪目的:周期性地跟踪任务、费用、资源、工作成果等,及时了解项目地实际进展情况;为持续过程改进提供有价值的数据。角色及职责:项目经理跟踪项目的实施;项目成员协助项目经理采集有关数据。启动准则:《项目计划》已经制定。输出:《项目监控数据表》附:《项目监控数据表》模板4.项目监控4.3项目计划跟踪主要步骤:1)任务跟踪;2)费用跟踪;3)资源跟踪;4)工作成果及规模跟踪。附:《项目监控数据表》模板4.项目监控4.4控制偏差目的:对比“项目实际进展”和“项目计划”,分析偏差,如发现项目实际进展显著偏离计划,则及时采取纠正措施。输入:《项目计划》、《项目监控数据表》。输出:《项目偏差控制报告》附:《项目偏差控制报告》模板4.项目监控4.4控制偏差主要步骤:1)找出显著偏差(例如偏差大于20%);2)分析原因;3)给出纠正偏差的措施(如果是《项目计划》不合理的,则要变更项目计划);4)跟踪纠正偏差的过程。附:《项目偏差控制报告》模板4.项目监控4.5项目进展汇报角色与职责:项目经理周期性地总结项目进展情况,撰写《项目进展报告》并通报给机构领导和所有项目成员。启动准则:已经开展“项目计划跟踪”和“偏差控制”。输入:《项目计划》、《项目监控数据表》、《项目偏差控制报告》。输出:《项目进展报告》。附:《项目进展报告》模板5.1目的在风险产生危害之前识别它们,从而有计划地消除或削弱风险。5.风险管理5.风险管理5.2风险管理流程5.风险管理5.3风险管理规程角色与职责:项目经理负责风险管理;项目成员协助项目经理处理风险。输入:《项目计划》;项目监控过程中产生的文档。输出:《风险管理报告》主要步骤:1)风险识别(项目经理根据“风险检查表”定期识别风险);2)风险分析;3)风险减缓;4)风险跟踪。附:《风险管理报告》模板;《风险检查表》模板公司项目管理规范(三)第三课的内容产品概念产品定义产品开发产品测试客户验收产品维护立项管理项目规划项目监控风险管理需求管理结项管理需求开发配置管理质量保证外包与采购管理培训管理项目管理过程项目研发过程机构支撑过程服务与维护技术预研