譯者:十年蹤跡
鏈接:http://www.zcfy.cc/article/1146
原文:http://www.startuplessonslearned.com/2008/09/what-does-startup-cto-actually-do.html
你的首席技術(shù)官(CTO)整天都在做什么?很多時候乐疆,在一般人眼里的 CTO 形象等同于“那個拿著高薪坐在角落里万细,對‘技術(shù)’進行深層次思考的家伙” 或者 “那個在最后一刻突然一時興起蒂胞,跳起來重新安排我的項目的家伙”。我已經(jīng)努力不讓人產(chǎn)生這種印象蜂筹,但這不容易做到需纳。我們?nèi)狈σ粋€對 CTO 的一致而明確的角色定位。
當我問起我那些曾在大公司任 CTO 的導師們?nèi)绾慰创@一角色艺挪,他們通常會談起 CTO 應該成為公司技術(shù)平臺的對外形象不翩,對開發(fā)者、客戶(尤其是技術(shù)型產(chǎn)品)麻裳、員工來說慌盯,CTO 是布道者。毫無疑問掂器,技術(shù)布道是一項非常重要的工作亚皂,我總是被要求做這件事。然而国瓮,我不認為大多數(shù)初創(chuàng)公司真正需要某人來做全職的布道者灭必。
所以 CTO 意味著什么,除了只是 “不負責直接管理任何人的技術(shù)合伙人乃摹?”禁漓。
我一直認為我不會管理任何人。我打心底認為成為一個經(jīng)理一點也不好玩孵睬,誰會真的想對別人的行為負責播歼?我的意思是,公司大了掰读,什么人都有(不好管理)秘狞!所以我被 CTO 的職位吸引,而不愿意成為分管工程師的 VP蹈集。我認為公司會招一個專業(yè)的家伙來專門負責管理和安排日常事務烁试,而我只要將精力集中于確保我們的技術(shù)確實很牛逼。然而拢肆,一路走過來减响,一些奇怪的事情發(fā)生了靖诗。我發(fā)現(xiàn)軟件的研發(fā)過程和軟件的架構(gòu)變得越來越難以分離。如果你嘗試設(shè)計一個架構(gòu)來最大化軟件的靈活度支示,在沒法保證所有的開發(fā)者都采用 TDD 時刊橘,事情是推動不下去的。如果在推動決策時颂鸿,一部分人采用“預先籌劃1” 而另一部分人使用 “5 個為什么2”伤为,事情也會一團糟。如果每次產(chǎn)品發(fā)布都需要手工部署怎么辦据途?一些做法可以改進軟件的性能绞愚,但要犧牲可讀性、部署能力或可擴展性颖医,你會去做嗎位衩?這對我來說像是技術(shù)問題,但是當你深入分析問題的本質(zhì)時熔萧,你會發(fā)現(xiàn)它們實際上是人的問題糖驴。而人的問題真的沒有辦法以一個旁觀者的立場來解決。
所以我學習了如何管理他人佛致。還好贮缕,我并沒有太不擅長管理,而且我發(fā)現(xiàn)原來它可以帶來很大的回報俺榆。但盡管我在 CTO/VP 的混合角色上經(jīng)歷了很長時間感昼,我仍然有這一揮之不去的困惑,即究竟 CTO 應該做些什么罐脊?
以下是我的觀點定嗓。我認為 CTO 的主要工作是確保公司的技術(shù)策略服務于它的商業(yè)策略。如果這聽起來太簡單或者太泛泛了萍桌,思考一秒鐘宵溅,是否有你所知道的公司做的正好相反,是否你有聽說過有所謂的“磚家”把技術(shù)的繁文縟節(jié)當做經(jīng)營理念來坑老板和投資人上炎?這正是我們要極力避免的恃逻。
我會將它分解為五個特定的技能:
平臺選擇與技術(shù)方案設(shè)計 —— 如果你的商業(yè)策略是創(chuàng)建一個低消耗、快速迭代高效率的創(chuàng)新產(chǎn)品藕施,你最好使用基礎(chǔ)工具讓它變得簡單而不是變得復雜寇损。大規(guī)模專用數(shù)據(jù)庫?我不認為在這里適用铅碍。公司的技術(shù)支持團隊是否能夠深入他們開發(fā)的工具润绵,在有問題時解決和修復?如果不能胞谈,誰能主張并堅持切換到免費和開源的軟件?當產(chǎn)品想法變得越來越天馬行空,誰能檢查并確保整個計劃可行烦绳?新上線項目對整個平臺造成影響應當追究誰的責任卿捎?
把控全局(包括一些關(guān)鍵細節(jié))—— CTO 是整個項目中能夠了解整套技術(shù)方案能做什么不能做什么的人。這意味著了解什么可行径密,什么不可行午阵,當前架構(gòu)能支持什么,做不到什么享扔,以及構(gòu)建一個新功能在先有架構(gòu)下要多長時間底桂。這可不是簡單畫一個架構(gòu)圖就完事的。能夠同時看清整體和細節(jié)是所有我有幸與之共事的真正優(yōu)秀的技術(shù)人員的共同特質(zhì)惧眠。
提供選擇 —— 另一個好 CTO 的標志是他們從不說 “這是不可能的” 或 “我們永遠別這樣做”籽懦。相反,他們找到可選方案并且能夠就這些方案與其他人溝通氛魁。如果 CEO 想要完全改變一個產(chǎn)品來服務于新客戶群體暮顺,需要找一個能扛起新業(yè)務需求的人,并制定出每種可能的方法所需耗費的成本秀存。一些技術(shù)人員有一種傾向捶码,只是“為你決定”并給你一個“最好的”選擇,但這是危險的或链。如果一方宣稱他知道所有的答案惫恼,你們之間就不是一個可信的對話。
80/20原則 —— 這是我最喜歡的一部分工作澳盐。有時候尤筐,你在一個會議中,有人會提出一個新功能洞就。在他們腦海里盆繁,他們靈光一現(xiàn),加這個功能旬蟋,加那個功能油昂,最好再加一堆。在我看來倾贰,他們在增加成本(實現(xiàn)這個部分要一個月冕碟,那個部門要兩個月,……)匆浙。有時候安寺,我會給他們潑一桶冷水。而有時候首尼,一旦我理解了他們要添加的功能的目的是什么挑庶,我可以找到一個獲得 80% 好處而只要消耗 20% 成本的折衷方案言秸。我一直很驚訝我經(jīng)常會聽到“什么?原來這個功能實現(xiàn)起來很難迎捺?举畸!我還以為只要加一兩行代碼就搞定了呢!”
培養(yǎng)技術(shù) leader —— 我將這個職責定義為培養(yǎng)工程師成為“技術(shù)經(jīng)理”并授權(quán)他們指導更多項目的技術(shù)方向凳枝。一個人的能力是有限的抄沮。為了做到這個,我也必須要清楚公司哪方面的技術(shù)方向是真正重要的岖瑰,而哪些只是我們?yōu)榱诉_到目的的過度方案叛买。為了讓多人以同樣的標準工作,我們必須在我們的定義中增加一些保障蹋订。比如我們必須要采用 PHP率挣,還是我們能加入一些用別的語言寫的工具?是否需要保證所有的網(wǎng)頁代碼都用面向過程風格辅辩?如果有人想要把他們的模塊用面向?qū)ο箫L格來寫行不行难礼?通過授權(quán)和培訓,我們培養(yǎng)了一些 leader玫锋,他們能夠分擔 CTO 的工作蛾茉。而通過一起工作,我們創(chuàng)建了一個團隊撩鹿,通過合作谦炬,讓一加一大于二。
我想加最后一個想法节沦,盡管我知道它是有爭議的键思,介于 CTO 和技術(shù) VP 的職責之間。我不知道我被同時履行兩個角色的職責影響了多久甫贯,但我認為它是重要的吼鳞,足以讓我決定冒著被噴的風險將它列出來。
- 擁有開發(fā)方法論 —— 在傳統(tǒng)的產(chǎn)品開發(fā)配置中叫搁,技術(shù) VP 或者類似的管理角色全權(quán)負責確保工程師寫的代碼足夠規(guī)范赔桌,接口有質(zhì)量保證,并有節(jié)奏地發(fā)版渴逻。但是我想在一個精益的初創(chuàng)團隊疾党,開發(fā)方法論比只是單純管理要重要多了。例如惨奕,一個團隊是否使用 TDD 或者實時可擴展雪位,對架構(gòu)會有很大的影響。最起碼梨撞,我認為 CTO 和技術(shù)主管對缺陷和問題要能夠找到和分析根本原因雹洗。否則他們?nèi)绾文軌蛘业绞裁词撬麄兊拿c并確保團隊和架構(gòu)能得到及時調(diào)整香罐?這項工作要求具備全局視野。
你的 CTO 可能是一個好的架構(gòu)師队伟、布道師穴吹、接口設(shè)計師或調(diào)試 bug 的天才幽勒。這些都是非常好的能力嗜侮,我很好奇你是否在你們的 CTO 身上見過這些能力。我承認我的經(jīng)驗是有限的啥容,所以我在收集案例锈颗。你是否與一個很棒的 CTO 共事?是什么使得他們讓你覺得很棒咪惠?一個新任命的CTO击吱,你能從他身上學到什么?
- 注1 Pre-engineered building
- 注2 五個為什么