在軟件和互聯網產業,目前沒有這些認證,相反的,倒是有“人肉認證”:
你想申請某個著名專業網站的賬戶或者郵箱,但是又擔心這個網站對用戶信息的保護程度不夠。有人說,沒關系的,這個網 站的創始人也用賬戶,CTO,總監什么的還經常發軟件安全博客,賬戶一定是非常安全的!這里不存在獨立的質量認證,只能通過人肉(創始人/CTO/總監) 來認證產品的質量。
其實這種認證未必安全…(密碼門事件)(明文密碼事件)(郵箱密碼漏洞)
如果有第三方的認證“此網站對用戶信息的保護程度是X級,我們認證它不會明文存儲用戶密碼…”我就放心了。在第三方認證出現之前,我希望團隊內部至少有獨立的QA角色,來確保軟件的質量。否則我是不樂意使用這些軟件/服務的。
[補充一句,互聯網服務的各種認證也在發展,例如verisign公司提供的各種認證。]
獨立出來的質量保證角色怎么才能發揮作用?
有了獨立的質保角色之后,是不是萬事大吉了?未必,分工意味著一件事要分給別人去工作。讓別人做事,并且依賴別人做出的結果,這會出現一些問題。
問題:既然有專人負責,那我就不用負責了!
生活中一個常見的歪理是,既然有清潔工,那我亂扔點兒垃圾算什么,這才是他們工作啊!
盡管有專人負責QA中的測試工作,但是保證質量仍然是所有成員的職責。軟件團隊中的一些人往往在有意無意中忘記這一 點。最常見的現象是開發人員寫好一個功能之后,迫不及待地宣布成功,然后希望測試人員去發現所有問題。如果問題在發布后才被發現,開發人員會說–測試人員 怎么搞的,這種bug都沒找出來!?
某項目的某功能有重要的改進,這個改進經過研究員的研究,開發人員的設計,美工的美化,兩個開發人員的配合實現,項 目管理人員的督促,測試人員的測試,最后所有人都號稱做好了,上線了!為此,我約了某個目標用戶給他做實地展示,幾天后,大家都到齊了,開始演示。開始進 行的不錯,馬上最重要的killerfeature就會出來了…噯,預想的效果怎么還沒出現呢?再試試,還沒有?各相關人員面面相覷,大家小聲說:
“我不是把那個新模塊給你了么?”
“我就是照著那個接口實現的啊…”
“我不是已經交給那啥…”
“所有的bug不是已經都搞定了么…”
會議在尷尬中勝利結束了。
來查問題的根源,這個復雜的功能由于兩個模塊的接口在最后沒有同步,某重要的參數被忽略了,這個功能中最出彩的部分壓根就不可能工作!那負責測試的角色怎么解釋“所有測試用例通過,同意發布”的呢?
這還是開發人員引以自豪的“殺手級功能”(killerfeature),那其它普通的功能是什么命運呢?
回過頭來,我們可以問:
·這件事真的要通過這么多環節么?
·測試人員真的知道最最關鍵的地方如何測試么?
·在系統上線之后,所有為這個功能感到自豪的人是否去實地測試過呢?
一個開發人員應該負責下面“開發功能”右邊的幾個圓圈呢?
問題:盲目信任“專業人士”扮演的角色
每個角色的水平不一樣,軟件的質量往往受最差的角色的影響最大。我們團隊要為某軟件寫一段英語介紹文字,團隊成員都 是通過四六級英語考試的牛人,可他們都很謙虛,說要請一個專業的人士來寫不可。于是求了一個專業人士,求了好幾次(專業人士很忙的),在上市之前才得到專 業的文案,于是,copy/paste幾次之后,軟件就向全世界發布了.
這個文案第一句就是熱情洋溢的設問句:“haveyoueverthinkabout...”隨后還有幾處非常明顯的語法錯誤.這個軟件吸引了不少評論文章,有旁觀者說,從介紹文字的幾處典型中國式語法錯誤來看,這個軟件是由在中國的某分部搞出來的…
即使有專業人士扮演各種角色,還得有專人獨立地檢查驗證質量。
我們回頭來看,可以問兩個問題:
·這件事真的要專業人士來做么?
·專業人士做完之后,誰來負責測試?
問題:為了自己角色而做績效優化
分工之后,每個角色為了自己的績效而優化,會出現局部最優,而全局未必最優的情況。
原文轉自:http://www.uml.org.cn/Test/201306061.asp