『我進QA啦。』
『這個案子現在已經在QA了。』
『目前很順利,估計明天就可以進QA。』
多麽熟悉的工程師對白,不是?我對於各家公司的工作流程沒有意見,畢竟,能賺錢能獲利,的確是你們的本事。但是,如果你要宣稱你們團隊走的是敏捷開發流程,拜託拜託,不要再說出類似的話,或是至少不要在懂的人面前提,那會『抬笑大方』的。
『為什麼?開發完成發完進QA測試,代表我的工作做完啦?這有什麼不對?』
不對。不只不對,還錯慘了。
身為RD,先別急著生氣,請容我修正一下:『如果你對外宣稱你們團隊跑的是敏捷流程,那麼你就不可以這樣說。』
我們看看這樣的立論所為何來。
首先第一,QA這個名詞是怎麼來的?QA者,Quality Assurance也。什麼意思?他就是要來保證品質的。那麼,冷靜想想,保證品質是誰的工作?先不要急著回答,我們先換位思考一下。你今天去手機行買了一隻全新手機,不管他好用不好用,他都會在你心中留下一個品質好壞的分數吧?那麼,你會這樣跟你的朋友說嗎:『X牌手機的QA真弱,手機真難用。』大概不會吧?你應該會說:『X牌手機真難用,爛斃了』,對吧?
對了,維護品質這件事,上自管理階層,下至部主管與程式工程師,大家通通都要擔負責任。憑什麼你花3個月做出來的產品漏洞百出,卻要一個從頭到尾完全插不了手的人測試3天後,就要為這個產品的品質承擔責任?憑什麼?
品保,是每一個人的責任。
其次,我們來看看在敏捷流程之一的scrum中,怎麼定義所有相關人員的角色吧!
從上圖(圖片來自網路)可以知道,在scrum流程中,把所有成員分成PO、SM、Team等三種。有QA嗎?沒有QA。這代表scrum就不注重測試嗎?不。這代表你自己寫的東西你要嘛自己測,要嘛大家交換測。保障品質這件事,我們整個團隊共同承擔,沒有什麼我做你扛這種事,這種不公平的事我們不做。
有的人就會問了,那麼,原先QA專長的成員,到了一個scrum團隊中,要做什麼職務呢?很簡單啊!要嘛PO,要嘛SM,要嘛Team member啊!記得我們一直提的『價值驅動』嗎?對公司來說,有價值的是把產品做得好,而不是把測項跑完。這件事太重要了,重要到我不得不再強調一次:
對公司來說,有價值的是把產品做得好,而不是把測項跑完。
回到文章一開始說的那三句話,你現在還是覺得沒問題嗎?再想想。
對於敏捷開發的團隊,或是任何成熟自主管理的團隊來說,『快速做出高品質產品』才算是把工作做完,如果你還是抱著把東西丟給QA就沒我的事的心態,那你充其量就是做了一個產品叫別人幫你背書的『程式碼產生員』而已。這不代表你不好,只是這樣的心態並不能說是敏捷開發而已。如同我先前說的,是不是敏捷開發不重要,能把東西做好最重要。而敏捷開發恰好目前在軟體業界的管理方式中有他的優勢而已。
結論:根本就沒有QA,或者人人都是QA,老爸老媽、大哥小妹、男孩女孩,只要有心,人人都可以是QA。