自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

首席工程師究竟是怎樣的存在?

譯文 精選
開發(fā)
首席軟件工程師,究竟是怎樣的存在?有哪些核心的職責(zé)呢?

編譯 | 云昭

作者 | Roberto Gambuzzi

審校 | Ethan

什么是“首席軟件工程師”?許多公司給出的定義都有所不同。圈內(nèi)一些人將之稱作“員工工程師”( Staff Engineers);而在其他一些公司,他們是眾人擁戴的團(tuán)隊(duì)領(lǐng)導(dǎo)者,還有一些接觸不多的朋友,將“主管”(Lead)和“首席”(Principal)混為一談。那么,首席軟件工程師,究竟是怎樣的存在?有哪些核心的職責(zé)呢?

Roberto Gambuzzi,目前一直在擔(dān)任首席工程師的職務(wù),同時也是Magento認(rèn)證開發(fā)者(Magento,一套專業(yè)開源的PHP電子商務(wù)系統(tǒng))。自1997年開始,Roberto就成為了一名程序員,在長達(dá)25年的時間里,他曾在AWS、谷歌等幾家巨頭公司內(nèi)屢次擔(dān)任首席軟件工程師的角色。

不得不說,Roberto是穩(wěn)穩(wěn)的第一代程序員了,在各科技行業(yè)給出的定義非常不一致的情況下,他是如何看待這一角色的呢?Roberto結(jié)合自己的實(shí)際經(jīng)歷歸納出了6個用以定義該崗位的關(guān)鍵概念。

個人貢獻(xiàn)者(IC):編碼圈的扛把子 

很多人認(rèn)為,職位一旦掛上“首席”就意味著這個角色需要參加各種大大小小的會議。但首席軟件工程師并不是這樣子的。實(shí)際上,需要他們參加的會議并不多。首席工程師也是工程師,編碼依舊是“天職”。他們依然需要與代碼打交道:進(jìn)行系統(tǒng)設(shè)計,修復(fù)bug,優(yōu)化數(shù)據(jù)庫等等。在代碼世界里,他們要探索其他程序員害怕去的地方。

他們要處理各種疑難雜癥:進(jìn)行繁瑣的外部依賴版本升級,關(guān)注測試覆蓋率,解決外部庫和內(nèi)部代碼的安全問題;他們審查其他開發(fā)人員的代碼,并且通常會將他們挨個惹惱一遍:在代碼的關(guān)鍵部分要求更多的日志、更多的指標(biāo)、更好的錯誤處理、更好的算法。最氣人的是,他們知道什么時候可以不那么嚴(yán)格,去降低這些限制。并非所有軟件功能都具有同等的重要性,Roberto在這里舉了一個例子。在電子商務(wù)中,必須始終有效的功能包括:查看產(chǎn)品、添加到購物車、支付購物車。其他的諸如:建議、歷史訂單、發(fā)貨費(fèi)預(yù)覽、營銷電子郵件等等,相較而言就沒那么重要了。因此,這些模塊的程序,一般都會出錯。當(dāng)然,但無論如何,這些Bug都必須盡快修復(fù)。

不盲從:為對的任務(wù)選對的技術(shù) 

他們懂得很多技術(shù),可以為真正值得展開的任務(wù)選擇正確的技術(shù)?!笆紫碑?dāng)然需要“博學(xué)”,這一點(diǎn)毋庸置疑,也只有做到技術(shù)上的“博學(xué)”才會讓這個角色有“固執(zhí)己見”的底氣。他們必須知道語言、數(shù)據(jù)存儲和其他粘合技術(shù)之間的差異。另外,首席工程師絕不能盲目追求炒作,必須深入了解背后的特性與原理,不能浮于表面。例如,Postgresql數(shù)據(jù)庫仍然是解決大多數(shù)問題的最佳方式,而將數(shù)據(jù)保存在S3上并使用AWS Athena可以解決其他問題;Java在許多場景下都能有效的解決問題,Go往往擅長的是解決其他問題,同樣,Rust很快,但構(gòu)建時間很痛苦;Python可以用于請求密集型API嗎?是的,如果任務(wù)不是CPU密集型的。如果想成為首席軟件工程師,隨時更新自己是常態(tài),不要追隨炒作。切忌把當(dāng)下流行語掛嘴邊,卻不知道自己到底在說什么。

輕輕推:更新公司的技術(shù)棧 

首席軟件工程師必須不斷突破公司現(xiàn)有技術(shù)菜單的界限,但要輕輕推。當(dāng)然,一家公司必須始終對變化持開放態(tài)度。因而首席工程師被受任之際,往往會給予更新公司技術(shù)棧的重任。

在推廣新技術(shù)時,一定要尊重之前遺留的歷史。一家公司選擇技術(shù)背后有很多原因,要推動變化,就需要公司內(nèi)部的“政治資本”——

  • 對于那些通過內(nèi)部晉升而來的人來說,這種資本已經(jīng)存在,因?yàn)樗麄円呀?jīng)在公司內(nèi)花費(fèi)了大量時間在相關(guān)方建立關(guān)系。
  • 而對于直接雇傭的情況,你就需要一些時間來影響“現(xiàn)狀”,因此,首席工程師也需要良好的溝通技巧。

這里之所以說是“溝通技巧”而不是“軟技能”,是因?yàn)樵赗oberto看來,“軟技能”這個詞的明面含義會讓人覺得:這些技能很弱,但事實(shí)并非如此。對于軟件開發(fā)人員來說,他們可能更擅長的是與機(jī)器交互,而不是跟人“斗智斗勇”。同時,首席工程師需要提出新的想法。整個過程可能會有抵制,這是關(guān)乎人性、意料之中的事情。要推廣新技術(shù),就要學(xué)會用數(shù)字和指標(biāo)來說話。如果你能證明從Java遷移到Go,會讓AWS的賬單成本降低為十分之一,那老板當(dāng)然樂于接納Go的方案。

影響力:跨團(tuán)隊(duì)輻射業(yè)務(wù) 

“高級(Senior)”和“首席(Principal)”有沒有明顯的分界線?答案很清楚,那就是影響范圍的大小。首席軟件工程師必須跨越多個團(tuán)隊(duì)。他們從不同的角度了解公司的業(yè)務(wù)。達(dá)到這個水平需要時間。

首席工程師可以被分配到一個團(tuán)隊(duì),但也可以在團(tuán)隊(duì)之間跳轉(zhuǎn),每次都從事不同的項(xiàng)目。參與各種項(xiàng)目,更多的是個人/公司的決定。在大公司(如亞馬遜AWS),首席工程師的影響范圍可以是至少50名工程師,較小型的公司可能會少一些。那么,一家小公司需要首席工程師嗎?對于一家小公司來說,首席技術(shù)官和首席工程師通常是同一個人。如果首席技術(shù)官不夠熟練,則需要首席工程師,但解決問題的范圍會更小一些。

教習(xí)官:非技術(shù)人指導(dǎo)也講究

大多數(shù)時候,指導(dǎo)開發(fā)人員都很有趣。他們想要學(xué)習(xí),共同點(diǎn)是幫助人與人之間的信息傳遞。但并非所有參與軟件開發(fā)的人都是軟件工程師。產(chǎn)品經(jīng)理、用戶體驗(yàn)設(shè)計師等等也在那里。首席工程師必須用更簡單的術(shù)語解釋,不要深入到技術(shù)實(shí)現(xiàn)中,解釋公司使用的技術(shù)的局限性,可以做什么來改進(jìn),以及技術(shù)決策會給公司帶來多大的成本。不要使用流行語或首字母縮略詞。比如,PM有時會要求無限量地保留用戶數(shù)據(jù),以在網(wǎng)站上獲得更快的用戶體驗(yàn),但所有這一切都有成本。首席工程師必須能夠解釋所有這些,并幫助尋找權(quán)衡。

高產(chǎn)高效當(dāng)先

首席工程師不是經(jīng)理。他們無須進(jìn)行冗長的匯報。讓其他程序員更happy的工作,也并非這一角色的職責(zé)。首席工程師的作用在于令開發(fā)人員高效、高產(chǎn)出地工作,而不是像經(jīng)理那樣使用組織技術(shù)去改善公司內(nèi)部的開發(fā)體驗(yàn)。一條需要三天才能運(yùn)行的管道,首席工程師將努力使其在30分鐘內(nèi)運(yùn)行??赡苓@一結(jié)果,會讓每個人都更開心。但首席工程師不會處理其他類型的問題,這些問題通常是經(jīng)理的問題,如績效、晉升、個人問題…

晉升首席軟件工程師是好事嗎 

升職總是好的,每個人都喜歡更高的薪酬和Title。選擇了首席工程師,就意味著:雖然你將會有更多的會議和更少的時間來編寫代碼,但是你的代碼會產(chǎn)生更大的影響。如果你決定挑戰(zhàn)這個角色,需要考慮一下問題:首先,在這個級別獲得晉升或聘用是不同的?;氐健坝绊懥Α钡脑掝},作為新員工加入這一級別的公司具有挑戰(zhàn)性,因?yàn)橥隆⒔?jīng)理和整個公司都希望看到這種影響力。但作為一名新加入的成員,你需要適應(yīng)公司的標(biāo)準(zhǔn)和技術(shù)。其次,稱謂的變化無需太過計較。在目前的公司中被稱為“高級”(Senior)的人可以成為其他一些公司的“負(fù)責(zé)人”(Principal),反過來也是這樣。所以要注意這一點(diǎn)。工資可以很好地反映工作水平。如果一家公司給你提供一個首席軟件工程師的職位,其基本工資與你目前的高級職位相同……那么這家公司可能是一家小公司。你必須只為這個角色接受這份工作嗎?答案是否定的。

在Roberto看來,工作是為了金錢或經(jīng)驗(yàn),而不是為了頭銜。如果在另一家公司以同樣的薪水成為首席軟件工程師可以教會你一些東西,那就去做吧。僅僅追求“首席”的頭銜而去,那就得不償失了。最后,切記:“權(quán)力越大,責(zé)任越大”。

總結(jié) 

“首席”是一個自帶光環(huán)的字眼,技術(shù)圈也不例外。從“高級”、“資深”到“主管”、“經(jīng)理”、“負(fù)責(zé)人”、“CTO”等等,開發(fā)人員的職業(yè)發(fā)展終歸繞不開這些,P崗、M崗的選擇這里不再展開,但如果你選擇在技術(shù)崗位上縱深發(fā)展,那么首席軟件工程師,又何嘗不是一種非常契合的崗位!代碼世界的魅力需要有人帶頭推動,既不像CTO那樣更側(cè)重業(yè)務(wù)的視野去考慮全局,又不會深深陷入某個項(xiàng)目團(tuán)隊(duì)重復(fù)造輪子,技術(shù)原地踏步,這樣對“首席工程師”的描述可能會有些失真,但對于熱衷于推動新技術(shù)的開發(fā)者而言,將變得非常有意義!

參考資料:https://blog.hulacorn.com/2022/06/02/what-is-a-principal-engineer/

責(zé)任編輯:薛彥澤 來源: 51CTO
相關(guān)推薦

2019-04-26 13:55:02

Istio微服務(wù)架構(gòu)

2019-07-22 15:29:53

JavaScriptGitHub語言

2019-06-04 14:15:08

JavaScript V8前端

2011-02-16 16:13:40

Debian

2011-02-28 09:51:43

內(nèi)省

2018-07-05 16:15:26

緩存數(shù)據(jù)cache miss

2010-08-24 09:19:59

2020-06-11 09:18:34

動靜分離架構(gòu)架構(gòu)設(shè)計開發(fā)

2021-02-19 20:38:01

互聯(lián)網(wǎng)衛(wèi)星系統(tǒng)

2022-06-13 09:51:35

UWB超寬帶無線載波通信技術(shù)

2011-08-04 13:24:28

IT運(yùn)維

2012-05-28 22:49:50

PureView

2016-06-17 12:31:10

Spark SQL數(shù)據(jù)處理Spark

2015-09-29 09:47:14

2023-12-26 01:24:45

Jedis連接池參數(shù)

2018-09-10 13:47:21

數(shù)據(jù)科學(xué)統(tǒng)計學(xué)決策

2019-05-27 15:30:44

Node.jsJavaScript前端

2015-08-26 09:54:19

物聯(lián)網(wǎng)

2015-12-14 15:34:35

開源投資創(chuàng)業(yè)

2019-10-21 13:58:22

爬蟲互聯(lián)網(wǎng)程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號