前面的文章談到了很多關於程式設計師在而立之年需要對於自己的職業發展方向進行重新考慮,其實對於程式設計師而言,有很多的轉型發展方向,比如轉型成為技術管理,或者成為運維甚至也可以自己進行創業,每個發展方向中,成功的人都大有人在。而在這眾多的職業發展選擇中,最合適的發展方向想必就是技術管理了,這也是大多數從程式設計師做起的同學最希望的發展方向,無論是專案經理、架構師還是cto,相比於底層的技術人員,他們對於專案的影響能力往往會更大,所能夠改變的東西也會更多,當然收入也會比一般技術人員更高,也往往更加有成就感。
但是從程式設計師成長為技術管理者並不那麼簡單,首先對於程式設計師而言,他們的工作更為簡單,大部分內容只是和機器打交道,最多也就是和同團隊的成員或者測試人員有所溝通,只需要關注於自己的工作,而不需要對於全域性進行考慮。而當你成為乙個技術管理者時,你不僅需要具備比較強大的技術能力,能夠讓團隊中的成員對於你的領導信服,也需要具有良好的溝通能力以及領導的智慧型,還需要具有掌控全域性的能力,技術管理者或許不會對專案中的任何乙個部分都非常了解,但是他會知道團隊中誰能夠勝任什麼樣的工作,團隊的配合怎樣才會最高效,以及每個專案的整體進度是怎樣的,權力大了,同時責任也會更大。或許在技術上,你並不能改變人們做事情的方式,除非你有那個能力、權力和機會。有了這些條件,並且找到正確的位置來發展,你才有可能摘星攬月。其次,想要從程式設計師成為乙個架構師或者專案經理,你往往需要付出比別人更多的努力,每天都寫業務**,難以從工作中得到足夠的養分,你需要利用一切可以利用的機會去學習和成長。當然,這並不是說堅持在一線深入地研究技術成為技術專家不是一條很好的職業發展道路,也並不是所有的程式設計師都適合做技術管理者,本文就為大家分享對於技術管理轉型的思考。
首先和大家分享乙個「一子錯,滿盤皆落索」的故事。這個故事的主人公兢兢業業幹了35年的程式設計師,最後卻認識到,程式設計師的力量太過微小。無論你寫程式有多厲害,你都很難有權力真正改變一些失敗的產品、失敗的專案。尤其是當他看到,當年跟自己同上節目展示開發軟體的mike slade,最後走上管理層,創立了包括espn在內的一大批公司,成了賈伯斯的好朋友,那種失落更是莫名的強烈。至今都對自己當初貪圖安逸、沒有走上管理層而懊惱,走技術管理還是繼續當程式設計師,這是個問題?
以下為故事內容:
約摸20多年前的時候,我面臨著乙個人生的交叉路口。當時我的第二家公司正在走下坡路,我們給一家出版商客戶開發了五年的deltagraph軟體專案終止了,因為對方想要轉移到方興未艾的網際網路世界。當時的我當了13年的程式設計師,其中有9年左右也身為管理層參與經營公司。
我不想再兼顧這兩種工作了。此前在85年到87年期間,我的第一家公司不僅開發了一款新的電子報表製作軟體,還自己搞定了軟體的發行工作。我領導公司,接受**採訪,維護和投資人的關係,基本的公司事務都是我在做,同時我還是全公司的3個程式設計師和ui設計師之一。到了87年初終於成功發布產品的時候,我緊張興奮得最終進了醫院。想要同時幹好領導和程式設計,實在是超負荷的工作。
到了2023年,當時我有機會選擇職業方向,可以進行技術管理也可以繼續當程式設計師。我選擇了當程式設計師,因為工作更簡單。今天我才明白,自己的選擇有多麼地錯誤,儘管我在當程式設計師的20年間也參與了許多很棒的專案。如果當初選擇了首席技術官、首席資訊官、工程副總裁這樣的路線,那將是好得多的決定。
2023年前後,我在舊金山灣區工作了一年,其中後半年是在蘋果公司。蘋果公司當時看起來快要倒閉了,我不想看著自己最愛的公司分崩離析,於是就離職回了德州。那時的我太年輕太天真,乃至大錯特錯。蘋果公司在一年後賈伯斯回歸之後東山再起,網際網路風暴也在那時開始席捲全球。
作為乙個經驗豐富的程式設計師和領導者,我完全明白開發一款產品是怎樣的乙個過程。我們曾經做過九次應用的重大發布(major release),所有軟體的核心都是我寫的,都不需要後續加修正程式——反正當時補丁也很難寫。我摩拳擦掌,心想那些公司是多麼需要我這樣的人才。一旦有機會坐到高位,我就可以平步青雲了。我的姐姐也在30年前開始了她的程式設計師生涯,但她在工作的第一年就跳到了管理職位,此後在乙個大公司當副總裁,一幹就是15年。我幾年前在一家旅行社工作,其母公司的ceo就是15年前幹程式設計師起家的。當然這類管理工作可能很困難也沒啥意思,但他們的報酬要好得多。我姐姐的資產大概是我的10倍。
這些年來,我認識到程式設計師的力量太過微小。無論你寫程式有多厲害,你都很難有權力真正改變一些失敗的產品、失敗的專案。我當時就是沒看明白,作為乙個程式設計師(乃至建築師這樣的崗位)的晉公升空間有多麼小。在這樣乙個幹苦力的崗位上,你改變事情的力量注定是微乎其微的。再算上管理層在財務上的福利、更有可能深入參與公司ipo以及其它種種可能得到的機會,選擇當程式設計師,就意味著你必須滿足於開發好產品,其他就別想太多了。
這些年來,我工作過或作為顧問諮詢過的那些最差勁的企業,基本上都是因為他們的技術管理層的不稱職,甚至是徹頭徹尾的技術白痴。這類公司簡直多到寫不完。舉個例子,一家銀行的工程副總裁曾聲稱,作為乙個管理者的他不需要懂得那些技術細節,因為他管理的是人,而且仍然認為自己可以做技術方面的決策。同一家銀行的首席資訊官從來不相信他手下跟他說的話,反而把賣方的話全盤兼收。我們當然都知道他從中獲得了提成,雖然我們買的都是根本用不到的東西,他卻總是寫文章稱讚那些產品對我們來說有多大用處。我離開那家公司一段時間後,他也被開除了,但轉頭就又找到了另一家公司裡類似的職位。
我開發了乙個前端,架設測試,每天簽入**。當我覺得是時候把我的**整合到系統中時,我發現另乙個程式設計師在10個月裡啥也沒乾。我把這件事告訴經理,他卻對我說,「他在做到完美之前從不會簽入**。」。然而,其他人都不覺得這種做法很愚蠢。在接下來的兩個月裡,我一直努力讓三個創始人聘請真正能做事的程式設計師(我認識幾個合適的人),但他們很害怕做出改變,也不肯承認聘請那兩個人從一開始就是錯誤的選擇。最終我選擇放棄,離開了那家公司。
這樣的事還有很多,但在技術上,你並不能改變人們做事情的方式,除非你有那個能力、權力和機會。有了這些條件,並且找到正確的位置來發展,你才有可能摘星攬月。
2023年年初,我在電視節目中展示自己開發的trapeze軟體,上節目的另乙個展示人是mike slade,他是excel 的產品經理。當時的我還太年輕,以為他也不過是乙個無名小卒。然而他後來創立了一大批包括espn在內的公司,曾在蘋果公司擔任許多領導角色,成了賈伯斯的好朋友,並創立了自己的風投公司。但是,今日的我還是乙個程式設計師,籍籍無名的技術工。我甚至覺得,我永遠都不會有真正退休的一天。還好我技術不差,現在的這份工作就是以前的乙個經理招我進來的,因為他了解我的能力。但在我老到做不動之前,我仍然只是乙個小小的程式設計師。
幹了35年的程式設計師,保證按時完成任務,我也依然覺得推出新產品是很有趣的工作,這些年我也有機會開發了許多不錯的產品。但是,我仍然能夠感受到對當初貪圖安逸、沒有走上管理層的懊惱。在某種程度上,當程式設計師是乙份簡單的工作。然而,一想到我曾經距離網際網路風暴的中心那麼近,離賈伯斯回歸那麼近,我也有一定的領導經驗,我就無法不懊惱,我完全可能是另一幅模樣。所以,我真的很後悔沒有直面挑戰。當然,如果走的是另一套路,我就會失去寫**的樂趣,也無法感受寫不出來的絕望感。但是在人生的分岔路,我選擇了行人稀少的那一條,它改變了我的一生。現在我大概明白了。
故事完
故事講完了,作為程式設計師的你是不是摩拳擦掌,立志成為乙個技術管理者了呢?先別急,其實不是所有人都適合成為技術管理者。技術和管理是兩個完全不一樣的領域。技術做得好,不見得管理就能做好。對於很多程式設計師來說,與機器溝通要比與人溝通簡單得多,所以能不能成為優秀的技術管理還要看個人的性格。管理者表面上很風光。其實你要明白:權力有多大,責任(和壓力)也就有多大。管理者每天要面對雜七雜八的很多問題,很難做到專注,一門心思只做自己喜歡的事情。如果你追求的是簡單的快樂,做程式設計師更能讓你得到滿足。思維方式需要很大的轉變。作為管理者,你的職責是幫助團隊成功,你的成功也需要依靠團隊。沒有團隊很失敗而個人很成功的管理者。
除此之外,懂技術的管理者是很有優勢的,但從技術向管理的轉變過程中「坑」也很多。技術注重的是細節,而管理需要的是大局觀。這一點對於很多人來說特別難把握。對於技術管理者而言,也不要輕易放棄寫**。因為從技術轉向管理的過程中,是有一段危險期的。不要荒廢了技術,管理能力又不夠強,這時候如果公司出點變故,你將很難再找到乙份理想的工作。找乙份好工作,實力是一方面,運氣也很關鍵。
技術 管理和技術管理
與 老大 一起談軟體行業 和 我為什麼寫 致it同仁 軟體行業的另乙個真相 中談到,軟體設計是一門藝術,也許,很多技術在做到很高的境界時都是一門藝術,也就是說很多技術在其更高層次上都是相通的。由此看來,技術與管理在高層次上也可能存在很多共性。是哲學?乙個完備的組織架構通常存在管理與技術兩方面的內容,...
技術管理 開篇
在我們工作3 5年左右,陸續都會帶領一些小夥伴,隨著帶的人越來越多,會逐步成長為管理者。在成長為leader以後,很多的小夥伴都不適應,從原來的做好自己轉變為帶著團隊做好這個層次上的轉變。我想成為乙個怎樣的人?我想要乙個怎樣的團隊?每個人都有自己的特長和喜好,比如我喜歡與人溝通交流,我喜歡帶著團隊一...
技術管理之道
一年管理成富翁,十年技術一場空!你沉迷於技術不能自拔,幻想成為一名受人尊敬的架構師,但你發現時間 精力越來越不夠!你身體透支,做著 crud,感覺自己沒有技術成長!開啟你的小圈子,你猶如井底之蛙。你時常焦慮,你時常說要努力!然而並沒有什麼卵用,你最終活成了乙個屌絲。不破不立,從今天開始,走上技術管理...