|
故事開始于客戶告訴我的一個反饋:ThoughtWorks成都的一個項目組,最近這段時間開發工作量變多,于是擔任QA角色的某同學自動轉入開發模式開始寫代碼。不僅自己寫,還拉上遠在墨爾本的客戶QA一起遠程結對。兩個QA結對開發,效果出奇的好:代碼質量毫無問題,而且對需求理解充分透徹,story完成得又快又好。
客戶表示很驚訝,同時也看到這種多技能跨角色人才可以帶來的巨大收益。他說,他想在自己的團隊里也推廣這樣的實踐。
為了理解這個故事的意義,我們需要回想IT的原點。最初,計算機的用戶都是專家,他們自己定義問題然后自己解決問題。后來,不能以圖靈機的方式思考的普通人開始使用計算機,于是IT服務的提供者們成為了物理世界與數字世界之間的橋梁。說到底,整個IT行業的價值所在,就是解決這樣一個 NP問題 :
給定任意一個物理世界存在的問題,將其轉換為一個圖靈機可計算的問題,或指出其不可計算性。
這個不那么通俗的定義,用比較通俗的方式說出來,就是 Design Thinking :物理世界存在的問題往往以“謎題”(mystery)的方式被提出;而為了用任何形式的機器來解決一個問題,我們需要“算法”(algorithm);然而獲知一個謎題是否有一個算法可解的過程,根據圖靈的論文,本質上等價于 希爾伯特第十問題 ,也即是一個不可能用機器解決的問題,因此這個過程需要人類的“啟發式思維”(heuristic)。
說得再簡單點,IT服務者的工作,其最大價值不在于解決問題,而在于定義問題。
定義問題這件事之所以如此困難,因為這個世界上的大多數人并不了解計算機。他們(通常被稱為“客戶”,其實計算機魔法學校的學生們都知道這只是“麻瓜”的一個客氣的稱呼)腦子里冒出的想法是含糊的、模棱兩可的、未清晰定義的、不一定能被計算的。而IT服務者的職責就是(1)理解這些模糊的想法,并(2)為這些想法找到可以被普通人理解的計算方案,或者(3)以普通人可以理解的方式說明為什么這些想法不能被計算。
所以,作為物理世界與數字世界(麻瓜世界與魔法世界?)之間的橋梁,IT服務者(以團隊的形式)必須同時具備與普通人打交道的能力和與計算機打交道的能力。很長時間以來,這兩種能力歸屬于IT團隊中不同的角色,兩類角色之間高昂的溝通成本在漫長的交付過程中尚且可以容忍。然而互聯網時代要求更短的交付周期、更快的響應能力,于是IT行業開始呼喚既善于與人打交道、又善于與機器打交道的全能戰士。
有趣的是,當我們向現有的角色劃分里尋找這樣的全能戰士,我們發現最接近的角色是QA。這個角色需要和客戶直接對話,弄清客戶那個含糊不清的故事究竟應該用哪些明確的標準來驗證,然后再拿著這些標準來檢查要交付的軟件是否符合。不知不覺中,QA們既能使用商業的語言(保單、免賠、拒絕承保??)、又能使用技術的語言(URL、服務器、部署??)。于是,我們也就不再驚訝,當這個團隊出現 多能工化 的訴求,首先響應的是QA。
(胡凱在 他的文章 里也同樣談到了全功能團隊的價值。)
另一方面,QA對于“驗證”的重視也恰好與ThoughtWorks對“最后一英里”的重視暗合。回望過去ThoughtWorks取得的重要技術成就,其實大多與“驗證”有關:Selenium、Watir、TDD、CruiseControl、持續交付??因為驗證才是對問題的定義,而如今在快速變化的市場中打拼的客戶所面臨的最大挑戰往往是清晰地定義問題。因為這種既能理解人又能理解機器的特質,QA們往往能最好地定義問題。
然而傳統的QA定義——很多時候就是“人肉回歸測試機”——不僅沒有體現出我們所期望的“multi-skilled”,往往倒是走向一個最差的結果:“multi-non-skilled”。“叫你寫程序吧,你又不會寫;叫你泡客戶吧,你一說話就臉紅。算了,你還是做測試去吧。”這種不負責任的態度讓很多IT從業者都把QA當做職業發展的最差選擇。我真的希望,我們能改變這種狀況,讓QA成為這個行業最領先的全能戰士角色。
P.S. 最近和 小朋友 結對做QA,教了他很多犄角旮旯的事情。一個星期里用三種不同語言編程(算上 Selenese 的話就是四種),誰說QA不是個有趣的工作?
it知識庫:新時代的QA角色:IT全能戰士,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。