求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
这是谁的孩子?------软件质量的责任之争
 

作者:杨若松,发布于2011-08-16

 

中国的企业特别讲责任。对于软件产品的质量责任,在IT企业里一直是一个“剪不断,理还乱”的话题。我常常看到、感受到在一个软件产品或系统的工作链上,所有的上下游角色都急急忙忙地工作着,可是有一天,有个BUG,我们且叫它“坏孩子”吧,被发现了,大家于是就开始了关于这个“孩子”的来源之争:这是代码问题!”----“不,这是设计问题!”-----“不不,这是需求的问题!”。另外,你也许还听说过其他一些关于软件质量责任的看法,比如:“质量是测试出来的。”“质量是设计出来的。”等等八仙观点。

工业时代的全面质量管理,在美国和日本的推动下,为我们消费者带来了无数的精良产品和美的享受。同时,也创建了责任分明的企业质量文化。进入信息时代后,TQM等质量管理理论和方法也被引入,但似乎对信息技术产品无能为力,无法落实。我们手里的质量大棒找不到了对手。显而易见的原因是,软件产品的不可见性和动态性导致了它的“相对不可观测性”。同时,软件质量管理活动和工程活动的结合不足也是非常重要的原因。当然,我们看到了这20年来软件质量管理的新理论、新变化。我们在软件测试领域,不断地推进,从黑盒测试到白盒测试,从手工测试到自动化测试。等等。这些进步,改善了我们代码植入错误的状况。然而,设计依然不能被全面测试,需求依然不能被全面验证。问题没有被根本解决。我们依然达不到象对待工业品那样清晰地管理软件产品质量!

当没有哪个环节能被完整度量的时候,质量就是每个环节的责任!当没有人能对质量独立负责的时候,质量就是大家的责任!所以我说,BUG这个坏孩子,是大家的孩子!

这样的认识基础,必然决定了软件质量全员责任。全员责任又带来了一系列棘手的问题:责任划分的困惑和责任推脱。最后,产生了模糊的企业质量文化。就比如第一段里的那些八仙观点。另外,软件公司里的质量管理部和测试部“伟大的职责和尴尬的地位”也说明了这一点。(这里我要强调的一点是:质量管理问题没有被很好地解决,并不妨碍一些好的产品的问世。)

这里,我试着提出一种软件项目质量管理模型。这个模型帮助我们有效分解责任链,说明软件工程活动的责任分配,并描述软件质量的责任衰减梯度。同时,这个模型也有助于提高我们的工程能力。该模型如下图:

模型的解释如下:

(1)4个象限分别代表4个质量责任区间或质量责任环节,分别是:需求开发人员的质量区间,架构师的质量区间,详细设计人员的质量区间,编程开发人员的质量区间。

(2)沿顺时针方向(图中灰度降低方向),质量责任逐步衰减(降低)。因此,需求开发人员的质量责任最大,编程开发人员的质量责任最小。这个观点可能会被许多同仁反对。但是,我依然这样认为的原因有两点:一是上游的工作对下游工作影响性大,所以上游的工作责任也就应该大,就像河水治理一样,要重点关注源头和上游的水质污染。二是从事上游工作的人才成本高,所以责任也应该大。比如说现在的许多业务专家的待遇特别高。

(3)本模型意架构驱动的开发模型为基础模型,所以,强调架构质量对软件系统的全局性影响。

(4)“测试”没有被作为一个工程过程对待。因为,新的开发观点,如CMMI等,认为,测试是一个质量控制和保证手段,属于产品和需求的验证工作;同时,测试越来越被早期执行,它甚至贯穿整个项目生命周期。

(5)软件质量目标由需求决定。在设计和开发阶段,质量目标被分解和实现。同时,缺陷从一开始变被“人为地”引入。因此,缺陷管理是质量管理的一个中心工作,只要缺陷的打开和不断地关闭,才能促进软件质量的完善。

(6)项目过程质量其实代表的是软件开发的“工艺”,这是工程能力的一个主要方面。过程质量控制和保证可以使用传统的质量管理技术和方法。现在中国掌握了很多西方高新技术理论,但是我们并不能消化这些理论制造出好的产品,其原因就是我们没有好的工艺,工艺代表了实践的经验,不可逾越。听说,全国热火朝天在建的高铁的车轮就是这样的情况。所以,我们需要过程改进,需要EPG,来长期地构建软件企业的质量文化。从这个意义上讲,项目过程质量是关联项目质量和组织质量体系的连接点。过程质量的另外一个价值就是,消弱公司对工程师的严重依赖,降低组织能力和员工能力的耦合度。

(7)产品质量有了明晰的度量方法,度量时间提前。早期如何度量软件的质量看上去似乎是一个伪命题,因为早期软件并没有产生。但是在早期,软件的质量缺陷却已经开始被埋入了。我们就通过埋入缺陷的程度来度量软件质量吧。同时,可以采取技术评审和测试等手段控制质量。

总结一下,该模型说明了质量问题的变化趋势和质量责任接力棒的传递过程。


 
相关文章

基于模型的软件质量评测
软件质量保障全流程
如何开展软件项目的质量管理
质量保障新手段,携程回归测试平台实践
 
相关文档

系统质量保证实践
软件质量管理和质量保证
质量管理体系之研发篇
APQP产品开发流程与管理(汽车行业)
 
相关课程

软件开发过程中的质量管理实践
组织级质量管理方法与实践
产品质量管理方法与实践
质量管理最佳实践

 
分享到
 
 
     


论软件项目质量管理
软件质量保证(SQA)
有效的软件质量管理
评审的主要优点
同行评审常见问题解答
软件测试过程和质量的度量
更多...   


开发过程中的质量管理
基于缺陷的质量管理
软件质量管理
CMMI2软件质量保证


嵌入式软件开发过程中的质量管理
北京 软件质量管理
诚毅科技 质量管理评价和敏捷开发
Schneider 软件项目管理+软件质量
装甲兵工程学院 软件质量管理
福诺移动 软件配置管理与质量管理
中国平安保险 软件质量管理
更多...