論“技術QA”的必要性
技術QA是我造出來的詞,指的是團隊中的自由人,他沒有特定的編碼任務,只是檢查程序代碼,并優化代碼結構或提出優化代碼結構的合理性建議,幫助成員重構其中重復的或低效的代碼。
我的建議(包括以前提過的)可以分為三類,一是團隊的架構和運營、二是具體技術、三是用人法則。前兩個我以前都提過很多,這次我主要提用人法則。
現在項目出現了不少狀況,有人員流失,有軟件成型困難等,我認為跟用人法則有很大關系。當領導能夠因人的不同而賦予不同的角色時,團隊的效率、活力、成員的成就感、團隊的凝聚力,產品的質量都會很高,反之如果把每個人都當成相同的人來用,所有人都是寫代碼的程序員,都平均被分配一塊任務,我認為會出現成員在接到只能發揮自己三分之一能力的任務時會很沒成就感,接到超過自己能力的任務時會很有挫敗感,沒有成就感的工作會使成員失去向心力,進而流失。我覺得Tony的辭職有這方面的原因,每個人都是不一樣的,平均主義行不通,差異化很重要。
微軟之所以能夠取得今天的成就,我認為有兩方面原因,一方面是商業策略的成功,一方面是在軟件開發過程中形成了一套合理高效的團隊文化,這些經過實踐檢驗的模型和準則統稱為MSF(Microsoft Solution Framework)。里面的團隊模型包括了開發、測試、用戶體驗、產品管理、程序管理、發布管理、后勤等如此多截然不同的角色,而各角色間同等重要,因為任何一個出了問題,都會影響到產品的進度和質量。也就是說我想當“技術QA”這個角色并非是想要個官兒當當,因為這個角色并不高人一等,而是跟其它角色平等的,只是分工不同,專業的分工產生高效和優質的勞動。我的意圖是做自己擅長的,團隊會有更好的成果,自己也能獲取成就感,我不是最聰明的,我的自信建立在寫過的代碼量上,在技術的追求上,以及自我否定精神方面,現有團隊中沒人比得過我,我達到了俯視現有項目中代碼的水平,我能推翻別人,也樂意推翻自己。我擔當這個角色,通過讀代碼,與其他人結隊編程等方式,可以在模塊劃分,接口設計和編碼風格方面指導團隊成員,編寫出健壯的代碼,減少Bug,提高質量。這樣用于測試的時間將會縮短,成本便會降低,客戶滿意度會提高, 我覺得你跟Michal和Dawn把道理講清楚,他們沒有理由不支持。
我想當這個角色的第二個原因是,更好的傳播知識和應用知識。我以前提過的很多建議基本上在剛開始被否定,但經過解釋都被認可,卻最終束之高閣無人問津,沒有得到貫徹落實。我反省自己,出現這個現象的原因是,“僅僅大概知道”一個新的好的方法,等于0,因為僅僅大概知道,無代碼審核機制,人員自己追求技術的主動性又不足(意思不是說大家一點都不重視質量,而是沒有達到渴望的程度),最終結果就是不用。知道不重要,做很重要。要能夠把好的方法用起來,需要領導的“強力”推廣和“深度”的技術溝通,養成代碼重構的習慣,當遇到一個新問題時,不是“勤奮”的堆砌,僅僅讓代碼跑起來完成任務,而是積極研究最佳解決方案,用最少的代碼去實現它,“懶惰”的追求“簡單性”。研究完后向團隊做講解,經過質疑和完善,得到一個成熟的方案。當遇到一個舊問題時,不是“耐心”的用自己的“笨”方法去實現,而是學習別人已經研究過的成果,用“浮躁”的方式實現它。總之一句話,讓質量管理落在實處。
測試的作用只是檢查程序的正確性。
一般QA的作用是從管理角度提高產品質量。
技術QA的作用是深入代碼內部,在開發的過程中,從技術上提高產品質量,降低Bug率。
所以我認為我們的團隊需要技術QA的迫切程度和重要程度超過測試。我們不應該被傳統思想所禁錮,應該學會創新思維,積極開創工作新局面。
最后我想說一下代碼的問題,我認為如果把軟件比做大廈,那么程序員就是地基,軟件的架構是柱子,一行行代碼是磚瓦。人的作用最重要,起到地基的作用,樓的高度不但決定于人的數量,更決定于人的質量(By the way,質量是可以改進的,但是也是難以改進的,一方面是人的追求不同,他的觀念很難被改變,另一方面是智商的限制,比如我再怎么努力也達不到微軟的錄用標準,成為操作系統的地基)。你所說的用了某種模式可以被認為是某些柱子,但并非所有的柱子,缺少另外一些柱子顯然不能支撐起大廈。最重要的是,不能因為一些柱子造好了,就認為磚瓦也是好的。柱子也是代碼,從量上說,柱子只是大廈的百分之一,沒有柱子就沒有大廈沒錯,但沒有磚瓦的大廈只是亭子,只能看不能住。柱子好是必須的,沒什么值得炫耀,真正的難點是每塊磚瓦都是好的。用破磚爛瓦蓋出的只能是危樓,實踐證明,它連表面都不會風光。所以我認為,最佳做法是用較少的精力搭出初始架構,之后必須把大多數精力集中在磚瓦上,在開發過程中不斷的前進——反省和否定自我——對代碼和架構做必要的重構——再前進……周而復始。這種小步快跑的策略也被用于企業的發展。
總結:雖然我不是牛人(牛人都去微軟了),但在這個團隊中,我有能力當“技術QA”,團隊中也急需這個角色。另外,我的心態很好,當不上也不會辭職。