天天看點

業界 | 成為CTO之前,我希望有人告訴我這些

如何成為一位合格的CTO,在成為CTO之前又需要哪些職業素養,即将離職的 SketchDeck CTO講述他在過去四年擔任此職位的經驗。

這是一段刺激又美妙的體驗,在創業公司工作與傳統的任職大不相同:一開始,你完全不知道公司是否會成功,也不知道它會不會變成一份全職工作,之後,随着公司的發展,你體驗着新的各不相同的職位。總的來說,你會經常做着你曾經從未做過的工作。在你還未充分利用手中的權力之前,新的責任已經來到了你的面前。

業界 | 成為CTO之前,我希望有人告訴我這些

創業公司像大海中小船,能夠靈活處理突發事件,但是你在第一天做出的決定會随着時間的推移不斷往外産生漣漪。我現在知道的是,你選擇的基礎建設、架構結構和語言都将在未來的很長一段時間裡伴你左右。

随着公司的成長,建構更多功能和子系統的重壓會不斷增大,每一個都将進一步鎖住你的選擇。伴随你獲得更多動力的,是壓力的持續增加,這時你再想停下來重新修改這些已經不可能了。

我對我們的選擇非常滿意:Amazon Web Services, Elastic Beanstalk, Firebase, AngularJS, Coffeescript, Kafka, Simple Queue System, SocketStream, Docker, SemaphoreCI, MySQL。清單中,僅有 AngularJS和MySQL在規模方面存在問題。我們的整個AngularJS代碼包太大了,下載下傳需要相當長的一段時間,應用程式也有點太慢了。随着BI查詢複雜性的增加,(RDS中的)MySQL會崩潰并重新啟動,這個問題很難解決。

衆所周知,一項技術的生命周期驚人的短。CoffeeScript和AngularJS是已經過時的元件(我們計劃遷移至TypeScript和最新的Angular)。當我們采用這些技術的時候,他們都相當的先進,真是慶幸,我對前沿科技的偏愛并沒有引起任何嚴重的問題。我極其欣賞CoffeeScript ,因為其簡潔的功能性文法,這些年裡它極大地幫我大大提高了生産效率。

業界 | 成為CTO之前,我希望有人告訴我這些

基于以上,你得明白你需要準确計算預算時間,并為技術的更替制定政策。你在采用任何技術時都得接受長期的“技術債務”。

同樣,你編寫的元件和庫将長期存在,不管你寫得好不好,他們的狀态一直都會這樣——是以,為将來的維護人員着想,你最好多花一點時間在上面。

我們試圖在我們所處理的代碼領域進行小幅改進。有時,考慮到代碼庫的(總是不完美)的總體狀态,可能會有壓力,此時,我就會進行不斷的小改進。

最後,是關于測試的簡短說明:我發現讓我們的團隊編寫測試代碼真的很困難。我為我們系統中的很多部分都編寫了測試用例,并配置好了測試伺服器,在每次有代碼送出的時候會自動運作。盡管如此,我很少看到其他人添加測試。我總是希望團隊裡能夠重視測試,但是不盡如人意。以下是我解決這個問題的想法:

開設有關如何編寫測試的複習課程;

要求重要功能包括至少一個測試;

優化我們的測試伺服器,使之在10秒鐘内完成而不是10分鐘(哎!),讓程式員及時看到測試結果。

除了純粹的技術決策之外,一名CTO還應兼顧人員管理。每天的大部分工作将是管理,上司,招聘和解雇人員。我不得不将學習這些貫穿始終。當然随着實踐的進行,對這些流程會越來越熟練。

雖然員工是公司最寶貴的資産,但招聘員工的過程同樣讓人精疲力盡。相比收獲了新入職的人,你可能需要花更多的時間來考慮雇用和拒絕更多的人。你可能需要更嚴格地過濾。我從未想到完美的創業團隊成員是多麼難得,也沒想到會花如此多的時間和精力來尋找他們。

業界 | 成為CTO之前,我希望有人告訴我這些

明确何時招人也是一個棘手的問題:是現在還是之後為這個職位招人?應該先為哪些職位招人?這些問題在你得到投資之後會尤其突出,因為你覺得你有義務讓這些資金發揮最大價值。幸運的是,我們從Michael Siebel和YC那兒收獲了一些具有幫助性的建議:

當你感覺某個職位需求非常迫切的時候才開始招聘(比如快趕不上合同進度了的時候):

招人是為了滿足業務發展的需要,不能本末倒置(這條主要适用于還沒有形成規模化的早期公司);

不要招人來做一些你都還沒想明白的事情(一些優秀的候選人也許能給公司帶來新的動力,但通常的做法還是靠“有魔力”的創始人配置公司資源來适應新的發展)。

綜上所述,如果你不确定是否需要為某個崗位招聘員工,可能做這個決定為時過早。我們也曾試圖雇人來給公司實作我們自己也沒有計劃好的增長方案,但大部分時候都失敗了。

員工管理一直相對比較順利 —— 定期開誠布公的檢查,明确什麼是該做的,什麼是不該做的,這些措施讓我和我的員工保持着良好的關系。

管理人員一直相對比較順利——與員工定期的、開誠布公的交流,這讓我和同僚們保持良好的關系。

我發現解雇員工是工作中很棘手的問題。你能從其他地方找到很多有用的建議,我在這兒簡單地重申一下,早在你理性地決定和正式解雇一個人之前,你的直覺就已經做出判斷了,但是解聘員工的這個過程非常痛苦。

良好的定期交流有助于雙方接受最壞的結果。最後,基于一份個人發展計劃,有一部分人真的能夠應付自如,成為高效的團隊成員;每個人都應該有這樣的機會去展示自己。

伴随公司發展的一大樂趣就是看到一些優秀的人才在各自的領域能夠獨擋一面。在此,我要向我的整個團隊緻以誠摯的敬意和祝賀。

原文釋出時間為:2018-03-21

本文作者:文摘菌