【郭林專刊】新時代的QA角色:IT全能戰士

故事開始於客戶告訴我的一個反饋: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成爲這個行業最領先的全能戰士角色。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章