本文是一篇质量管理论文,本文以 Acc 公司项目 C 的质量管理为研究对象,介绍了 Acc 公司的行业背景,项目C 的产品背景,产品特点和开发现状,利用鱼骨图的方法详细分析了项目 C 遇到到质量管理问题,分别从组织结构,代码规范,需求管理,质量保证,配置管理和数据测量和分析的方面进行了细致的分析。结合 CMMI5 和敏捷 Scrum 的指导手册,制定了一个质量管理优化方案。
1 绪论
1.1 研究背景与意义
世界每天都在发生着变化,从前的日新月异都不能够准确表达这个变化的速度。近年来,全世界每天发表的论文多达 15000~17000 篇,每年登记的新专利可达 80 万项。新理论、新材料、新工艺、新方法的不断出现,使知识老化的速度加快。据统计,一个人所掌握的知识半衰期在 18 世纪的时候约为 80~90 年,在 19~20 世纪的时候约为 30年,20 世纪的 60 年代已经变为 15 年,然而在到了 80 年代以后,缩短为 5 年甚至更少。而进入 21 世纪时,很多科学知识的更新周期已经缩减到 2 年甚至更少。
科学技术的日新月异,感知最快的就是计算机行业,现在我们提到的计算机,已经不再是简单的计算机,而是由计算机带动的整个行业甚至还包括相关产业。比如国家推动的区块链,人工智能,虚拟现实,虚拟增强,互联网科技等,他们底层的技术和实现都要依赖计算机技术。计算机技术的快速更新,迭代,对于我们的生活有着巨大的影响。在我们身边也是感受最深刻的就是软件产品。
近些年出现的网络电商平台京东,淘宝,拼多多,唯品会等,销售渠道都是网上交易平台,他们创造了新的购物节,比如 6.18,双十一,双十二,当然还有很多。这些电商平台的成功就离不开计算机技术的发展。这些电商平台依靠的触点就是网站和手机应用。这些购买渠道都是通过软件开发的。我们发现这些产品的更新速度非常的快,今天双十一可以支持双十一的活动定价,活动推广,活动特有的前端设计,一个月以后就可以完美切换到双十二的活动定价,推广,前端设计,甚至更多的内容修改,需求变更。除了这样快速更新适应市场的网站,还有我们现在所有人都离不开的手机应用,隔不了几天就会发现版本更新,这在以前的软件项目开发中是不可能见到的。所以我们可以看到软件开发已经向轻量级的敏捷开发方式转变。市场上我们已经可以看到有很多公司在做企业级的敏捷转型,快速变化的世界就是软件敏捷,企业敏捷,精益生产产生的原因,正因如此才会有如此多的国际大公司开始热衷于大规模的实施企业级敏捷转型。
1.2 研究现状
1.2.1 国内外质量管理现状
国外的软件行业相较于国内的软件行业发展要早 10 多年,所以他们对于软件的开发流程管理,软件的质量管理的研究都比我们更早。他们的研究角度其实也各有不同,比如有的是从技术角度分析,研究如何研发更好的技术框架,更简单方便的开发语言,更多元的测试方法,更简单易用的开发平台或者工具。还有的从软件项目的管理角度,探讨软件项目的管理框架,人员结构组成,团队知识共享和传承等,比较成熟的有 CMMI,TQC,ISO9000 等。
国内的软件行业就完全不同,起步比国外晚,随着世界的网络化,地球显得越来越小,我们接触和了解的软件行业也在快速的更新,我们现在很多企业在使用国外的软件质量模型和标准,并积极做了相关的认证,拿到这些国际级软件质量认证的企业,不只是为自己的企业打上了一个行业先进者的标志,也为自己企业打开了通向世界软件市场的大门。当然认证和实施两者间是有距离的,再好的模型和标准也不是所有企业可以通用的,我们需要按企业的实际情况调整,实现企业级定制化,这样才能使其为企业带来更多的价值。
CMMI 一共有 5 个级别,每个级别表示软件项目团队交付能力成熟度的 5 个不同等级,数字越大,代表成熟度越高,更高的成熟度等级表示有较强的软件项目综合开发能力。国内的华为公司就是第一批实现 CMMI 质量管理体系的公司,从购买到定制化,到实现实时调整,到最终帮助企业提高了效益,为国内很多企业做了个教科书式的示范[1]。
2 相关理论综述
2.1 敏捷软件开发相关理论研究
在二十世纪初,17 位在 XP,FSD,DSMP 等领域的专家组成的代表团齐聚美国犹他州,正式宣布了敏捷软件开发宣言,包含四种核心价值和十二条原则,用来指导敏捷迭代的以人为中心的软件开发方法。在 2010 年,17 位专家编写了第一版 Scrum 指南,来帮助全世界的人能够理解敏捷开发[3]。 敏捷软件开发宣言强调的敏捷软件开发的四个核心价值是:
(1) 个体与互动优先于流程和工具。 (2) 可用的软件优于详尽的文档。 (3) 和客户的沟通合作要优于后期与客户的合同谈判。 (4) 对需求变化的积极响应优于墨守成规。 敏捷软件开发的十二条原则是[3]: (1) 早期和持续性的把有更高业务价值的产品交付给“客户”。 (2) 大部分的工件是可以快速完成的小的功能块。 (3) 最好的工作需求是源自项目内部成员中的。 (4) 为每个团队成员提供需要的环境资源。 (5) 创建一个可以持续迭代和改进的工作流程。 (6) 保证正在进行状态的工作的稳定性 (7) 拥抱需求变更,就算是在项目后期的时候。。 (8) 项目进行期间,每天都和开发团队和业务团队同步进度。 (9) 在项目回顾会上收集团队看到的能够可以改进的工作方式,方法,内容并在后面进行调整。 (10) 有追求完美,不断提高的精神。 (11) 及时调整获得更多的竞争优势。 (12) 团队成员是自组织,相信每个成员可以完成他们的工作。
核心价值观中并不是否定一方,支持另一方,而是实施者在项目实施过程中如何取舍和抉择的一个判断标准。敏捷软件开发里提到了十二个基本原则。这些原则覆盖了我们软件开发的所有方面,所有的原则都是基于核心价值观的,只是更加具体,更加落地和更好理解。如果我们在项目实施中没有遵循这些原则,就违背了敏捷开发的初衷,就不会收到预想的效果。所以实施是否可以成功,取决于项目是否遵循了这十二个原则。如果死搬硬套这些原则,而忽略了项目实施过程中最重要的因素:“人”,这是完全不可取的。敏捷软件开发模型的核心在于:以人为根本、持续迭代、渐进且循环开发[4]。
2.2 质量管理相关理论
根据 ISO8402 术语规定,质量就是:“反映实体满足显性和隐形需要的能力的特征总和”[4]。软件质量是指:“在功能和性能方面满足用户要求,遵守规定的标准和规范,以及正式软件的某些公认性质”[4]。
在计算机软件工程方面,质量常常被视为系统内部部件或系统过程中满足的以下两个要求:(1) 明确的需求。(2) 客户或用户对系统的需要或期望的程度。更为重要的是,软件产品的质量往往是软件工程的核心所在[6]。可是,目前在软件工程中还没有形成完整且统一的软件质量的概念,而目前比较权威的观点则认为质量满足有以下四种条件:首先,软件质量需要集合计算机系统稳定和卓越程度的所有属性;其次,软件质量需要集合软件产品中满足明确需求程度的属性;第三,软件质量需要集合软件产品的明确或隐含的需求能力的特性或者特征;最后,软件质量需要满足在质量定义中客户明确指出的需求[6]。
由美国国防部与卡内基梅隆大学和美国国防工业协会共同开发和研制的软件能力成熟度模型集成(Capacity Maturity Model Integration, CMMI)是一个升级版本,之前的版本叫做软件能力成熟度模型(Capacity Maturity Model for Software, MM),是一种被国际软件行业广泛应用的综合性模型。主要面对的就是软件企业和软件行业,目的是帮助软件相关的行业在软件开发过程中更好的进行过程管理,并进行过程改进,让软件项目可以按交付时间准时交付。为客户和企业创造更多收益。
软件能力成熟度模型一共有 5 个等级。
CMMI1 完成级:企业对于要完成的项目目标很明确,需要做的工作内容也很清晰,项目可以完成。但是项目的完成有很大程度是依赖项目成员能力,完成也带有很大的偶然性。
CMMI2 管理级:企业和项目的完成项目按照之前制定的计划执行,有专门人员负责准备项目资源,每个人有自己需要负责的任务,对项目里的人员安排相关的培训内容,对于项目的整个过程有过程监控和管理,与质量管理部门配合质量审查的工作。达到二级水平的企业,可以体现在项目管理中一系列明确的项目管理流程。这个级别的企业在完成软件项目时,降低了不完成项目的可能性,保证项目软件实施都能成功交付。
CMMI3 定义级:达到这个级别的企业不仅对项目软件的实施有完整的管理措施,保证项目完成交付。还可以在根据自身企业项目特点的情况下,制度化这些管理流程和措施。达到这个级别的企业,在实施很管理同类软件项目时可以成功的交付。在实施不同类型的软件项目的时也可以成功实施。企业在实施不同类型项目时,不断积累经验,形成了公司或者企业的组织财富。
CMMI4 量化管理级:企业不仅仅是有了适合自己项目管理制度,而且实现了项目的数字化管理。在整个流程的管理实现可量化和数字化。通过实现了量化和数字化来帮助企业实现精度管理,保证软件项目的质量。
CMMI5 优化级:是 CMMI 里的最高级别。不仅可以使用量化和数字化管理项目,还可以通过收集到的数据,分析整理,预防和改善软件项目里的可以优化的地方。使用新的优化方案来预防项目缺陷,最后得到更优的项目管理流程。
3 &nbs