寫了 35 年程式碼的老程式設計師的最大遺憾

黃小非發表於2016-04-08

大約不到20年前,我處在人生十字路口上。我的第二家公司當時已經花了5年時間為出版行業打造專業圖表製作軟體,不過在那網際網路即將大熱的年代,出版商們已經逐漸向網際網路領域轉移,我們的業務漸漸枯竭。那時候我已經是一個有 13 年程式設計工作經驗,而且同時有 9 年公司運營經驗的綜合性人才了。

我不想再同時又幹技術又幹管理了。我的第一家公司(1985-1987年)的主要業務是打造一款電子表格程式,並有自動釋出的功能。當時我一人主導了整個公司的多項事務,與媒體打交道的是我,面見投資人的是我,處理日常商務雜事的還是我,與此同時我還是公司的3個程式設計師之一併且兼任 UI 設計師。1987 年,當我們公司的產品成功釋出後,我也終於積勞成疾住進了醫院。這件事情讓我明白,既要做軟體公司管理人又要做程式設計師,這不是一個正常人能承受的。

所以在1994年,當我再一次面臨“管理者還是程式設計師”的選擇的時候,我選擇了程式設計師。因為我覺得程式設計師的工作比較單純。現如今20年過去了,儘管在此期間我參與開發了很多不錯的專案,不過我也終於認清了當年我的選擇是多麼的錯誤。儘管在當年,“CTO/CIO/副總裁級工程師”這樣的技術管理路線還是很新的概念,但是在今天看來,這條道路才是正確之選。

1995年,我在灣區工作了大約一年。其中下半年我為蘋果公司工作(伯樂線上補充:那會賈伯斯還在 NeXT)。蘋果那時候看上去就快要撐不住了,所以我就離開了蘋果回到了德克薩斯。因為我不想眼看著我工作的公司垮掉。現在想來這真是個天大的錯誤。

後來,賈伯斯迴歸,蘋果重回正軌,不僅如此,.COM時代也浩蕩沓來。作為一個經驗豐富,訓練有素的技術領袖,我對產品需求的理解是無與倫比的(我們當時釋出了 9 款主要產品,都是直接針對主盤,並且不需要熱補,總之在當時這是很難做到的),我只能說我可以想象我在那個時代原本是多麼的炙手可熱。一旦有人具備了這樣的素質,在職業道路上不斷攀升根本不是問題。

我妹妹在30年前也是以一個程式設計師,不過她很快在一年之內跳到了管理層並且在大約15年之後成為了一家大公司的副總裁。還有一家我工作過幾年的旅遊公司的母公司,他們的CEO大約在15年前也做過程式設計師。當然這些管理層的工作也並不能算得上輕鬆愉快,但是其工作報酬卻(比程式設計師來說)要好太多了。我妹妹的薪酬大約是我的10倍。

這麼多年來,我認識到作為一個程式設計師在能力上的侷限性有多大。不管他們在專業方面多麼出色,但是對於創新改變,或者把壞事變好這些方面的能力卻很有限。我當年就是沒有意識到做一個程式設計師所面對的這種侷限性(甚至說架構師也是如此);在程式設計師這個層面上,你沒有權利去改變現有的事物,因為你只是一個執行者。同樣,你也不會參與到財務、IPO活動,以及其他一些重要事務,作為一個程式設計師,你就樂於去打造酷酷的東西就好了。

有大約5年的時間,我作為員工或者顧問為某些公司工作,這是我職業生涯最糟糕的階段,我所做的事情都得參照一些糟糕的,愚蠢的,徹底白痴的技術管理的指示。在這篇文章里根本就列舉不完這些愚蠢的事情。

比如作為一家銀行的技術部門副總裁,他可以根本不懂技術,但還是有資格做技術方面的決定。同樣在銀行做CIO的人寧可相信供應商也不會相信他手下員工。當然,我們知道CIO拿了供應商的回扣,所以我們才必須買那些沒用的東西,然後他還會不停地寫文章證明那些沒用的東西對我們是如何的好。儘管我們根本就用不上。有一次我離開公司以後CIO也被炒了魷魚,然後他離開了公司並立即在另外一家公司找到了一個類似的CIO的職位。

我做過的最糟糕的一個工作,其實一開始我是很看好的。一家後創業公司在其所在的領域有一個很好的契機。這家公司和其主要競爭對手(但是契機點不同)都想擴大市場,而且市場也確實在逐漸繁榮。我是作為公司的第二個程式設計師加盟的。先於我加入的程式設計師以及經理當時的任務是打造一個全新網上商店系統,因為舊系統太慢也太不靈活,完全無法適應更大的市場需求。這個公司當時沒有技術領頭人,CEO和其他兩個創始人也沒有任何的技術經驗和知識。另一個程式設計師不停地說後端的程式碼如何如何好,然後經理也很信任他。我構建了一個前端模組,做了幾個demo,並每天往程式碼庫裡更新。正當我覺得我寫的前端程式碼已經可以和後端程式碼整合的時候,我突然發現,另一個程式設計師的程式碼庫10個月以來就沒有一次check in——一次都沒有。我把這件事情告訴了經理,可經理卻說:”他(另一個程式設計師)只有在一切都完美了以後才會check in程式碼。“並且除了我以外,沒人覺得這種做法很愚蠢。此後,我花了兩個月的時間,試圖動員公司的創始人招募一些真正能做事情的人(其實我還是認識幾個這樣的人的),但是他們雖然承認之前在招人方面有失誤,但是卻害怕做出人事變動。最後我放棄了,離開了公司。

一年多以後,原先的兩個人(另一個程式設計師和經理)什麼都沒做出來,雙雙被解僱。然後公司創始人又從諮詢公司找了些人來,但還是什麼都沒有做出來。這個時候,所有的商機都被耽誤了。競爭對手那邊呢?他們已經成為了十億美元級別的大公司,我經常會在電視商業廣告上看到這家公司的名字。我每次看到這些廣告的時候就想拿我的鞋子砸電視。我們其實就差一個線上商店和一個現實中的技術領袖。如果我當時的身份不是一個程式設計師而是一個技術負責人的話,那麼現在大紅大紫的沒準就是我們了。很遺憾我只是個程式設計師。

類似的例子我可以一直列舉下去,但是關鍵問題是:如果想要對技術人員的工作有話語權,你就必須同時有能力,有權利,還要有機會才行。一旦你做到了這些,並且你還找到了合理的成長模式,那麼只有天空才是你的極限了。

1987年,我在電視節目《Computer Chronicles》中為我們的產品Trapeze做推廣的時候,另一個參與節目的傢伙叫 Mike Slade,他是Excel的產品經理。當時還很幼稚的我想,這傢伙不過是不知道哪裡跑來的一個搞市場的小角色而已(幼稚的時候人還真是很蠢呢)。後來呢,這傢伙創立了一系列的公司,包括ESPN,他在蘋果公司擔任了各種領導角色,是賈伯斯的至交好友,並且成立了自己的風投公司。

今天,我還是一個程式設計師。所以說現在誰是小角色呢?我懷疑我是不是有一天真的能退休。幸好我還是比較擅長做程式設計師的(我現在的工作是我以前的一個經理給我的,他有一個需求而且知道我能做這件事情),但是到目前為止,我所能做的也就只能是一個程式設計師。

我做程式設計師有大約35年了,其實完成工作的感覺還是很有意思的,而且這麼多年我也確實做了不少出色的東西。但是我也感覺到我對當年沒有去接受成為一個管理者的挑戰產生了悔意。在某種程度上,程式設計師確實是一個單純的選擇。考慮到我經歷了整個網際網路(Dotcom)時代,也經經歷了賈伯斯迴歸蘋果的事件,如果我還能有成為技術領袖的經驗,那麼我幾乎可以無所不能。

所以說,是的,我對我沒有把握住(成為管理者)的機會感到後悔,誰知道如果我當時把握住了現在會變成什麼樣。不過有失也有得,我因此得以享受書寫程式碼的樂趣,以及那些為了解決為題而糾結燒腦的樂趣。

曾幾何時,我站在人生的雙岔口,然後選擇了簡單的那條道路。也許現在,我明白我為什麼做出了那樣的選擇。

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

寫了 35 年程式碼的老程式設計師的最大遺憾

相關文章