中交海洋投资控股有限公司 三亚
摘要:企业软件项目的质量管理是一个系统工程,通过加强软件开发的全过程、全流程、全要素的质量管理,确保开发的过程符合相关的流程和规范,可交付的软件产品质量满足用户的需求,系统的应用和推广可以切实提高企业提升规范化、高效化管理水平。本文就作者就多年事企业软件项目的管理的经验和体会,对软件质量管理做一些探讨。
关键词:软件质量 项目管理 质量管理
On the quality management in the software development.
Wu qiang,Zhong zhun
(CCCC Ocean Investment Holding Co.,Ltd.,Sanya,China)
Abstract:The quality management of enterprise software projects is a systematic project and one of the three cores of software project management.Through the entire process of software development,all processes,all elements,and all-round quality management,ensure that the development process meets the relevant processes and standards,the quality of deliverable software products meets the needs of users,and the application and promotion of the system can effectively improve the enterprise Informatization level,improve the level of standardized and efficient management.This article discusses software quality management based on the author's experience and experience in the management of enterprise software projects for many years.
Key words:project management,project quality,quality,quality management
当前,随着新一代信息技术的快速发展,以互联网+、5G、云计算、工业互联网为核心的科技和产业变革方兴未艾,以深度学习我代表人工智能、动态感知等新技术蓄势待发,虚拟、实体经济的相互融合,给企业信息化发展提出了更高要求,传统观点认为软件质量管理的单纯靠的测试和确认,忽视软件开发过程对对软件质量的影响。软件质量保证依靠系统开发的全过程、全流程、全要素的有效控制。
一、企业软件项目质量的概念及现状分析
企业对“软件质量”的要求,随着软件技术不断发展而发展。从起初的“符合需求”、“符合显式需求的”、到“符合实际需求”,也是软件质量的认识发展三个层次。质量的定义,在ISO9000中对质量的定义是“一组满足特定需求的成果”,同时ISO9000对“管理体系”或“开发过程”也有明确的质量要求。
从当前企业信息化发展和软件项目质量管理之间的相互关系看,企业软件质量管理主要存在以下问题:
(一)软件项目建设缺乏有效的质量管理体系。没有健全软件全生命期的管理制度,或者有制度但不认真落实和执行。没有采用有效的质量管理体系,如六西格玛、CMM、CMMI,软件系统在全生命期过程中的每个过程的都存在质量确认和质量控制,但是目前软件质量管理过分依靠后期测试环节,对其他环节、其他过程的质量没有进行有效确认和有效的控制。
(二)软件项目建设中不重视质量标准和评价体系。软件系统质量管理,首先需要建立和规范明确的质量标准体系,包括质量标准和评价标准,当前信息系统在建设中,质量问题未被完全重视,缺乏相应质量标准和评价
标准,或者标准落后、没有及时更新标准。同时,在软件交付后,缺乏科学的量化指标进行上线后的管理。
(三)软件项目建设中过重进度,轻质量。我国经济快速发展,企业对信息化需求越来越大,企业领导往往过于重结果,轻过程,信息化项目常常匆忙立项,要求项目快速上线,这样,项目实施中一直在赶进度,不能形成有效的开发计划,文档控制和管理不规范,阶段性测试不深入等质量控制问题大量存在,严重影响软件系统的质量。
二、企业软件项目质量管理的工具和方法论
为了提高软件系统质量,我们首先质量文化出发,建立软件指标体系,建立软件质量管理体系,从实完善质量工具箱。将软件质量管理贯穿到软件全流程、全生命期。
(一)软件质量文化建设
软件质量文化是指软件开发团队在开发过程中形成的在质量管理文化,包括质量第一、品质优先等质量价值观,人人重视质量,产品质量人人有责的质量意识,以客户为中心,客户第一、追求卓越的质量精神,也包括测试驱动、迭代优化的质量技术的培训。
(二)软件质量的指标体系
通过梳理软件指标体系中指标,建立软件质量模型。ISO/IEC9126软件质量模型是一种评价软件质量的通用模型,包含以下六大特性:(1)功能性、(2)可靠性、(3)易用性、(4)效率、(5)维护性、(6)可移植性,以及27个子特性,如下图:。
(三) 软件质量的管理体系
(1)ISO9000质量管理体系。
ISO900为组织建立质量管理体系提供了理论依据,包含了实施质量管理工作必须遵守的一些基本原则和方法,包扩:以顾客为核心、领导带头、人人参与、方法过程、系统方法、不断改进、预测与决策、互利的供方。
(2)六西格玛
六西格玛管理法是一套综合的管理方法体系,它以质量为中心,利用数理分析的统计学的偏差为管理指标,不断改进组织的专业能力,不断增组织的竞争力,六西格玛模式的本质是一个全面质量管理体系。6sigma是指6倍的标准偏差。它需要管理层的大力支持,需要有委员会的组织和保障工作。
(3)CMM(能力成熟度模型)。
CMM主要包括衡量组织和流程的成熟度的标准和准则,包含一组关键过程、关键指标、关键目标,CMM共分五级,从无到有,从杂乱无章到某一个同类项目的成功复制,再到一致标准性到定量的发展,再到持续优化。
(四)软件质量的管理工具
(1)需求管理。对于软件项目而言,需求管理是软件开发的基础,由于各种原因软件项目的需求经常变化,给项目实施带来质量风险,导致项目返工。过渡加班赶工,也降低了代码质量,引发项目一系列的代码质量问题。因此,为了保证最终交付的软件产品质量,应该加强项目需求变更管理
(2)迭代开发。迭代开发又叫增量开发,迭代开发改变了传统客户和开发团队之间的沟通模式,客户已成为团队中不可缺少的伙伴,通过与客户高效的沟通与协作,共同研究确定需求,快速确认成果,确保交付的应用系统的业务价值。迭代周期一般为2-4周,通过多次迭代,实现持续增量交付。
(3)代码走查。代码走查是开发团队成员一起讨论交付的编码成果、交换编程思路与方法的过程,过程中大家轮流展示和介绍自己编写的代码和遇到的问题,有利于相互学习,提升团队整体编码质量,建立团队编码的共识,形成团队编码标准与编码知识库。代码走查常用工具有findBugs,PMD,CheckStyle,RhodeCode、Codebrag等。
(4)代码审查。代码审查是对代码系统化地同行审查,其目的是发现、和修正开发初期的错误,提升软件质量。常用工具有CodeStriker、RhodeCode、Phabricator、Codifferous、Getbarkeep等。
(5)同行评审。同行评定和审议工作是一种同行专家评审,主要从正确性、规范性、可用性、可靠性等方面进行评审,是提升软件质量的重要手段,同行评审不仅在系统开发完毕后进行,而是贯穿软件开发的各个重要节点,在开发周期前期的评审,可以提早发现系统错误,统计表明后期修改错误成本是一般为前期的十倍以上。同行评审发现问题的效率是一般测试的三倍以上,所以同行评审技术,已被越来越多的开发组织采用。
(6)质量红线。质量红线是由客户提出概念,是产品质量的底线,最低标准和最低目标,不管项目组在进度、成本和质量之间如何调整、如何平衡,都必须确保产品质量在红线以上。如果项目守不住质量红线,过分注重短期效益,必将牺牲长期效益。
(7)质量保证QA。质量保证是从第三方视角进行开发过程监控,保证相关制度、标准、实践是否得到贯彻执行,进而保证软件产品的质量。首先OA人员与项目经理商讨,根据项目实际情况,选用规范和标准,共同制定质量保证计划,然后项目实施过程中指导和检查计划执行情况,发现问题及时沟通,分析原因,及时解决。
软件项目质量管理是一个系统性的综合工程,需要项目团队要高度重视,编制软件质量管理规划,配置质量确认人员编制,有条件的项目可以成立质量确认团队,与项目团队一起选择软件质量控制指标,挑选质量管理工具,确保软件项目按时、按需、保质、保量地完成。
三、软件项目质量管理的应用案例
上面我们描述了软件项目质量管理的工具和方法论。但并不是每个软件项目的质量管理都必须包括上述这些过程或仅限于这些过程,需根据软件项目的具体情况,适当进行调整。作者通过一个已上线的中交内部综合管理项目为例,对软件质量管理的应用进行具体的阐述。
本次软件信息系统的建设,主要项目是搭建一个企业综合管理平台,主要功能模块包括公文管理、经营目标管理、重点工作管理、工作报告管理和会议督办管理,系统包括权限管理、角色管理等。系统后台接口采用了Python Django框架,前端使用React技术的Ant Design Pro开源架构。软件开发过程中,采用了上述的软件质量管理工具和方法,通过该软件项目的开发和建设,基本实现了公司管理的信息化,提高了公司管理的标准化、流程化、规范化水平,基本满足公司综合管理需求。该平台的建设依据项目总体需求,制定阶段目标,分期、分模块上线,并在快速迭代中不断提升软件质量和完善功能模块。
该项目的软件质量管理中,我们先建立了质量管理规划、选取质量指标,建立了质量红线。质量管理工具方面主要采用了迭代开发、代码审查、代码评审和代码测试等工具,对本项目的开发进行质量管理。其中系统评审一方面要对项目需求、项目范围、项目计划、重大节点、重要成果和核心功能模块进行评审,形成评审报告;另一方面,我们建立了软件质量月报机制,每月定期发布质量月报,并反馈给项目组和质量确认组进行质量监控,为下一步软件质量管理提供指导。因为本项目分期开发,一期部署上线运行,同时二期进行试运行,项目运维和开发同步进行,项目质量管理同时覆盖全生命期。在实施过程中,首先需要厘清项目分期的边界和任务界面。对第一期项目,我们严控范围、严控成果质量,严控系统升级频率,重大的需求变化,建议移到二期,确保一期稳定运行,对于二期软件系统开发,我们严格按照软件质量标准指标,做好覆盖开发个阶段的全程、全面中的质量确认工作和质量检测工作。发现软件的质量缺陷,填报质量缺陷跟踪表,并通过同行评审等工具,分析缺陷原因分析,编写缺陷趋势分析报告。本项目我们使用Codifferous代码审查工具进行代码审查,Codifferous使用方便,可以检查源码库中任意分支上的代码,可以随时随地注释、反馈。开发团队定期评估代码质量,在测试保障的前提下,依据代码审查的建议,评估开展代码重构的可行性,通过代码重构,进一步提高代码的质量。
在整个项目到达验收阶段时,软件项目的质量管理也进入最后收尾极端,本项目除了编写了传统质量管理总结报告之外,还进行了包括基于质量基线、质量红线分析和质量缺陷正交分类的项目质量基线分析报告。总结项目质量指标达成情况,为以后改善质量管理工作、提升组织CMM、CMMI提出建议,进一步完善软件项目的质量管理体系、质量指标体系。
四、结语
企业软件管理,通过建立软件质量管理体系和软件质量标准体系,依据软件管理最佳实践,采用先进软件质量管理工具,对软件开发的全过程、全流程、全要素进行质量管理,加强和完善软件质量确认和质量控制,保证软件产品在全生命周期内得到全面的质量管理,使软件产品满足系统建设需求和建设目标。本文从软件项目质量管理的理论出发,通过一个具体项目案例,阐述了软件质量管理在实际企业软件项目中的实践,实践表明,将软件项目质量管理融入软件项目开发全过程,可有效的提升交付软件项目质量。