如何定义和区分高级软件开发工程师?
原文地址
看來,我de實(shí)力已經(jīng)不只是高級(jí)的啦~
在軟件開發(fā)領(lǐng)域,高級(jí)開發(fā)工程師通常是指那些編寫代碼超過3年的人。這些人可能會(huì)被放到領(lǐng)導(dǎo)的位置,但經(jīng)常會(huì)產(chǎn)生非常糟糕的結(jié)果。Matt Briggs是一名高級(jí)開發(fā)工程師兼Scrum管理員。他認(rèn)為,單純使用年限來劃分開發(fā)人員存在問題,兩個(gè)同樣具有10年開發(fā)經(jīng)驗(yàn)的開發(fā)人員可能大不相同。近日,他發(fā)表了一篇博文,根據(jù)開發(fā)者所能發(fā)揮的作用劃分軟件開發(fā)工程師的成長(zhǎng)階段。
初級(jí)開發(fā)工程師
初級(jí)開發(fā)工程師通常是指那些剛剛結(jié)束學(xué)生生涯的開發(fā)者。他們以為自己什么都懂,但是面臨問題時(shí)卻又一籌莫展。他們不熟悉用到的工具,也不了解當(dāng)前代碼庫(kù)。因此,他們需要監(jiān)督,需要大量的培訓(xùn)和指導(dǎo),否則可能幾年過去了,他們?nèi)匀皇浅跫?jí)開發(fā)工程師。
一名優(yōu)秀的初級(jí)開發(fā)工程師應(yīng)該能夠快速完成他人分配的工作,并且保證質(zhì)量。
中級(jí)開發(fā)工程師
中級(jí)開發(fā)工程師不像初級(jí)開發(fā)工程師那樣只專注于代碼,他們開始通過試驗(yàn)、文獻(xiàn)和與其他程序員的討論尋找構(gòu)建系統(tǒng)的正確方式,也就是說他們會(huì)學(xué)習(xí)軟件構(gòu)建理論。
一名優(yōu)秀的中級(jí)開發(fā)工程師不需要監(jiān)督。他們可以自己提出代碼設(shè)計(jì)的問題,并在設(shè)計(jì)討論中發(fā)揮重要的作用。他們也是開發(fā)團(tuán)隊(duì)的主力。但是,他們?cè)谧裱?/strong>設(shè)計(jì)模式”和“領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)”等理論方法設(shè)計(jì)系統(tǒng)時(shí),可能會(huì)出現(xiàn)過度設(shè)計(jì)的情況。因此,有必要對(duì)他們進(jìn)行進(jìn)一步的指導(dǎo)和更高層次的監(jiān)督。
Briggs 指出,絕大多數(shù)的高級(jí)軟件開發(fā)工程師和團(tuán)隊(duì)負(fù)責(zé)人實(shí)際上都是中級(jí)開發(fā)工程師,只是大部分人都沒有意識(shí)到這一點(diǎn)。
高級(jí)開發(fā)工程師
高級(jí)開發(fā)工程師拋棄了支配中級(jí)開發(fā)工程師的復(fù)雜性,追求簡(jiǎn)單至上。他們不再按照知識(shí)劃分開發(fā)者,而是了解每個(gè)人的優(yōu)勢(shì)和不足。在理論運(yùn)用方面,他們重視“上下文”,而不是一味地追求“正確方式”。他們知道,構(gòu)建優(yōu)秀的軟件,唯一的方式是改造理論方法,適應(yīng)客戶、代碼庫(kù)、團(tuán)隊(duì)、工具和組織的需求,在設(shè)計(jì)模式、庫(kù)、框架和流程之間尋找平衡。
高級(jí)開發(fā)工程師更多地為別人考慮,了解組織和客戶如何工作,知道他們的價(jià)值所在。他們從來不會(huì)說“這不是我的工作”。他們的工作是提供問題解決方案,總是考慮他們的工作會(huì)為組織和客戶帶來什么價(jià)值,而不是他們會(huì)有多大的工作量。
中級(jí)開發(fā)工程師會(huì)鉆研一些令人厭煩的工作,但高級(jí)開發(fā)工程師會(huì)退一步,看看是什么導(dǎo)致了這樣的工作。他們會(huì)評(píng)估修復(fù)問題根本原因的成本,從而決定是直接修復(fù),還是先讓系統(tǒng)運(yùn)行起來,后續(xù)再修復(fù)。
高級(jí)開發(fā)工程師清楚地知道,他們的主要作用是讓團(tuán)隊(duì)變得更好。同時(shí),他們也深知,領(lǐng)導(dǎo)不是權(quán)力,而是授權(quán),不是命令,而是服務(wù)。
Briggs 指出,如果團(tuán)隊(duì)沒有高級(jí)開發(fā)工程師擔(dān)任領(lǐng)導(dǎo)角色,那么項(xiàng)目注定要失敗。高級(jí)開發(fā)工程師是唯一有資格選擇技術(shù)和平臺(tái)的人,因此,從項(xiàng)目開始的第一天起就應(yīng)該有一個(gè)這樣的人。
Briggs 承認(rèn),這種劃分方式過分簡(jiǎn)單,卻也可以提供一些有用的信息。他建議,企業(yè)在招聘時(shí)要考慮團(tuán)隊(duì)和組織的人才構(gòu)成。
總結(jié)
以上是生活随笔為你收集整理的如何定义和区分高级软件开发工程师?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: error: field 'b' has
- 下一篇: iOS 获取appstore 版本