曾經有不少人對我問過類似的問題:作為技術人員在創業團隊(或是小公司)工作,技術上沒什麼挑戰,覺得自己得不到鍛鍊,我該怎麼辦?
的確,就說網際網路這個領域吧,創業團隊或是小公司的網站規模往往並不大,或者至少要從小做起,使用者訪問量和那些大型網站在當下自然沒法比,從這個角度上看,很多中小網站的確暫時面臨不到這些高併發、大流量、高可用的這些“嚴峻挑戰”,另外,團隊的職能崗位甚至也沒有大型公司那麼齊全,人家連做配置管理的團隊規模甚至都比你整個公司人多,似乎在小團隊作技術的出門都低人家一頭,見面不好意思打招呼,真的有必要妄自菲薄麼?
首先要說明的是,在大一點的公司裡面,最不缺的就是解決複雜技術上的資源,但是有意思的是,遇到技術“挑戰”的其實是極少數的一部分工程師,大多數工程師做的都是相對可以規範起來的事情。或許有人不信,但是你要知道在團隊有了一定規模以後,很多技術人就會形成路徑依賴,一遇到稍微複雜一點的問題就去請教那些比較資深的同事,往往放棄了自己動手解決問題的機會,有些情況甚至他們也不敢承擔風險,那麼,你認為這種情況對他們會有多少挑戰?
我們前面說到了複雜技術,以前關於網站架構設計、大規模叢集、海量資料處理等主題,多少都還有一些神祕感,但是最近幾年來,相關技術文章帶來的資訊越來越全面,越來越開放,不誇張的說,構建一般的大型網站的技術,你可以通過公開技術資訊獲得所有的細節內容。當然,有了這些,就好比你已經有了一份藍圖,具體的施工還是要自己控制。不要誤會,我不是說創業團隊的技術人不會遇到技術難題,如果真的遇到目前能力無法逾越的技術障礙怎麼辦?我的回答是:求助於社群,利用群體智慧。和那些封閉的大公司的技術團隊所擁有的資源相比,這是更為遼闊的空間。注意,解決了問題不是最後一步,要把解決問題的能力逐漸培養起來。有若金庸小說中的北冥神功,要善於化為己用。
有些人把挑戰等同於自己想做的事情,有些人把挑戰看做一種憧憬,想象那些沒有做過的事情,在我看來,真正的挑戰恰恰是你不願意做、不願意改變、當前做不好的一些事情。
在創業團隊你可以做的一些更有挑戰的事情:
重構自己的程式碼
如果是開發人員,隨時要記得的事情是如何改善自己的程式碼質量。要讓自己成為更好的技術人,重構或許是是隨手可作的並且切實可以提高自己能力的一件事情。有好的程式碼為基礎,才有可能隨時面對更大的系統壓力。要記住小網站有可能發展為大網站,技術人需要的是提前做好準備,為你的程式碼,為你自己,為你的團隊。
自動化日常工作
有人說,蘿蔔快了不洗泥,團隊什麼事情都要我做,我怎麼有時間去搞什麼重構?那麼,是否可以將一些日常需要重複做的事情儘可能的自動化,比如日常釋出是否可以自動化?測試工作是否可以自動化?安全檢查是否可以自動化?有了這些為前提,你肯定有足夠的時間去做你想要做的事情。
良好的開發習慣
在一個團隊中,如果養成良好的開發習慣會讓你節省時間和精力。比如對版本工具的掌握程度,如果連 SVN 都缺少使用意識的話,很難想象團隊協作開發的時候會搞成什麼樣的局面。也不要抱怨團隊的同事沒有好習慣,他們或許正需要你的幫助呢。..用你的行動,去帶動他們。順便問一下,你平時為程式碼寫註釋麼?
改進自己的產品
複雜未必是最大的競爭力,細緻和精緻有的時候是更好的競爭力。很多技術人員做到最後發現自己做了很多對使用者並不重要的功能和產品,而最重要的產品反而疏於改進。這未必都是別人的錯,如果自己能夠對產品和業務有足夠的了理解的話,你或許會驅動團隊少走彎路,做更正確的事情。
提高資源使用率
別人用數臺機器支撐的訪問量,換了你,能否用更少的硬體支撐?這些方案是可擴充套件的麼?是可驗證的麼?遺憾的是,我看到多數小團隊硬體利用率甚至比一些大團隊更低。如果聽任低效的程式碼、冗雜的產品功能不去改變,那麼可能的確要面臨資源利用率相對較低的窘境。
規劃資源的能力
團隊小的時候,整個產品架構、整個網站架構的資訊收集並不難,讓你建立起一個全域性的觀念相對更為容易一些。注意分析整體架構的演變,根據自己的理解,一步一步預期將來可能出現的問題。這是非常難得的鍛鍊自己的機會。順便問一下,你給自己的網站畫過架構示意圖麼?
保持學習的熱情
我在前面說到了網路上的技術資源的豐富性,你是否能夠持之以恆的去學習、吸收這些技術經驗,是否養成了評估某項技術成熟度的能力? 什麼,學了用不上?問題是再大的公司在技術上也是要有取捨的,更多的時候都是在用更為合適的技術而不是看起來更“先進”的技術。
這個清單肯定可以列得更長,至少還應該包括溝通技巧的改進、傳授技能給他人、塑造技術影響力。看似都是一些平淡無奇的事情,其實在大的團隊大的公司,我覺得有挑戰的也都是類似的事情,我也不確定哪一個對你來說更難做到。不過真的能把這些都做好的話,或許驀然回首,那些所謂的挑戰對你來說已經是浮雲。
說到底,不能靠環境改變自己,如果你自己要改變自己對你收益是最大的(當然挑戰也大),而要環境改變你會讓你更為痛苦。只要你願意。而且,在規模較小的團隊中,你的改進會直接體現到團隊的整體上,不要忘了,你是這個團隊的一份子。團隊越小,你的影響力就會越大,等到團隊壯大起來,不就是你有更大職能的時候麼?從經濟學的角度上看,團隊雖小,但是人均產出未必不如那些大團隊的成員。正好比做手錶的做到巔峰,不比造飛機的少賺多少。總有一天,很多技術人會以在小團隊工作為榮。
挑戰不在河對岸,就在你面前。
原作者:Fenng