如何成為一位合格的CTO,在成為CTO之前又需要哪些職業(yè)素養(yǎng),,即將離職的 SketchDeck CTO講述他在過去四年擔任此職位的經(jīng)驗,。 這是一段刺激又美妙的體驗,在創(chuàng)業(yè)公司工作與傳統(tǒng)的任職大不相同:一開始,,你完全不知道公司是否會成功,,也不知道它會不會變成一份全職工作,之后,,隨著公司的發(fā)展,,你體驗著新的各不相同的職位??偟膩碚f,,你會經(jīng)常做著你曾經(jīng)從未做過的工作。在你還未充分利用手中的權(quán)力之前,,新的責任已經(jīng)來到了你的面前,。 創(chuàng)業(yè)公司像大海中小船,能夠靈活處理突發(fā)事件,,但是你在第一天做出的決定會隨著時間的推移不斷往外產(chǎn)生漣漪,。我現(xiàn)在知道的是,你選擇的基礎(chǔ)建設(shè),、框架結(jié)構(gòu)和語言都將在未來的很長一段時間里伴你左右,。 隨著公司的成長,構(gòu)建更多功能和子系統(tǒng)的重壓會不斷增大,,每一個都將進一步鎖住你的選擇,。伴隨你獲得更多動力的,是壓力的持續(xù)增加,,這時你再想停下來重新修改這些已經(jīng)不可能了,。 我對我們的選擇非常滿意:Amazon Web Services, Elastic Beanstalk, Firebase, AngularJS, Coffeescript, Kafka, Simple Queue System, SocketStream, Docker, SemaphoreCI, MySQL。列表中,,僅有 AngularJS和MySQL在規(guī)模方面存在問題,。我們的整個AngularJS代碼包太大了,下載需要相當長的一段時間,,應(yīng)用程序也有點太慢了,。隨著BI查詢復雜性的增加,(RDS中的)MySQL會崩潰并重新啟動,,這個問題很難解決,。 眾所周知,一項技術(shù)的生命周期驚人的短,。CoffeeScript和AngularJS是已經(jīng)過時的組件(我們計劃遷移至TypeScript和最新的Angular),。當我們采用這些技術(shù)的時候,他們都相當?shù)南冗M,,真是慶幸,,我對前沿科技的偏愛并沒有引起任何嚴重的問題。我極其欣賞CoffeeScript ,因為其簡潔的功能性語法,,這些年里它極大地幫我大大提高了生產(chǎn)效率,。 基于以上,你得明白你需要準確計算預(yù)算時間,,并為技術(shù)的更替制定策略,。你在采用任何技術(shù)時都得接受長期的“技術(shù)債務(wù)”。 同樣,,你編寫的組件和庫將長期存在,,不管你寫得好不好,他們的狀態(tài)一直都會這樣——所以,,為將來的維護人員著想,,你最好多花一點時間在上面。 我們試圖在我們所處理的代碼領(lǐng)域進行小幅改進,。有時,,考慮到代碼庫的(總是不完美)的總體狀態(tài),可能會有壓力,,此時,,我就會進行不斷的小改進。 最后,,是關(guān)于測試的簡短說明:我發(fā)現(xiàn)讓我們的團隊編寫測試代碼真的很困難,。我為我們系統(tǒng)中的很多部分都編寫了測試用例,并配置好了測試服務(wù)器,,在每次有代碼提交的時候會自動運行,。盡管如此,我很少看到其他人添加測試,。我總是希望團隊里能夠重視測試,,但是不盡如人意。以下是我解決這個問題的想法:
除了純粹的技術(shù)決策之外,,一名CTO還應(yīng)兼顧人員管理,。每天的大部分工作將是管理,領(lǐng)導,,招聘和解雇人員,。我不得不將學習這些貫穿始終,。當然隨著實踐的進行,對這些流程會越來越熟練,。 雖然員工是公司最寶貴的資產(chǎn),,但招聘員工的過程同樣讓人精疲力盡。相比收獲了新入職的人,,你可能需要花更多的時間來考慮雇用和拒絕更多的人,。你可能需要更嚴格地過濾,。我從未想到完美的創(chuàng)業(yè)團隊成員是多么難得,,也沒想到會花如此多的時間和精力來尋找他們。 明確何時招人也是一個棘手的問題:是現(xiàn)在還是之后為這個職位招人,?應(yīng)該先為哪些職位招人,?這些問題在你得到投資之后會尤其突出,因為你覺得你有義務(wù)讓這些資金發(fā)揮最大價值,。幸運的是,,我們從Michael Siebel和YC那兒收獲了一些具有幫助性的建議:
綜上所述,,如果你不確定是否需要為某個崗位招聘員工,可能做這個決定為時過早,。我們也曾試圖雇人來給公司實現(xiàn)我們自己也沒有計劃好的增長方案,,但大部分時候都失敗了。 員工管理一直相對比較順利 —— 定期開誠布公的檢查,,明確什么是該做的,,什么是不該做的,這些措施讓我和我的員工保持著良好的關(guān)系,。 管理人員一直相對比較順利——與員工定期的,、開誠布公的交流,這讓我和同事們保持良好的關(guān)系,。 我發(fā)現(xiàn)解雇員工是工作中很棘手的問題,。你能從其他地方找到很多有用的建議,我在這兒簡單地重申一下,,早在你理性地決定和正式解雇一個人之前,,你的直覺就已經(jīng)做出判斷了,但是解聘員工的這個過程非常痛苦,。 良好的定期交流有助于雙方接受最壞的結(jié)果,。最后,基于一份個人發(fā)展計劃,有一部分人真的能夠應(yīng)付自如,,成為高效的團隊成員,;每個人都應(yīng)該有這樣的機會去展示自己。 伴隨公司發(fā)展的一大樂趣就是看到一些優(yōu)秀的人才在各自的領(lǐng)域能夠獨擋一面,。在此,,我要向我的整個團隊致以誠摯的敬意和祝賀。 【今日機器學習概念】 Have a Great Definition 志愿者介紹 |
|
來自: 萬皇之皇 > 《IT互聯(lián)》