什么是“高級(jí)軟件工程師“,這個(gè)職位到底該做些什么,相信大家都有答案。在目前很多國(guó)內(nèi)軟件企業(yè)中,如果你是”高級(jí)軟件工程師“,那么從需求分析,設(shè)計(jì),開(kāi)發(fā),測(cè)試,甚至到客戶(hù)這一條龍都可能由一個(gè)人來(lái)負(fù)責(zé)。那么這個(gè)職位到底該做些什么呢?下面是我的認(rèn)識(shí)。
1,軟件開(kāi)發(fā)與測(cè)試
首先,軟件開(kāi)發(fā)是軟件工程師職責(zé)的基本組成部分,這點(diǎn)應(yīng)該沒(méi)有問(wèn)題。其次,此處的軟件測(cè)試可分為開(kāi)發(fā)前的驅(qū)動(dòng)測(cè)試,和開(kāi)發(fā)過(guò)程中的白盒測(cè)試。驅(qū)動(dòng)測(cè)試用于分析子系統(tǒng)/模塊內(nèi)部邏輯,用于在開(kāi)發(fā)之前暴露開(kāi)發(fā)過(guò)程中可能遇到的大部分問(wèn)題和對(duì)子系統(tǒng)/模塊進(jìn)行更進(jìn)一步的劃分;白盒測(cè)試是保證在項(xiàng)目交接到測(cè)試團(tuán)隊(duì)手中時(shí),能滿(mǎn)足基本的項(xiàng)目要求,即能夠進(jìn)行α測(cè)試。另外,驅(qū)動(dòng)測(cè)試因團(tuán)隊(duì)而異,并非必須,但個(gè)人更推薦這么做。
2,子系統(tǒng)/模塊分析設(shè)計(jì)
在軟件架構(gòu)師做完系統(tǒng)設(shè)計(jì),項(xiàng)目經(jīng)理進(jìn)行項(xiàng)目分工后,項(xiàng)目就正式進(jìn)入開(kāi)發(fā)環(huán)節(jié)。這時(shí)候每個(gè)軟件工程師會(huì)拿到自己負(fù)責(zé)的子系統(tǒng)/模塊,首先要做的就是進(jìn)行分析設(shè)計(jì),其次才是開(kāi)發(fā)。開(kāi)發(fā)前進(jìn)行分析設(shè)計(jì),便于從整體上對(duì)子系統(tǒng)進(jìn)行把握,提前隔子系統(tǒng)中的變化點(diǎn)和問(wèn)題,同時(shí)也可以對(duì)子系統(tǒng)進(jìn)行更詳細(xì)的劃分,用于制定個(gè)人的工作計(jì)劃,與項(xiàng)目經(jīng)理和軟件架構(gòu)師進(jìn)行具體的溝通。
在這點(diǎn)上,要及早認(rèn)識(shí)到并不是只有架構(gòu)師才需要進(jìn)行軟件設(shè)計(jì)的,軟件工程師一樣需要,且是必備技能。相信有很多人拿到自己的任務(wù)時(shí)只是跟項(xiàng)目經(jīng)理進(jìn)行簡(jiǎn)單的溝通,知道自己要做什么,就開(kāi)始悶頭寫(xiě)代碼了,這是非常不可取的。
3,撰寫(xiě)文檔
在進(jìn)行子系統(tǒng)和模塊設(shè)計(jì)的同時(shí),要撰寫(xiě)子系統(tǒng)設(shè)計(jì)說(shuō)明書(shū);在開(kāi)發(fā)過(guò)程中,要記錄技術(shù)要點(diǎn)和發(fā)現(xiàn)的問(wèn)題,同時(shí)如有需要,要修改子系統(tǒng)設(shè)計(jì)說(shuō)明書(shū);在白盒測(cè)試時(shí),要記錄每個(gè)Bug。以上這些文檔是為了方便以后進(jìn)行項(xiàng)目維護(hù),工作交接,問(wèn)題分析,個(gè)人總結(jié)等等。
4,定期主動(dòng)溝通
在項(xiàng)目開(kāi)發(fā)過(guò)程中,項(xiàng)目經(jīng)理需要和團(tuán)隊(duì)中的每一個(gè)人溝通任務(wù)進(jìn)度,其主要職責(zé)是從整體上把握和控制項(xiàng)目的進(jìn)度。那么作為團(tuán)隊(duì)一員的高級(jí)軟件工程師通常會(huì)負(fù)責(zé)項(xiàng)目中很重要的子系統(tǒng)/模塊,這些子系統(tǒng)/模塊往往能決定項(xiàng)目的成敗。因此定期主動(dòng)與項(xiàng)目經(jīng)理溝通解決遇到問(wèn)題,與架構(gòu)師和專(zhuān)家溝通解決技術(shù)難題就顯得非常重要了。另外,就對(duì)個(gè)人而言,定期主動(dòng)溝通也往往表現(xiàn)為個(gè)人的主動(dòng)積極性,對(duì)于個(gè)人長(zhǎng)遠(yuǎn)發(fā)展非常有益。
5,持續(xù)學(xué)習(xí)
也許有人會(huì)覺(jué)得學(xué)習(xí)應(yīng)該與職責(zé)無(wú)關(guān),狹義看來(lái)確實(shí)如此。然而,不斷學(xué)習(xí)新知識(shí),提高個(gè)人技能,于公司而言,能提升工作效率;于個(gè)人而言,益于職業(yè)發(fā)展。因此,工作之余,不管你職位如何,持續(xù)學(xué)習(xí)就顯得非常重要且必要。
6,帶新人
這點(diǎn)也許不是硬性要求,然而據(jù)說(shuō)國(guó)外有高手帶領(lǐng)新手這樣一種師徒習(xí)慣,我們也應(yīng)該學(xué)習(xí)并發(fā)揚(yáng)。通常情況下新人會(huì)與高級(jí)軟件工程師協(xié)同工作,因此帶新人一方面,帶領(lǐng)新人可以有重新審視自己知識(shí)的機(jī)會(huì);另一方面能夠讓新人更快入手,降低學(xué)習(xí)成本和提高工作效率;同時(shí)也能保持良好的人際關(guān)系。
以上是個(gè)人對(duì)高級(jí)軟件工程師職責(zé)范圍的認(rèn)識(shí),也許有些比較牽強(qiáng),然而就對(duì)職業(yè)發(fā)展而言,要想做好高級(jí)軟件工程師,上面幾條是平時(shí)工作中必須要做的。
-
軟件工程師
+關(guān)注
關(guān)注
8文章
218瀏覽量
21135
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論