「分享」做好技術負責人的4個關鍵特質

檢視原文關注“八戒技術團隊”,閱讀更多技術乾貨

檢視原文:【分享】做好技術負責人的4個關鍵特質

作者簡介

豬八戒網後端技術委員成員&八戒科技服務技術負責人,中國商業聯合會網際網路協會智庫顧問、國家軟考高階系統架構師、國家軟考高階系統分析師、TOGAF企業架構認證、國家軟考系統整合專案經理、PMP專案管理專家、ORACLE資料庫管理認證專家、軟體碩士,10 多年的網際網路行業從業經驗, 精通中介軟體底層原理、微服務架構,設計過豬八戒88節科技服務秒殺架構,對高可用架構、高效能架構都有深入研究。

01

第一項特質:具備宏觀認知思維

宏觀認知思維是指主動去了解一些整體全域性的政治因素(Political)、經濟因素(Economic)、社會文化因素(Sociocultural)、技術因素(Technological)、環境因素(Environmental)和法律因素(Legal )等,簡稱PESTEL。

這些看似與我們離得比較遠,實際上與我們的職場生活息息相關。比如網際網路 App 的使用者隱私、經營違規、壟斷問題等,作為一個技術負責人,如果你不瞭解這些,一旦在某一些決策上出現錯誤,不僅給企業帶來各種麻煩,甚至還會造成很大的經濟損失。

如果能夠對這些外部宏觀因素有一個清晰的認識和了解,就可以規避很多沒必要的風險,甚至提前佈局做好技術決策,把危機轉變成機遇。

那我們平時如何去提升自己的宏觀認知思維呢?多思考業務。

一是收集相關資料。

比如收集國家總理每年的政府報告、企業當地的省委書記的政府工作報告,著重關注分析與你公司、行業相關的政策、通知等資訊。

二是政策環境分析。

根據收集的政府報告、政策,從宏觀上分析是否有國家層面的大政策需求。

三是行業環境分析。

研究行業上下游生態、市場規模大小,競爭對手相關情況等。

四是公司現狀分析。

分析公司商業價值的產生路徑、交付保障體系、業務增長模式等。

02

第二項特質:具備成事的能力和心態

我這裡分享一些我自己的經驗,不一定適合每個技術負責人,兵無常勢、水無常行,需要各位根據自己當下環境,因地制宜。

經驗一 提能力

聚焦目標。

戰略/戰術目標上要懂得聚焦和放棄。優先順序處理,要以價值為導向。

管好團隊。

建立自驅式的團隊文化,讓團隊持續迭代和成長。

知人善用。

學會授權、賞罰分明。還有關鍵一點,具備同理心。

做好計劃。

俗話說兵馬未動糧草先行,謀而後動,先做好計劃再行動。

全程風控。

全程具備風險意識,做好風險管理,制定風險應對措施。

緊抓細節

。持續跟進進度,細節是魔鬼。

善於溝通。

向上溝通,要建立全域性思維;橫向溝通,要有共贏心態;向下溝通,要學會建立技術影響力

經驗二 修心態

氣定神閒。

遇到任何事,不管大事小事,都要不急不躁,氣定神閒的思考清楚,然後一步一步解決。

雅量。

謙卑,凡事皆能忍,堅信放過別人就是放過自己,不要把自己時間浪費在這些爭強奪勝之上。一些人遇事一激就懟,甚至滿口髒話,還有一些人,你一激他還滿臉笑嘻嘻給你敬酒,你覺得這兩種人誰能成事?

感恩與大氣。

學會感恩,感恩遇到的每個人,感恩給你幫助的,也感恩給你痛苦的,因為他們都是在幫你成長。大氣不是說要花很多錢什麼的,而是一種很強的利他思維,願意與別人共贏。

03

第三項特質:深厚的技術功底

在技術這個領域,無論在什麼段位,技術永遠是最核心的能力,只是不同段位,有不同的側重而已。沒有深厚的技術功底,猶如浮沙之上築高臺。在技術這個領域,我還真看過不少因為技術底子不穩而翻車的所謂ppt高手。

技術選型。比如微服務註冊中心選型,你不知道CAP原則,你不知道Eureka、Zookeeper是CP還是AP,你不知道註冊中心的本質是要做到AP,你怎麼選型?

技術方案可控。如果你不懂常見的中介軟體底層原理,常見框架的原始碼,你怎麼確保你設計的技術方案上是可控的?比如你方案裡選擇了SpringCloud Eureka來做註冊中心,叢集同步時效性如何?Feign+Ribbo+Euraka的服務發現時效和故障感知時效如何?如果你不清楚這些底層細節,你怎麼保障你係統的技術方案是可控的?

那作為一名技術負責人如何提升技術的深度?

一要深挖底層原理、掌握本質。

其實學技術無非就是學技術語言、學演算法、學中介軟體、學框架、學架構。但大道至簡, 每個技術一般都會有一些通用底層機制,比如Reactor模式、零複製機制、IO多路複用機制、日誌預寫機制、檔案順序讀寫機制、pipeline設計模式、動態代理。你掌握這些底層機制後,就會發現nginx 、redis、netty的網路通訊都是基於reactor模式,訊息中介軟體基本都用到了零複製技術、系統快取機制等 ,都是有共性的。

二要打好基礎內功

。如果你學的是Java,你會發現研究到底層後,JVM是c++寫的,IO多路複用機制、零複製的MMAP都會涉及到作業系統原理,還有一些中介軟體是c編寫的,比如nginx、redis。你不懂作業系統,不懂底層語言,技術對你來說,始終就是黑盒子。除此之外還有資料結構、演算法,當規模變大的時候,這些都是很重要的。

三要自研中介軟體實踐。

最能鍛鍊技術能力的是自己嘗試去造一些輪子,並運用到生產中,在產生商業價值的同時,把自己掌握的知識真正拉通。比如設計一個RPC框架。RPC是一個遠端過程呼叫框架,必然會涉及網路通訊。網路通訊,必然又會涉及到通訊協議、序列化和反序列化、網路IO模型。

為什麼要有通訊協議?因為網路傳輸底層是基於tcp傳輸的,傳輸的是二進位制流,是沒有邊界的,怎麼去判定一次完整的訊息,得有協議來約定。

為什麼要序列化和反序列化?因為我們呼叫引數往往是物件,而網路傳輸的都是位元組流,所以必須要把物件轉成位元組流,反過來,服務端接收到後,需要反序列化成物件,來處理。

為什麼要思考網路IO模型?你要考慮效能因素。服務端接收客戶端連線,讀取客戶端資訊,到底同步還是非同步?是阻塞還是非阻塞?一般常見的是bio和Nio, 延伸點到reactor的單執行緒、多執行緒、主從三種模型。然後多路複用機制,底層實現select、poll、 epoll區別,然後還有零複製機制等等。

再深入設計下去,你就要考慮分散式架構了,RPC框架如何支撐分散式架構?你得思考叢集機制、服務註冊、服務動態發現、心跳保活(續約)、異常剔除、下線等,還有多個服務負責均衡策略怎麼設計?服務調用出錯後怎麼設計?服務呼叫超時了怎麼設計?

透過一個RPC框架設計和研發,你會發現拉通了網路、作業系統、多執行緒、分散式架構、服務治理等一系列核心技術。

04

第四項特質:具備技術前瞻洞察力

技術負責人要學會了解一些前沿的技術趨勢和架構,不要只沉迷於當下,要能洞察到未來的技術趨勢。

比如微服務架構趨勢,你要了解DDD領域驅動設計、Springcloud Alibaba等。

比如大規模下的分散式架構趨勢,你需要了解同城雙活、兩地三中心、單元化架構設計等。

比如雲原生趨勢,你需要了解Docker、Kubernetes、Serverless 、ServiceMesh服務網格架構等。

比如平臺安全生產質量保障趨勢,你需要了解全鏈路壓測、混沌工程等。

比如數字化趨勢,你需要了解低程式碼平臺。

比如新基建趨勢,你需要了解人工智慧、5G、物聯網等。

在研究這些新趨勢的同時,不要浮於表面,只是誇誇其談一些概念,而是要結合自己當前業務,仰望星空的同時,一定要腳踏實地。

————-歡迎留言,共同探索成為更好的技術負責人~————-