打造高質效的技術團隊 —— 混亂篇

wKioL1TPZijQpnKhAAocUAjXwjU842.jpg

2012年平安夜,我離開工做了近十年的通信行業投身互聯網行業,入職了當時阿里巴巴旗下的淘寶瀏覽器開發團隊。過去的兩年,這個團隊完成了從淘寶瀏覽器過渡到UC瀏覽器電腦版開發團隊的鉅變。之因此說是鉅變,是由於整個開發團隊的工做方法、工做質量和精神風貌在過去的兩年發生了翻天覆地的變化。在這個過程當中,我做爲「領頭羊」引領着開發團隊向前發展,並在最近有機會成爲了帶領包含開發和測試在內的整個技術團隊繼續向前發展的負責人。面試

 

個體在兩年內取得巨大變化相對容易,而對於一個團隊來講挑戰就大了不少,由於其中包含了技術和管理兩方面的內容,甚至是我我的對於軟件行業的理解及所持有的技術和管理理念。在目前中國IT行業的大環境下,UC瀏覽器電腦版開發團隊何以取得如此之大的進步相信被很多人所好奇。也正因如此,我想經過文章與你們分享。與此同時,經過這些文章與個人團隊共同總結過去兩年所發生的變化和讓團隊知曉未來如何發展得更好。編程

 

爲了不這類文章過於空洞,本文將基於我我的在過去兩年所看到的、所想的,以及所採起的方法的形式加以展開。瀏覽器

 

混亂架構

二年前我之因此選擇加入淘寶瀏覽器團隊,正是由於看中了Google的Chromium開源項目,由於淘寶瀏覽器正是基於它的二次開發產品。那次面試時其實並無多少Windows的編程經驗(只有大約半年),當時面試官之因此看中我,最大的緣由是我有Motorola的架構師經歷。入職後,在一封主管回覆給個人郵件中他告訴我:「其實,將你招聘進來是一次很是大的冒險。由於,一是你沒有互聯網行業的經驗;二則擔憂你此次轉行適應不了新環境。然而,從你的郵件來看,這種擔憂徹底是多餘的,你進入角色的速度遠遠超出個人預期」。收到這封郵件的回覆時,我入職並在Chromium的軟件架構上已花了有一個星期的時間。ide

 

在接下來的三個星期裏,由於我是一名新人,因此沒有被安排具體的開發任務,而我也一直將時間投到了掌握Chromium的軟件架構上。即使在之上當時總共花了大約一個月的時間,但對於Chromium這一被我稱之爲「恐龍級」的項目來講,這點時間真的是杯水車薪。函數

 

以後,我被安排從事一些簡單的界面編程工做。對於我這個新人來講,當時團隊對於項目計劃的樂觀程度着實讓我嚇了一大跳。對於那些在項目上有經驗的人來講,很簡單的工做要我二天完成其實並不容易。緣由在於,我以前並無將時間投入到了解界面與程序中類的對應關係,團隊也沒有在這方面有任何文檔沉澱幫助我上手工做。好在有周圍同窗們的幫助,加上本身的鑽研,我仍是如期地完成了被安排的開發工做。學習

 

第一次接觸淘寶瀏覽器的代碼真可用「震驚」兩個字去形容當時的心情。首先,代碼的組織徹底忽視了Chromium的軟件架構。這形成的問題有二方面。一方面是代碼目錄結構與層級一片混亂,每位同窗想怎麼處理都行,結果就是自有代碼很難維護;二則,因爲沒有很好地關注Chromium的軟件架構,這使得自有代碼與Chromium的原生代碼耦合度很高,從而致使升級Chromium內核工做非常困難。其次,編碼格式沒有統一的標準,「不堪入目」的代碼讓人一瞄就知道編程效率和質量不可能高到哪兒。測試

 

在入職的前半年時間裏,我一邊「獨善其身」地工做着,力爭讓本身的工做成果與Chromium的保持高度一致;一邊不時地經過即時通(阿里是用旺旺的)和郵件指出所看到的不良編程行爲和分享本身的一些思考。坦白說,做爲一名新人,在開始指出他人的問題時並不能讓人愉快地接受。相反,很容易讓人以爲「這我的怎麼處處在挑刺?」主管看到我時常指出團隊的問題,非常擔憂這樣團隊接受不了我,爲此專門在一次談話中向我說起該事。在這種背景下,以前出書、寫博客的經歷,加上在指出問題時每每會告知背後的原理,以及本身以身做則的各類工做習慣,讓我慢慢地博得了你們的承認與信任。最終結果向良性方向發展的關鍵在於,你們看到了個人能力,以及感覺到我但願團隊發展得更好的作事初衷。編碼

 

另外,前半年工做時間除了讓我慢慢融入團隊,還給了我不少觀察團隊的機會,讓我看到了團隊其餘更多的問題。首先,整個團隊的工做方式過於原始,基本上是採用編碼後測試驗證經過就發佈軟件的方法。因爲概要設計和代碼走查流程的缺失,使得開發工做差很少就是各自爲政,技術方案的優劣和編碼質量的高低都沒有把關。其次,嚴重存在「從新發明輪子」的問題。因爲項目計劃老是過於樂觀,在項目時間並不充裕的狀況下,你們一拿到需求的第一反應就是開幹,而不是先研究Chromium是否存在爲我所用的方案、模塊和函數、結構是否與Chromium的保持一致。概要設計和代碼走查流程的缺失使得「從新發明輪子」的行爲很難發現和被糾正。再次,整個團隊在知識管理方面一片空白。團隊中找不到任何一份文檔指導個體如何開展開發工做,也因爲個體所掌握的知識沒有經過文檔化的方式輸出,使得整個團隊的個體成爲了「知識孤島」,個體的學習成本更高,團隊效率更低。最後,徹底「閉門造車」。做爲一款基於Chromium開源項目二次開發的產品,除我以外幾乎沒有人關注開源社區的動向,你們只是低着頭幹,視野非常侷限。spa

 

前半年工做時間還讓我造成了本身的一些思考。

 

互聯網行業的產品對於用戶體驗非常考究。然而,讓人分裂的是,產品後面的團隊彷佛並不關注本身的工做體驗。他們用着原始的工做方法,採用簡單加班的苦勞方式,卻沒法從本質上改變本身的工做和生活質量。

 

互聯網行業對於「天下武功,惟快不破」存在嚴重誤解。從功夫的角度,武林人士之因此能作到「快」(形式)的跟本在於他的內功(能力),也就是說沒有深厚的內功則「快」跟本沒有支點。然而,你們在引用「惟快不破」時,只看到了表象,甚至將之看成解釋本身工做質量不盡人意的藉口。在我看來,對於「快」的正確理解應是產品的全部功能根據必定的優先級、以知足可持續發展所需的質量要求的方式分階段實現,而非以犧牲賴以可持續發展的工做質量去換取。有一點咱們必定不能欺騙本身的是,由於「內功深厚」而有意忽視質量求快呢?仍是根本不知道如何得到高質量而以「快」作幌子?「惟快不破」之因此運用普遍,是由於創新產品存在巨大的用戶紅利,而這種紅利極可能快速變成產品的用戶粘性而造成競爭優點。即使如此,「惟快不破」並無隱含「犧牲質量換取速度」。對於目前已一片紅海的PC瀏覽器市場,若是沒有造成本身的核心技術競爭力,則很難用低質量的「快」打出本身的一片天地。

 

淘寶瀏覽器時期的團隊還存在極爲嚴重的內核升級之痛。Chromium大約一個半月推出一次大版本,而基於Chromium的淘寶瀏覽器別說跟上Chromium的發展步伐,就是作一次內核升級也由於得重放大量的代碼而週期很長。因爲Chromium的發展步伐很快,且每個版本幾乎都存在對已有功能的代碼重構而致使大量的變動,一旦跟不上其發展步伐,就會形成大量的變動被累積到下一次內核升級工做之時,從而使得下次內核升級的工做量更爲巨大。

 

如今回過頭來看,那時的淘寶瀏覽器團隊雖然很多同窗有很好的技術積累,但因爲作事方法缺少規則的約束和不具專業性而難以發揮團隊的效能。團隊走過了很多彎路、犯過了很多錯,只是那時的團隊尚未徹底意識到。此外,那時的團隊也根本沒有意識到Chromium項目所蘊藏的軟件開發方面全方位的知識寶藏。

 

整個團隊正等待着一次全面改善的機會!

 

相信讀者對於像淘寶瀏覽器這樣的團隊並不陌生,甚至正經歷着這樣的團隊。或許,有的人對於這樣的團隊並不感到有何不妥,由於在他們看來,這樣的團隊一樣可以在業務上取得巨大成功,業務成敗與團隊的水準彷佛毫無關係。然而,我想提醒的是,對於你們都騎馬前往目的地時,總會有騎馬的人先達到;但若是其中有某位是駕車前往時,最早到達目的地的必定是他。並且,兩種出行方式的過程溫馨度大相徑庭!


做者微博:@至簡李雲

相關文章
相關標籤/搜索