超十年研發老將:優秀的程式設計師不能只懂技術

語言: CN / TW / HK

妙談嘉賓 | LigaAI 聯合創始人兼CTO 張思

內容整理 | LigaAI


從賦能發力、撬動槓桿到降本增效、去肥增瘦,網際網路行業正在經歷前所未有的風波與挑戰。全球範圍的「裁員潮」席捲而來,行業去泡沫化和主業務收攏似乎正在為網際網路「全員危機」拉開序幕。

外部環境呈現暫時回撥,程式設計師應如何維持自身的上升趨勢,持續構建競爭壁壘?技術工程師成長必經的分岔路——技術專家和技術管理,又該如何抉擇?

本期妙談嘉賓,LigaAI 聯合創始人兼CTO 張思,將從自身職業成長經歷出發,全方位分享程式設計師成長的「破」與「立」。

1. 經歷分享:一個普通程式設計師超十年的成長變化

2. 能力模型:如何成為優秀的技術專家/技術管理

3. 可複製經驗:程式設計師快速提升的三個建議

一、程式設計師到CTO,是不斷務虛的過程

從程式設計師入行到現在,已經過去十餘年的時間。我個人的職業生涯大致可分為四個階段:程式設計師、架構師、技術管理和技術負責人(CTO)。

剛畢業做程式設計師的時候,碰到問題的第一反應是從技術層面考慮可行的解決方案,思考如何通過程式碼解決問題。

架構師階段就開始需要從整體層面考慮更長遠的中長期方案。寫程式碼的時間減少,思考的時間變多:與其他技術/業務團隊打交道,平衡各方利益關係,思考如何在企業內推行新的架構。也是在這個階段,技術廣度、溝通能力得到了很大的提升。

技術管理/研發總監階段,真正對技術團隊負責。新業務來臨時,需要從資源管理的角度考慮「怎麼做」:需求是否合理、團隊能否消化等等,但最大挑戰還是克服對程式碼的控制慾

早期管理時,總會不由自主地幫團隊完成任務,接手核心的程式碼或者工作,但團隊的成長和培養需要試錯成本。更好的做法是培養團隊骨幹,授權他們衝到挑戰最前線。技術管理一定要強迫自己改掉「事事衝到第一線」的衝動,給團隊更多發揮和成長空間

做技術負責人/CTO時則站在更大的層面考慮「業務要不要做」並對業務和團隊負責。決策決定的考量納入了更多全域性的、長遠的因素,如業務對公司的幫助、與公司戰略匹配情況、市場競爭分析等;團隊管理上會更側重團隊成長和文化建設,不偏不倚地將業務的蛋糕做大。

總的看來,每個階段的成長都是不斷務虛的過程。 從純粹、單一的技術視角開始,逐漸融合更多基於業務的思考、團隊搭建和文化構建等等更虛的東西。

二、技術專家是衝鋒小隊,技術管理是教練

程式設計師的成長路徑通常分為技術專家和技術管理兩種。簡單理解,技術專家就是戰場上的一個衝鋒小隊:單體爆發能力強、有衝勁、能夠吸引同類一起衝鋒陷陣。他們的實力強勁,可以摧毀很多堅固的堡壘,殲滅精銳小隊。

技術管理則像球隊中的教練。 他不再衝在一線奮勇作戰,而是賦能團隊,因材施教,讓團隊發揮出最大的作用。

技術管理的職責包括平日練兵——提升團隊的能力、根據成員特點將其放到正確的位置上,並且有意識地提升每個人的特色和能力特長;同時要為團隊掃清障礙,提供合適的內部和外部資源,讓團隊有更合適的武器和工具,進而讓團隊發揮全部的力量。

01 技術專家的能力模型:專業深耕 業務理解 開放包容

技術專家首先肯定需要有足夠優秀的專業能力,需要在技術領域深耕,持續地提升技術實力。

其次是要有業務理解能力。技術專家要理解業務、懂業務,而不能只是做技術,而且理解業務和理解需求還不一樣。業務是你/公司正在做的產品或者提供的服務,不是一個單點的需求。理解業務的本質是要理解使用者在實際使用中,如何通過產品完成一系列複雜的動作,實現使用目標。

一個優秀的技術專家必須要從使用者實際使用的角度理解整個業務邏輯,從產品出發設計更好的解決方案。技術專家需要將需求背後更深層的東西理解充分,否則就會對設計方案產生影響。

最後,技術專家要有開放的心態,包含三層意思:

第一,對內保持開放。 技術專家要接納內部的聲音,其他成員總能接觸到你不熟悉的領域知識。

第二,對新興技術保持開放。 技術專家要避免領域深耕帶來的「擁擠效應」,更主動地接受新鮮的技術或專案,不要排斥利於問題解決的新東西。

第三,對挑戰和壓力保持開放。 被予以瓶頸突破和困境破局等重任時,要勇於承擔挑戰和責任,主動地想辦法解決問題,更開放地接納和化解重任之下的壓力。

02 技術管理的硬實力:技術實力和業務理解力

技術管理要用掌握的技術知識和能力,提高團隊效率,完成目標併為結果負責。雖然研發團隊並不要求技術管理要具備非常優秀的技術深度,但也不能完全不懂技術,至少要有能力評估技術方案的可行性或指導團隊解決技術難題。

現在之所以習慣提拔技術實力前沿的工程師為技術管理,是因為大家反感「外行指導內行」。在實際中,對技術瞭解不夠深入的技術管理,應該主動授權團隊中的技術骨幹提供專業意見,以彌補自身在技術層面的不足,更好地指導和帶領團隊

對於技術 Leader 和 C-level 而言,他們的硬實力主要來自對業務的充分理解:綜合考量外部環境、市場環境、競爭分析、內部協作等等,理順整個產品的商業邏輯。對技術管理者而言,業務理解力是不可或缺的硬實力之一

03 技術管理的軟實力:廣度 前瞻 建設 識人 善談 責任

技術管理的軟實力本質上就是團隊的領導力,可以細分成技術領導力和管理領導力兩種。

· 技術領導力

技術領導力是通過技術權威產生的影響力贏得的成員支援與信任。出於各種原因和牽絆,技術管理的技術權威會隨著程式碼能力的下降而降低,而彌補技術權威缺失有兩種辦法:

第一,用技術廣度彌補技術深度。 技術實力包含技術深度和技術廣度,如果無法持續縱深程式碼能力,那麼橫向拓展技術的廣度,學習和掌握更多的領域知識和最新技術,也能在團隊遇到困難時提供可行的解決辦法,建立領導權威。

第二,培養技術前瞻性。 技術管理要對決策負責,對團隊前進方向負責。提高技術前瞻性,為團隊提供正確的方向指導,儘可能降低試錯成本,也能讓團隊信服。

· 管理領導力

管理領導力就是常規意義上的團隊領導力,前面提到的「為團隊提供合適的支援」、「因材施教地實施人才培養」都是建立管理領導力的方式。管理領導力還可以來自以下四個方面。

第一,體系搭建能力。 技術管理要有團隊體系搭建的能力,能夠根據業務的訴求,做出正確的排兵佈陣,更系統地完成組織規劃與建設。

第二,招聘能力。 為團隊選擇最合適的成員,更高效地完成目標也是技術管理的重要職責。管理者總是花很多時間找人、看人,因此,技術管理一定要鍛鍊識別千里馬的「火眼金睛」。

第三,溝通能力。 與技術問題不同,涉及人的問題往往更復雜。技術管理要能夠及時識別成員的情緒波動、團隊的異常狀態,做出適當的干預和調和。良好的溝通能力會加速緊密團隊的建成。

第四,主動承擔。 技術管理一定要主動承擔風險和失敗的責任,頂住來自上層或業務的壓力,將功勞與獎賞分給成員,將壓力和責任扛起來,替團隊成員負重前行。

三、程式設計師的能力培養:清晰表達 做事靠譜 自我營銷

無論深耕成為技術專家,還是多維發展成為技術管理,程式設計師都要不斷地強化技術實力;同時,建議儘早地培養以下能力,構築競爭壁壘以增強職場優勢。

首先,提高表達能力。清晰地表達訴求、提出問題,讓別人快速掌握並理解你的意圖。

其次,增強責任意識:工作要負責,做事要靠譜,承諾要做到。尤其是工作上不清楚的地方,一定要主動地開口詢問清楚,不要擔心叨擾別人,也不要放不下面子提問。

最後,鍛鍊自我營銷能力。建立內部影響力就是在提升領導力,因此要主動地在內部營銷自己,讓更多的成員熟悉你。將心得、總結、技術難題解答等製成公眾號或個人部落格,大膽地展示你的思考,不要擔心內容深度不夠,持之以恆,技術影響力就會慢慢建立起來;內部的公開分享也能讓團隊更快地認識你。

最重要的一點,不要吝嗇提供幫助。多多地幫助別人解決問題,積極地尋找鍛鍊機會,與成員建立起緊密的聯絡;各種難題的解答也會反過來充實你的知識體系,幫助你快速實現能力提升。


任正非在近日的一篇文章中寫道:“全球經濟持續衰退,加上疫情影響,消費能力會大幅下降,對我們(華為)產生不僅是供應的壓力,還有市場的壓力。2023年甚至到2025年,一定要把活下來作為最主要的綱領。活下來、有質量地活下來。”

外部環境總是起起伏伏,但不論前路如何,我們總要堅持做「正確的事」,將正確做到極致;持空杯心態,追逐最好的自己。

瞭解更多敏捷開發、專案管理、行業動態等訊息,關注我們 LigaAI@oschina 或點選LigaAI - 新一代智慧研發協作平臺,線上申請體驗我們的產品。