從 Google 工程師到創業 CTO ,這 8 個理念讓他一路堅持下來

評論
評論

原文來自於 firstround《How to Go From Google Engineer to First-Time CTO》,愛范兒 翻譯

不久以前,我還是一名籌劃著自己第一家公司的軟體工程師。顯然,有許多需要考慮的地方,但是最讓我興奮的是那些「未知的未知」——我知道會出現、但不可預知的挑戰。雖然有一群可靠的夥伴和我這個技術宅一起工作,但是我深知從第一行命令開始,要建立一家成功的公司還要付出很多很多。正如你想像的,有許多我沒有預期的東西都發生了。所以,我寫了下面這些「未知」,獻給那些憧憬著去創業公司當 co-founder 的工程師們。

方向和信念

2006 年當 Google 給我 offer 的時候,我開心的接受了。那個時候,Google 幾乎是一名軟體工程師工作的最好選擇,意味著你可以和世界上最聰明的一群人一起工作,還可以隨意使用世界上最先進的工具。

(photo by 路透社)

然而,它好壞參半。一方面,我真心相信在 Google 這樣的公司你距離參與創造奇蹟近了一步,心安理得地享受 Google 提供的優沃待遇。 Google 提供的基礎要求,如季度目標,使命,核心價值觀,代碼規範等能為你創立公司提供幫助。另一方面,在 Google ,很難保持衝勁和創造力。離開 Google 、加入 Redbeacom 是我做過的最好的決定之一。我是他們的第一位僱用的全職工程師,並協助建立了整支隊伍,還為產品開發制定了排程。這些都是在 Google 做不到的,因為在大公司,軟體工程師很容易被隔離在業務線外,你唯一的責任就是輸出優質的程式碼。但是,如果你以第五個人的身份進入一家公司,你會看見整個公司正在運轉的所有事情,你也在業務的前線,有機會參與重大決策。任何相當技術 Leader 的人都應該加入一家早期的公司獲得這種體驗。

今天,作為 Artillery 的 CTO 和 co-founder ,我的生活一半是完全的自由,一半是巨大的責任。 Artillery 正在努力創造一項技術(將瀏覽器編程為高品質的遊戲機)。這是我作為工程師的衝動,可以任意地按我們的路線進行創造。同時,我們都知道,如果我們的技術可行,很快就會面對更多的用戶,同時承受隨之而來的更大的壓力和期待。

在某些時候,你得相信自己做的是正確的事情。將「我想我們可以這樣做」換成「這就是一定要會發生的」這種心理暗示並不容易,但這就是讓我進步的原因。有人認為這是信心,我不這樣認為,我想它更關乎一種信念。

溝通的失敗

13971743221_10f5cd74d6_k
(photo by Manuel Schmalstieg)

在加入 Artillery 的頭幾個月,其他的 founders 和我都已經數次激怒了對方。我開始想在這樣一支小的隊伍,相對於在 Google 溝通應該不在話下。但是我錯了。三位 co-founders 的溝通很混亂,一個人說給另一個人,第二個人又傳話給第三個人。作為一名軟體工程師,如果你在一支全是工程師的隊伍,溝通是相對容易的。當這支隊伍混入了其他職位的人,且多於 10 個,溝通會變得有點棘手。相信我,溝通會比你想像的難,但是必須好好地掌握。

所以我們準備花更多的時間一起規劃,花一個小時的時間坐在房間,清楚地寫出來當下在進行的事情。第一次這樣做的時候,在不到 60 分鐘的時候,我們就解決了能想出來的大部分問題,這些問題大部分都是由於溝通失誤造成的誤解。從此之後,每週我們都會開一次這樣的 founder’s meeting 。同時,我們會把決定都記錄在一個共用的 Google 文件,方便隨時查閱。從此之後,我們再也沒有出現過嚴重的分歧。

但是,僅僅增加溝通的量是不夠的,更重要的是要更好地溝通。當我們剛開始例會的時候,我們經常陷入無休止的浪費時間的爭論中。過了 30 分鐘後,我們才意識到剛才是在用各自不同的話語表達同一個觀點。一個簡單的短語,比如「需要一項政策」,可以意味著一本 10 頁的手冊,也可以是一句話的規則。所以現在,在我們開始反駁的時候,我們會先花時間確保我們理解我們的出發點是什麼。這樣會增加溝通效率,節約時間。

我們制定了這類會議中的三個原則:首先,會議是私人性質的,所以我們會給與彼此最坦誠的反饋,這就讓我們把「自我」關在門外,所有人都可以開誠佈公地討論。這會導致我們中的某人說:「哦,我不認為它會這樣。」建設性的批判對話讓我們更好地完善自我。

其次, email 的問題。通過 email 很難傳遞情緒,很容易成為誤解的發源地。誤解一封 email,變得心煩,甚至影響表現——實在太容易了。同樣的話語,如果是面對面的對話就會有完全不一樣的效果。

(photo by Aaron Escobar)

我有一個簡單的小技巧可以在 email 中傳遞情緒:當我懷疑我發出的某條訊息可能會有歧異,我會加一個表情,比如 [mood: agreeable],從而確保傳達出我樂意的態度。如果你也這樣做,你會發現它非常有效,可以讓所有人保持冷靜的情緒,避免爭端。

建立「工程師烏托邦」並不容易

5730730760_e1d920294a_b
(photo by Dan Zen)

開始組建團隊的時候,我們會說很多在 Artillery 工作的美好願景,包括各種各樣的福利待遇。我們希望用有趣又有意義的工作來吸引最優秀的人才。

於是我們在網站上掛了很多福利:免費午餐、完善的醫療保險、交通報銷、無限的假期、 workstation 預算、從東京買來的遊戲原型手錶……然而,列出這些福利簡單,將它們落實,建立一個「工程師烏托邦」卻是困難的。

開始,我以為無期限的假期是一個好主意。畢竟,它是 Netflix(美國顧客滿意度最高的公司)著名的文化甲板,在他那裡很奏效。然而,在我這兒,似乎為員工帶來了更多的壓力,優秀的員工害怕他們休假太多而不敢提出請求。最後,我們決定還是採取固定期限的帶薪休假模式——既能緩解員工焦慮,又能足量地滿足員工的度假需求。

在有新員工提出各種奇怪需求前,自主選擇電腦裝備是一個好主意。但是,誰知道 20 美元的 Razer Goliathus 滑鼠墊是否值得?有員工提出用他們自己的筆電工作,把它們的預算花在昂貴的額外設備上。還有員工想要高昂維修費用的組裝系統。至此,我終於決定每個人都應該用 Mac OS X——因為它足夠乾淨、簡單。

「福利」可能並沒有什麼用

10743004735_732ed806fa_k
(photo by Berliner.Gazette)

要解決問題首先要理解福利的實質意義是什麼。比如說道買設備,它的目的不是無限制地滿足員工的每一個細微的需求,而是為他們提供良好的工作環境,確保沒有人還在使用老舊、遲緩的電腦。讓每個人理解政策、福利背後的邏輯,可以幫助他們做出更好、更謹慎的決策。

福利一旦實施,就很難輕鬆收回。可能除了你自己,並沒有別人理解福利的目的。那些員工看似在浪費你的好意,其實並沒有惡意。你得提醒他們理解這個福利的機制。

離開舒適區

17252781859_09b8ef3416_k
(photo by Carlos Pacheco)

我知道 CTO 的職位意味著更多的責任,卻不代表冗長的會議和官僚主義。除了技術, CTO 還要承擔更多的管理職能:僱傭合適的員工,解僱不合適的員工,持續地創造和輸出 idea ,帶著目標團結隊伍。

當我們募集資金的時候,我第一次遇到這些挑戰。和投資者周旋對一位軟體工程師來說真是一件苦差事,如果你也和我一樣習慣了坐在自己的位置,僅僅透過 GChat 彼此交流。突然之間,我得穿上沒有破洞的襯衫參加各種大型會議,並試圖說服在場的人我們能實現不可能的事。

對於工程師來說,承諾一周以後的 deadline 已經很難了。投資人卻會 challenge 你承諾今後 1-2 年的事情,並會在每一個節點問你問題。「真的嗎?」他們中的有人說,「你要做一個 AAA 遊戲?你怎麼把 2G 的內容放進瀏覽器?你怎麼讓它有趣?」

幸運的是,多年的軟體工程師生涯賦予了我一項珍貴的技能:直覺。我豪不懷疑我們在做的事情是可行的。一旦我自己深信不疑,讓其他人相信也就輕鬆多了。

就像說服投資人,團結新的隊伍也是一項挑戰。多個月之前,我們決定做遊戲,雖然不知道它會成為什麼樣子,但是開始做是第一步。我請一位合作的美術家傳給我一張遊戲的圖片,是一片鬱鬱蔥蔥的草地。我把它做成了 36″x24″ 的大海報,掛在牆上。從此,無論誰問我他們接下來要幹嗎?,我都會指著這張圖說:「只要能讓我們離這裡更進一步。」這是自我驅動型工程師需要聽到的話。我們有一個清晰的目標,就踏踏實實地掛在牆上,我們要做的就是努力實現它。

選擇正確的技術

4604140980_c838e29396_b
(photo by Sebastien Wiertz)

Web 開發是一個有創造力的快速發展的世界。各種各樣的新 idea 和工具層出不窮,似乎換一個新框架或程式碼就能解決你所有的問題。但是作為 CTO 你要記住,挑選怎樣的技術相當於你花了一筆真金白銀,一旦你做了決定,很可能你就沒有時間和資源再走回頭路了。

在 Artillery ,我們清楚我們會寫很多 JavaScript ,即使大家都懂,但是 JavaScript 還是有各種讓你不爽的地方 。我們之前有使用過 CoffeeScript ,它運作得不錯,我們也喜歡它的作者做的大部分決定,所以我們最終選擇了它。然而最關鍵的原因是,我們並不會被困死在 CoffeeScript 上。如果哪天我們想丟棄它,我們可以將輕量級的 CoffeeScript 全部編譯成 JavaScript ,並從那裡繼續前進。這麼做合情合理的,而且成本也很低。

伺服器端的決定就沒有那麼容易。 Node.js 顯然是我們的首選,它可以輕鬆分享客戶端和伺服器端的程式碼。然而,那個時候 Node.js 還很年輕,而且它的生態圈也不成熟。當時很難評估 Node.js 的第三方資料庫的品質和安全性,有很多相似功能、但又在開發的不同階段的資料庫。

這讓我們停下來思考了一下。但是經過更多的研究,一件事情提醒了我們: Node.js 的更新速度很快。 Node.js 基於的 V8 ,已經被證明在 Google Chrome 上跑的又快又乾淨。如果只有一家公司擁有最多值得信任的聰明人在致力於程式語言,那就是 Google 。依靠這個框架似乎是一個安全的選擇。 Node.js 的代碼新版本是一致的,而且強大的 Github 社區又提供了頻繁代碼更新的便利。在仔細的審議後,我們決定用 Node.js ,現在很慶幸我們做了這個決定。

Harbor 你的資源

我很喜歡 side project ,我總是要做點什麼——一個遊戲、一個 WebApp,或其他的什麼工具。這是我保持學習,玩新東西的方法。但是當 Artillery 成為現實,我的興趣突然成為我的全職,我該怎麼度過我的空閒時間呢?

我曾經花了一個週末,和一個朋友做一個電商網站的原型。「花不了多長時間的」我記得我還這樣說過,「我只需要用 Django 、 PayPal 和一個購物車。」它的確只花了兩天,卻耗盡了我一個禮拜的精力。

從此,我才意識到精神充電是必須的。在其他項目上分神處理讓我在工作中降低了效率。作為 CTO ,跟上新技術是我的責任,為什麼我還要做那些無益於我提高的事情呢?做外部的項目會給我的正職帶來壓力,對我的合夥人也不公平。我停掉了 side project ,創造力和精力又回來了。雖然我有時還是會陷入卡住的狀況,想修復一個 bug 卻怎麼也辦不到,但是了解了生產力循環的週期後,我放輕鬆了。

如果此時狀態不佳,不如接受它,和周圍的伙伴交流一下,做一些簡單的工作。這樣總比恐慌、錯過 deadline 要好。

如果你真的什麼都做不了,告訴你一個小技巧:想想那些你完全不想碰的事情。再做手邊的事情就舒服多了。

相信你的直覺

如果你知道某件事是對的,即使你還不能馬上知道原因,先開始做。推論是:如果某件事情感覺不對,無論是招聘、管理、談判,還是其他決策,聽從你的內心。 CTO 的工作很辛苦,會用掉你全部的腦力和直覺——但是除了它也沒有別的什麼我想做的了。

 

歡迎加入「Inside」Line 官方帳號,關注最新創業、科技、網路、工作訊息

好友人數

精選熱門好工作

客戶規劃顧問 Customer Success Associate

SHOPLINE 商線科技有限公司
臺北市.台灣

獎勵 NT$20,000

Software Manual Test 手動測試工程師

樂購蝦皮股份有限公司
臺北市.台灣

獎勵 NT$20,000

(Backend)Senior Software Engineer

ShopBack 回饋網股份有限公司
臺北市.台灣

獎勵 NT$20,000

評論