每位工程師都是從初入行的小白一枚逐漸成長(cháng)為獨當一面的高級工程師,那么本文我們就來(lái)看看,高級工程師的工作內容和責任邊界是什么?
屬于高級工程師的工作內容
下列工作在我看來(lái)主要是高級工程師的工作,而不像是經(jīng)理的工作。雖然管理人員肯定會(huì )承擔其中一些,尤其是創(chuàng )建新項目和將項目與業(yè)務(wù)優(yōu)先級相關(guān)聯(lián)等。
所有項目的工作歸根結底還是要靠技術(shù):幫助別人解決棘手的項目顯然是人為的互動(dòng),但通常,我們共同努力的問(wèn)題還是有關(guān)計算機的問(wèn)題?。ā叭绻覀兒?jiǎn)化設計的話(huà),也許可以早點(diǎn)做完工作!”)
-
寫(xiě)代碼。
-
代碼審查。
-
編寫(xiě)和審查設計文檔。我認為“審查設計文檔”與其他審查任務(wù)一樣,就是“讓別人看看設計,幫忙改進(jìn)設計”。
-
當團隊成員遇到困難時(shí)給予幫助。有時(shí)人們會(huì )被一個(gè)項目難倒,給予他們支持很重要!我認為這不是“神兵天降,將你的法術(shù)傳授給他人”,更像是“共同努力去理解他們試圖解決的問(wèn)題,看看三個(gè)臭皮匠能不能賽過(guò)一個(gè)諸葛亮”。這也意味著(zhù)你要與他們一起解決問(wèn)題,而不是替他們解決問(wèn)題。
-
保證項目的高質(zhì)量標準。對于不同的人來(lái)說(shuō),“質(zhì)量”意味著(zhù)不同的事情(對我的團隊來(lái)說(shuō),這意味著(zhù)可靠性/安全性/可用性)。通常我不贊同某人做出的決定時(shí),我就知道要么是因為我知道他們不知道的事情,要么是有什么事是他們知道而我不知道的!所以,不應該對人家說(shuō):“你錯了,應該這么這么做”,我會(huì )試著(zhù)提供一些他們不知道卻很重要的額外信息。而且我發(fā)現常常是我忽略了一些東西,實(shí)際上他們的決定是完全合理的!過(guò)去我偶爾會(huì )看到有些高級工程師為了強制執行質(zhì)量標準,大吼大叫并不斷重復他們的意見(jiàn),因為他們認為他們的意見(jiàn)是正確的,而我個(gè)人覺(jué)得這些方法并沒(méi)有用。
-
創(chuàng )建新項目。軟件工程團隊不是零和博弈!我認識的優(yōu)秀的工程師都不會(huì )將最有意思的工作留給自己,他們會(huì )創(chuàng )造新的有趣且重要的工作,并給他人機會(huì )讓他們承擔這些工作。例如,我們團隊中有人帶頭重寫(xiě)了我們的部署系統,結果非常成功,如今我們整個(gè)團隊都在研究新功能,在重寫(xiě)部署系統后做新功能就更加容易了!
-
計劃項目的工作。即整理與傳達正在進(jìn)行的項目的藍圖,并確保團隊成員可以理解你的計劃。
-
主動(dòng)溝通項目的風(fēng)險。這項工作的要點(diǎn)在于:及時(shí)發(fā)現項目進(jìn)行中的問(wèn)題,與其他工程師或經(jīng)理進(jìn)行溝通,并找出解決方案。
-
溝通是成功的必經(jīng)之路!
-
做有利于團隊或公司的副項目。我看到許多高級工程師偶爾會(huì )做一些小型影響力很高的項目(比如構建開(kāi)發(fā)工具/幫助設置策略等),最終可以幫助很多人更好地完成他們的工作。
-
了解項目與業(yè)務(wù)優(yōu)先級的關(guān)系。
-
決定何時(shí)停止做項目。弄清楚什么時(shí)候停止某項工作是非常困難的。
我把“寫(xiě)代碼”放在第一位,是因為我覺(jué)得大家很容易在不經(jīng)意間就忽略寫(xiě)代碼:)
有一件事我沒(méi)有提到,那就是“做估算”。我還不太擅長(cháng)做估算,所以我對此了解的不太多,但我認為將來(lái)一定要在這方面多花點(diǎn)時(shí)間。
如果你想一下子做好上面所有的事情,那么會(huì )覺(jué)得好多,而且會(huì )讓你倍感疲憊。我認為一般來(lái)說(shuō),找出其中一部分工作,然后告訴自己“現在我要專(zhuān)注地做好X Y Z,如果我同事嘗試做A B C的話(huà),我的腦袋會(huì )爆炸?!?/span>
不屬于高級工程師的工作內容
這部分有點(diǎn)棘手。
我不是說(shuō)這些不是高級工程師的工作,我也不是說(shuō)“我才不會(huì )幫助我的團隊創(chuàng )造一個(gè)良好的工作環(huán)境,這跟我有一毛錢(qián)關(guān)系嗎?”。我認識的大多數高級工程師都花了很多時(shí)間思考這些問(wèn)題,并且還做了很多研究。
我之所以認為有必要在此畫(huà)條界限,是因為我的同事都對團隊和公司有很強的歸屬感與責任感(他們通常都會(huì )說(shuō):“這是我們要做的工作是吧?那好,我來(lái)做吧! “)而且我認為讓大家主動(dòng)承擔需要完成的工作往往會(huì )導致他們不堪重負、過(guò)度勞累、無(wú)法在他們的核心工作中做出真正的技術(shù)貢獻。因此,如果針對我們的職位創(chuàng )建一些界限,那么在大家忙成一團的時(shí)候,更容易決定應該尋求怎樣的幫助。實(shí)際上你畫(huà)的這個(gè)界限取決于你和你的團隊:)
這些工作中的大多數都是經(jīng)理的工作。注意:管理人員的工作遠不止這里列出的事項(例如“創(chuàng )建新項目”),而在有些公司里,有些事情實(shí)際上可能是高級工程師的工作(例如sprint管理)。
-
確保每個(gè)團隊成員的工作得到認可;
-
確保以公平的方式分配工作;
-
確保團隊成員相處融洽;
-
建立團隊凝聚力;
-
與團隊中的每個(gè)人進(jìn)行一對一的談話(huà);
-
培訓新的管理人員,幫助他們了解他們的職責(盡管我認為實(shí)際上往往高級IC最終會(huì )承擔部分工作?)
-
承擔你沒(méi)有參與的項目的管理工作(在我們公司,這是領(lǐng)導項目的工程師的工作)
-
做產(chǎn)品經(jīng)理;
-
Sprint管理,將每個(gè)人的工作融入項目程碑,組織每周一次的團隊會(huì )議。
明確的責任邊界很重要
我曾遇到過(guò)一個(gè)有趣的狀況。我跟一名經(jīng)理談起我作為工程師,哪些任務(wù)不是我的工作,然后發(fā)現我們對這個(gè)問(wèn)題的期待完全不同!我們談了很久,現在這個(gè)問(wèn)題應該解決了,但它讓我認識到,一致的期待非常重要。
我開(kāi)始做工程師時(shí),我的工作很直接——寫(xiě)代碼,完成項目,就足夠了。我的經(jīng)理很清楚我的工作內容,并且會(huì )保證我的工作不會(huì )太復雜。但現在情況不一樣了!所以我認為,現在定義工作內容的責任更多在我自己:
-
我能做什么——即適合我的工作;
-
我想做什么——即我喜歡的,并且與我個(gè)人目標一致的工作;
-
什么對團隊或組織有價(jià)值。
至于工作的具體情況,每個(gè)人各不相同(并非每個(gè)人都有同樣的能力和興趣,例如我實(shí)際上不太擅長(cháng)代碼審查?。?,所以我覺(jué)得溝通期望就更重要了。
不要承諾你無(wú)法完成或不想做的工作
我認為,從長(cháng)期來(lái)看,拒絕我不能勝任的工作或者會(huì )讓我不愉快的工作是非常重要的!我發(fā)現,我似乎很容易同意或接受一堆我知道我不喜歡的工作(“哦,這對團隊有好處呀!”,或者“嗯……反正總得有人做!”)。雖然我有時(shí)會(huì )被迫接受一些不得不做的工作,但我覺(jué)得,讓團隊成員做合適的、喜歡的工作對于團隊的健康很有好處。
所以,我會(huì )接受不得不做的小任務(wù),但我覺(jué)得敢于說(shuō)出自己的心聲很重要的。 :) 比如說(shuō):“可以,我會(huì )花許多時(shí)間做這件我不擅長(cháng)或不喜歡的工作,但沒(méi)問(wèn)題?!?而且,如果必須“有人”做,那么可能意味著(zhù)我們需要雇傭或者培訓新人來(lái)填補這個(gè)空白 :)



