在软件和互联网产业,目前没有这些认证,相反的,倒是有“人肉认证”:
你想申请某个著名专业网站的账户或者邮箱,但是又担心这个网站对用户信息的保护程度不够。有人说,没关系的,这个网 站的创始人也用账户,CTO,总监什么的还经常发软件安全博客,账户一定是非常安全的!这里不存在独立的质量认证,只能通过人肉(创始人/CTO/总监) 来认证产品的质量。
其实这种认证未必安全…(密码门事件)(明文密码事件)(邮箱密码漏洞)
如果有第三方的认证“此网站对用户信息的保护程度是X级,我们认证它不会明文存储用户密码…”我就放心了。在第三方认证出现之前,我希望团队内部至少有独立的QA角色,来确保软件的质量。否则我是不乐意使用这些软件/服务的。
[补充一句,互联网服务的各种认证也在发展,例如verisign公司提供的各种认证。]
独立出来的质量保证角色怎么才能发挥作用?
有了独立的质保角色之后,是不是万事大吉了?未必,分工意味着一件事要分给别人去工作。让别人做事,并且依赖别人做出的结果,这会出现一些问题。
问题:既然有专人负责,那我就不用负责了!
生活中一个常见的歪理是,既然有清洁工,那我乱扔点儿垃圾算什么,这才是他们工作啊!
尽管有专人负责QA中的测试工作,但是保证质量仍然是所有成员的职责。软件团队中的一些人往往在有意无意中忘记这一 点。最常见的现象是开发人员写好一个功能之后,迫不及待地宣布成功,然后希望测试人员去发现所有问题。如果问题在发布后才被发现,开发人员会说–测试人员 怎么搞的,这种bug都没找出来!?
某项目的某功能有重要的改进,这个改进经过研究员的研究,开发人员的设计,美工的美化,两个开发人员的配合实现,项 目管理人员的督促,测试人员的测试,最后所有人都号称做好了,上线了!为此,我约了某个目标用户给他做实地展示,几天后,大家都到齐了,开始演示。开始进 行的不错,马上最重要的killerfeature就会出来了…嗳,预想的效果怎么还没出现呢?再试试,还没有?各相关人员面面相觑,大家小声说:
“我不是把那个新模块给你了么?”
“我就是照着那个接口实现的啊…”
“我不是已经交给那啥…”
“所有的bug不是已经都搞定了么…”
会议在尴尬中胜利结束了。
来查问题的根源,这个复杂的功能由于两个模块的接口在最后没有同步,某重要的参数被忽略了,这个功能中最出彩的部分压根就不可能工作!那负责测试的角色怎么解释“所有测试用例通过,同意发布”的呢?
这还是开发人员引以自豪的“杀手级功能”(killerfeature),那其它普通的功能是什么命运呢?
回过头来,我们可以问:
·这件事真的要通过这么多环节么?
·测试人员真的知道最最关键的地方如何测试么?
·在系统上线之后,所有为这个功能感到自豪的人是否去实地测试过呢?
一个开发人员应该负责下面“开发功能”右边的几个圆圈呢?
问题:盲目信任“专业人士”扮演的角色
每个角色的水平不一样,软件的质量往往受最差的角色的影响最大。我们团队要为某软件写一段英语介绍文字,团队成员都 是通过四六级英语考试的牛人,可他们都很谦虚,说要请一个专业的人士来写不可。于是求了一个专业人士,求了好几次(专业人士很忙的),在上市之前才得到专 业的文案,于是,copy/paste几次之后,软件就向全世界发布了.
这个文案第一句就是热情洋溢的设问句:“haveyoueverthinkabout...”随后还有几处非常明显的语法错误.这个软件吸引了不少评论文章,有旁观者说,从介绍文字的几处典型中国式语法错误来看,这个软件是由在中国的某分部搞出来的…
即使有专业人士扮演各种角色,还得有专人独立地检查验证质量。
我们回头来看,可以问两个问题:
·这件事真的要专业人士来做么?
·专业人士做完之后,谁来负责测试?
问题:为了自己角色而做绩效优化
分工之后,每个角色为了自己的绩效而优化,会出现局部最优,而全局未必最优的情况。
原文转自:http://www.uml.org.cn/Test/201306061.asp