浅谈软件质量管理之痛
Alu · 2009-09-12 22:36 · 24272 次点击
相信不少软件开发公司都存在质量管理部门。而且,如果一个公司稍微正规的话,一定会使用一个缺陷跟踪软件系统,比如开源的Bugzilla,或是IBM的ClearQuest等等。那质量管理部门是如何跟踪和控制软件质量的呢?毫无疑问,需要通过软件缺陷跟踪系统,这倒也没有什么问题。但问题在于质量管理部门是如何看待和处理缺陷跟踪系统所提供的缺陷统计数据的。
有的公司质量管理部门的地位很高,可能是因为公司质量管理部门在公司地位的高低代表了公司对于产品质量的重视程度,而这种公司质量管理部门往往是向高层管理直接负责的。在现实生活中存在这么一种怪现象:质量管理部门只关心缺陷的数量,而不关心缺陷数量的上升或是下降是由什么原因造成的。也就是说,对于这种质量管理部门,缺陷只是一个数字而已。在这种操作模式下,缺陷的修复完全是开发部门的事了,那么就存在开发部门为了让数字更好看而采用一些短视的行为来减少缺陷数量,甚至于造假。
对于这种怪现象,你觉得质量管理部门对于公司的质量管理有意义吗?从我个人的角度来说,我觉得没有意义。表面上产品质量是掌握在质量管理部门的,或者说质量管理部门应当对产品质量负责,而实际上质量还是掌握在开发部门,也就是说质量管理部门在公司的质量组织架构中并不起作用。此外,由于方法不对,往往很容易造成质量管理部门并不了解问题的复杂性,只是一味的要求开发部门将缺陷数量在很短的时间内降下来。而开发部门也万般无奈的采用甚至是造假的方式去完成质量部门所提出的不可能完成的任务。由此看来,这种质量管理方法不但没有意义,还将大家都整得心力憔悴。
那质量管理部门应当如何在公司的组织架构中起作用呢?我想首要的一点是,质量管理部门应当关心缺陷数量的上升和下降。比如,当缺陷上升时,应当了解为什么上升。是因为产品的新功能开发从而引入了新的缺陷呢?还是产品以前遗留下来的缺陷现在被发现了?出现问题的模块是不是总是其中的某一个模块呢?等等。如果问题总是出现在一个模块,那么质量管理部门可能需要考虑督促开发部门对其进行重构,从而从根本上去解决问题。反之,当缺陷数量下降时,质量管理部门也应当分析是什么原因,而不是简单的乐观。我们说采用这种方式,才能使质量管理部门真正的对产品质量负责。
对于上面所提出的解决方法,可能有人要说,那不是对于质量管理部门人员的要求很高吗?即要懂流程,又要懂软件开发,这种人似乎很难找啊!其实,我们可以采用其它的方式。比如,公司成立一个软件专家组。这个软件专家组可以应质量管理部门之邀对某一缺陷很多的项目进行分析,从而帮助质量管理部门决策其解决方法是什么。那我们如何挑选合格的成员组成专家组呢?这个问题我就不能回答了,但从这一问题我可以看出:人才是首要的!