浅谈项目质量控制

        浅谈项目质量控制

 

 

 

项目质量是项目的灵魂,也是最终赢得客户认可的最重要的标准。但是现实当中,由于项目质量问题导致项目延期甚至被客户拒绝验收的项目相当普遍。下文阐述我个人对项目质量控制的理解,并希望借此机会抛砖引玉。

 

  在项目开发的过程当中,我们做技术的同事可能大多数人碰到过这样的情况:好不容易等到代码开发完成了,测试的时候问题不计其数,每一个问题都要花很长时间去查找和修复,改完还有可能引发新的问题,结果到了产品计划客户验收的时候迟迟交不出产品,而项目团队的每一个人已经精疲力竭了。 

 

  为什么项目质量这么难控制呢?我们都知道项目质量和其每个阶段的质量都是有着密不可分的关系。不管采取什么样的开发方式,都离不开需求分析、系统设计、编码、测试这几个阶段,要很好的控制项目的每一个阶段的质量,当然不是一件容易的事情。

 

一、需求阶段

 

需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个项目的成功打下良好的基础。在和客户确认需求后,进行需求说明书和需求设计书的编写主要需要做到以下几点:

 

           1)简明扼要。长句看起来困难,而且理解起来会有偏差,可能开发人员无法真正弄懂需求描述的意思,导致程序实现偏差,需要返工。

 

2)含义清晰。需求中出现可能、大概和或者等词使得需求定位含糊,无法准确的描述需求,导致开发完的程序出现了一些业务层面的问题。

 

3)细化描述。一般来说,对外有面向客户的需求说明书,对内有面向开发团队的详细设计,如果需求是没有细化,很容易造成开发人员理解偏差造成部分或整体模块代码返工。返工造成的结果往往是工期紧张,程序质量不可控。

 

很多公司都用Word编写需求说明书和详细设计,左侧导航栏非常清晰,可读性很强。详细设计也可用Excel进行逐功能点编写,具体为文件夹结构为 项目名称 》模块名称 》子模块名称 》 功能点名称。功能点描写需要详细的列出页面各功能区、功能区中的详细元素以及各种校验和业务规则,最好加以图形辅助说明,有的公司甚至用UI Design预先设计出界面原型,所有的这些都是为了清晰直观把需求传递给开发人员,提高项目开发的效率和质量。我们公司采用项目管理系统,优点就是“云”了,缺点就是没有那么直观清晰了,最大的缺点是不支持图片。

 

二、设计阶段

 

 设计阶段主要根据需求分析的结果,对整个系统进行设计,如系统框架设计、数据库设计。软件设计的核心在于把握好那些决定质量的因素,如软件的性能、兼容性、容错性、健壮性、可维护性、可重用性、可拓展性、安全性、可操作性,以及模块划分、公共组建封装。

 

1)技术架构

 

首先,技术架构要为大规模的开发提供基础和规范,并提供可重用的组建和方法,缩短项目的开发周期和提高项目的质量,好的软件架构是项目质量的基础,特别是对于客户常常提出的非功能性需求的满足。其次,架构设计要满足实用性原则,不能一味的追求使用新技术,更不能选用那些已经失去支持的第三方插件,很多问题都可能因为插件失去支持没法得到解决,例如ligerUI。最后,重要的是在系统构建的过程中,要重点考虑系统的整体性能,性能在很多时候也是项目质量的关键,例如DORADO5.x插件在大数据量的情况下性能方面存在问题,在项目生产环境下面使用很不理想。

 

3)数据库设计

 

数据库是项目质量的核心,项目功能中大量的数据按照一定的模型组织起来,提供存储、维护、检索数据的功能,使得我们可以方便、及时、准确的从数据库中获得所需要的信息。数据库不是物理结构的堆砌,而是要在理解客户需求和提炼的基础上建立一个满足功能的数据模型。数据库在设计时要先定义好表结构、字段、主外键等元素的命名规范,并且不能由项目成员随意更改,如果有功能需求或者变更,所有的数据库结构变更都需要统一到设计者那里进行,这样才能保证数据库信息的准确性和稳定性。另外,在数据库的技术层面以及其它的一些技巧上面要参考各个数据库的特性进行优化设计。

 

三、编码阶段

 

此阶段是将需求和设计转换为程序代码。在程序编码前必须制定统一的、符合标准的开发规范,以保证程序的可读性、可维护性。

 

1)编码规范

 

在项目设计阶段接近尾声的时候,我们需要进行编码规范的制定,例如项目包结构定义规则(整体系统功能模块包定义)、Java类文件命名规范和存放规则,StrustSpring文件的定义和存放规则,Jsp文件目录以及文件的定义和存放规则,Js文件目录以及文件定义和存放规则,图片文件的命名和目录存放规则以及配置文件、JavaJspJsCss文件注释的定义规则,参数的命名、常量、变量的命名规则等都需要进行规范。其次,对界面风格和代码风格的规范。最后,在版本控制的过程当中也应当有相应的控制和规范。当然,制定规范不是目的,编码规范是我们保证项目质量的前提条件之一。

          2)代码公用

          代码公用不仅仅提高了代码利用率和开发工作效率、增强了代码的可读性以及可维护性,也是保证项目质量的重要因素。每个程序员都有不同的编码习惯,我们在项目当中会碰到很多可以公用的功能代码。如DAO层的封装,不仅提高了开发人员的开发效率,同时也保证了DAO层的代码质量。如列表页面的查询弹出窗、增、删、改的JS方法,大多都可以提取公用,还有新增修改页面的标题部分、底部的保存和取消按钮等都可以进行封装,这些对于项目质量的提高都是非常有意义的。

 

四、测试阶段

 

不管开发团队有多么牛逼,肯定会遗留各种不可预知的问题,所以测试阶段尤为重要,这是项目最后关卡,如果这一关没有把控好,项目质量很难得到保证,交给用户的很可能就验收不过。在测试的过程当中需要建立详细的测试计划并严格按照测试计划进行测试,以减少客户验收不过的风险,最终减少项目的成本:

 

1)好的测试方案很可能发现迄今为止尚未发现的错误。

 

2)测试不仅仅为了找出错位,通过分析错误产生的原因和错误的发展趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。

 

3)完整的测试时检验软件质量的一种方法

 

4)通过测试可以避免开发风险

 

5)不要为了证明程序能够正确运行而去测试程序,在开始的时候应该假设程序中存在错误,发现尽可能多的错误。

 

 

 

   

 

猜你喜欢

转载自eddysoft.iteye.com/blog/1904255