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