如何衡量一个项目的交付质量???

昨天与部门开会讨论项目的完整规范交付流程,参会的涉及到项目相关的所有人员,总结一下供大家讨论交流:

1、小插曲:我们把客户的干系人、自己的干系人对项目的影响做了一个排名并打分,结果很有意思:客户的领导和我们的领导的满意程度被排在了第一位,最终用户排在最后一位,中间是项目经理啊、关键用户啊、客户经理、服务经理、安全经理啊等等,感觉是不是有点不太正常??

2、核心的问题:如何衡量一个项目的交付质量?关于这个问题大家吵得不可开交,最终也没有一个结果,每个不同角色的人看到的角度是不一样的,对于领导层,可能就只有一个指标:领导是否满意? 但这是完全凭感性的,而且影响判断的因素很多,比如客户关系好不好,而且满意、十分满意完全是随口一说,从理性角度来看或者说从技术角度来看,如何给一个项目进行比较客观的评价呢或者更精确的定量呢?(成本问题可以排除在外,它不是项目的质量问题要考虑);

1)稳定性:官方解释,指软件在一个运行周期内、在一定的边缘条件下,软件的出错机率、性能劣化趋势等。但稳定性本身的定义也比较模糊,目前只能以可运行时间来衡量,如果项目没有出现宕机或者不能访问的情况,可以认为稳定性是100%? 但系统访问慢算不算??慢到什么程度算可以接受,什么程度算不可接受?

另外,如果有部分人正常部分人不正常,这又如何去算??如果只有少数人访问不正常,可能影响的因素也比较多,比如局部网络,比如用户电脑本身的问题。

2)可用性:官方解释:指的是产品对用户来说有效、易学、高效、好记、少错和令人满意的程度,即用户能否用产品完成他的任务,效率如何,主观感受怎样,实际上是从用户角度所看到的产品质量,是产品竞争力的核心。 这又是一个很主观的因素了,同样的东西,有人觉得好用有人会觉得不好用,每个人的操作习惯不一样,咱们又不是像apple那样的东西,大家都说好,而目前如何定量评价可用性呢??估计只有满意度调查了,但满意度调查本身就不是一个严谨的东西;

3)可维护性:官方解释:可维护性是指理解、改正、改动、改进软件的难易程度。这个也是同样的问题,做开发的当然都明白这个道理,但是不是我们把所有的文档都补齐、所有的代码注释都加上就是一个好的可维护性?软件的理解改动涉及到很多,比如你的架构设计,你的数据库设计,你的代码质量(关于代码质量又是一个可以讨论的话题了),这些东西没有一个标准去衡量,同样的架构,你可能认为不错,换成另一个人未必就觉得好,客户也没有能力到检察到代码层面,所以这个指标完全在于交付方怎么忽悠了;

4)可扩展性:简单地说,可扩展性就是关于如何处理更大规模的业务。同样,道理都明白,但如何衡量?如果过度考虑这个可扩展性,又存在一个过度设计的问题,如果是自己的项目,你可能会尽心尽力的想得比较多,如果是乙方项目,你是否在设计时考虑得那么长远而且又不影响项目的正常交付?而且可扩展性的做法很多,比如分布式部署、集群、数据库分隔等等,但这样对当前来说都是理论上可行的,真的做起来还要考虑实施成本、复杂度的问题。总而言之,什么叫可扩展性高,什么叫不高?又是一个无法评估的东西;

5)安全性:非常重要的指标,但大家看看各自的项目,有几个项目把安全性考虑得非常周到,物理安全、帐号安全、功能性安全,数据库安全,这些都不是一两句话说得清楚的,有一本子“白帽子讲web安全”里面讲解得比较多,但如果真的要做到那种程度,是不是自己把自己做死了?

6)bug:这个不是指标,但是却是最直观的体现,最可以量化的东西,我们可以统计出bug的数量,但存在两个问题,一是bug如何分级?二是如何根据bug的数量来判断系统的好坏? 第一个问题,bug的分级,bug肯定要分级的,不能所有的bug一视同仁,那么就要有一个分级标准,而这个标准是什么呢?举一个比较极端的例子,以前做一个财务系统,写错了一个文字,从程序角度来说,很小的一个bug,但是造成了客户几万张银行对账单作废,全体财务员工加班两天解决。所以客观的讲应该是给用户造成的影响来判断bug的严重程度,但很多时候其实也是人为拍脑袋的;好,现在假设这个bug数量出来了,也分级了,那么怎么算可以接受的?这与系统本身的代码量、复杂程度是有关系的,一个1万行的代码与10万行的代码,同样都是3个bug,那评判标准肯定是不一样的;

7)还有其他的判断指标:比如需求实现率,需求文档中写了100条,实际做了80条,这个严格来说,不应该算交付的质量,交付的质量应该是指已经实现的功能相关的,这个更多的是交付能力的问题,是项目管理的指标;

对于甲方乙方的项目,公司可以说收到项目款了就是好项目,没收到就不是好项目,抛开人为的因素,纯粹从技术角度来说,衡量一个系统的好坏真的比较难,目前来看还是主观判断大于定量分析,一个系统做得好还是做得不好,可能更多的是在于一两个关键人员的能力和整体项目管理的标准执行了;

在此抛砖引玉,大家讨论。 每个公司的情况不一样,因为我们要自己交付,自己来运维,所以从自身角度来说,我们肯定会关注可维护性的问题,如果是甲乙双方的项目,估计没有几个人会想那么多了。

 

 

 

 

 

 

转载于:https://www.cnblogs.com/lzzgym/archive/2013/06/05/3119069.html

你可能感兴趣的:(数据库,web安全,运维)