全套CMMi软件质量管理体系
XXXXX 计算机软件有限公司 XX 软件质量管理体系 V1.0 XXXX 软件研发部软件研发部 2010/12/12010/12/1 1 / 1 目录 第一篇第一篇 总总则则 一、一、《《XXXX 软件质量管理体系》的实施软件质量管理体系》的实施 XX 计算机软件有限公司依据 CMMi(软件能力成熟度模型集成)框架,结合公司多 年来实施“敏捷开发”的开发方法的经验,以及公司的实际情况,编写的《XX 软件质量 管理体系》V1.0 版已经编写完成。 本体系文档是公司质量管理体系法规性文件,是指导公司建立并实施质量管理体系 的行动准则。公司全体员工必须遵照执行。 二、二、目的目的 本文档的目的在于: 通过建立软件过程管理体系,提高企业的软件过程能力,保证软件质量,保证商 务目标的实现。 基于精简的 CMMi 3 级管理体系,结合企业实际情况和经验积累,结合敏捷开发 的 SCRUM 方法。开发适合 XX 软件有限公司发展的软件过程管理体系。 使得 XX 软件的软件开发过程管理基本满足CMMi 3 级要求。 三、三、 CMMI-DEV 背景介绍背景介绍 CMMI 是个了不起的规范,但是仍然有很多不足之处。CMMI 对于项目管理很有指导 价值,但是它对技术开发过程的论述却不够深入。对于大多数软件项目而言,技术开发 占总工作量的 70%以上,而项目管理占总工作量的 30%以下。对大多数企业而言,技术 开发过程的规范化比项目管理过程的规范化尤为重要与迫切。 软件开发是如此的灵活,如果没有规范来指导与制约,就容易因无序而导致混乱。 但是规范如果不切实际或者太严密了,就容易畸变成为死板的教条,会扼杀开发人员生 机勃勃的创造力。软件过程规范应当力求简单实用。 ScrumScrum 由 Ken Schwaber 和 Jeff Sutherland 提出,旨在寻求充分发挥面向对象和构件技术的开 发方法,是对迭代式面向对象方法的改进,名称来自英式橄榄球(在比赛中每个队员都 应时刻保持对场上全局的判断,然后通过集体行动,奋力实现同一目标──胜利)。 SCRUM 方法最初实践于 Easel 公司(1993 年),现已被数十家公司数百个项目开发中应用, 适用于需求难以预测的复杂商务应用产品的开发[11]。SCRUM 提出的 SCRUM Meeting、 Sprint、Backlog、SCRUM Master、SCRUM Team、Demo 等模式已被 PLOP 作为组织和过程 模式(Organizational and Process Pattern)的标准。 SCRUM 将工业过程控制中的概念应用到软件开发中来,认为软件开发过程更多是经 验性过程(Empirical Process),而不是确定性过程(Defined Process)。确定性过程是可明确描 述的、可预测的过程,因而可重复(Repeatable)执行并能产生预期的结果,并能通过科 学理论对其最优化。经验性过程与之相反,应作为一个黑箱(Black box)来处理,通过对 黑箱的输入输出不断进行度量,在此基础上,结合经验判断对黑箱进行调控,使其不越 出设定的边界,从而产生满意的输出。SCRUM 方法将传统开发中的分析、设计、实施视 为一个黑箱,认为应加强黑箱内部的混沌性,使项目组工作在混沌的边沿,充分发挥人 的创造力。 总而言之, CMMI 和敏捷开发能够很好地相互补充、相互支持。首先在关注点上 CMMI 关注组织级或企业级改进,关注回答项目应该做什么,而不是具体怎么做的方法, 而敏捷开发则更关注项目级改进,关注项目具体怎么做的方法和最佳实践,这使双方在 定位方面形成很好的相互补充的态势。 一方面 CMMI 为敏捷提供组织级扩展的能力和必须的组织治理框架,便于组织级对 敏捷最佳实践的推广和重用;另一方面,敏捷为 CMMI 提供了项目级的具体实践方法, 确保团队在 CMMI 框架下能够快速响应,不断创新,持续交付价值。两者的有效结合, 能够有效实现个人绩效向团队绩效、向组织绩效的转变过程。同时,也可以通过敏捷实 践,规避 CMMI 实施过程中重文档、重流程的不良倾向,使 CMMI 实施时更加关注组织 的实际价值、关注客户、关注创新。 四、四、 项目管理过程域项目管理过程域 立项管理 结项管理 项目规划 项目监控 风险管理 需求管理 项目研发过程域项目研发过程域 技术预研 Scrum 过程 客户验收 技术评审 机构支撑过程域机构支撑过程域 配置管理 质量保证 培训管理 服务与维护 体系总体介绍体系总体介绍 目的目的 采纳符合机构最大利益的立项建议,通过立项管理使该建议成为正式的项目。杜绝不 符合机构最大利益的立项建议被采纳,避免浪费机构的资源、资金、时间等。 在项目开发工作结束后,对项目的有形资产和无形资产进行清算、对项目进行综合评 估以及总结经验教训等。 为项目的研发和管理工作制定合理的行动纲领(即项目计划),以便所有相关人员按 照该计划有条不紊地开展工作。 周期性地跟踪项目计划的各种参数如进度、工作量、费用、资源等,不断地了解项目 的进展情况,以便当项目实际进展显著偏离计划时能够及时采取纠正措施。 在风险产生危害之前识别它们,从而有计划地消除或削弱风险。 在客户与开发方之间建立对需求的共同理解,维护需求与其它工作成果的一致性,并 控制需求的变更。 目的目的 在立项之后到开发工作完成之前的时间内,对项目将采用的关键技术提前学习和研 究,尽可能早地发现并解决开发过程中将会遇到的技术障碍。 设计软件系统的体系结构。分 Scrum 小组,使用敏捷方法实现软件产品,在每次迭 代都产生可以交付的产品。最后在巩固过程中确保产品符合用户的需求。 客户依据合同对产品进行审查和测试,确保产品满足客户需求。 尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而有效地提高产品 的质量。 目的目的 通过执行版本控制、变更控制等规程,以及使用配置管理软件来保证所有配置项的完 整性和可跟踪性。配置管理是对工作成果的一种有效保护。 提供一种有效的人员组织形式和管理方法,通过客观地检查和监控“过程质量”与 “产品质量”,从而实现持续地改进质量。 根据机构(或项目)的需求来制定培训计划,并监督该计划的实施,确保培训取得预 期效果。 是指产品销售之后的客户服务和产品维护,其宗旨是提高客户对产品以及对开发方的 XX 软件质量管理体系将项目的生命周期划分为以下14 个控制域。 1 / 1 满意度。 1 / 1 第二篇第二篇 项项目管理目管理 一、一、立项管理立项管理 立项管理(Project Initialization Management, PIM)的目的是:(1)采纳符合机构最大 利益的立项建议,通过立项管理使该建议成为正式的项目(即合法化)。(2)杜绝不符合 机构最大利益的立项建议被采纳,避免浪费机构的人力资源、资金、时间等。 立项管理是决策行为,其目标是“做正确的事情”(do right things)。而立项之后的 研发活动和管理活动的目标是“正确地做事情”(do things right)。只有“正确的决策” 加上“正确地执行”才可能产生优秀的产品。 立项管理过程