溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

現(xiàn)代軟件工程講義 2 工程師的能力評(píng)估和發(fā)展

發(fā)布時(shí)間:2020-05-04 19:45:15 來(lái)源:網(wǎng)絡(luò) 閱讀:199 作者:鄒欣 欄目:軟件技術(shù)

Advanced Software Engineering  現(xiàn)代軟件工程  講義

軟件工程師的能力評(píng)估和職業(yè)發(fā)展

 

介紹:  個(gè)人軟件流程,  職業(yè)發(fā)展, 個(gè)人績(jī)效的衡量和提高軟件開(kāi)發(fā)是科學(xué)工程手藝或是藝術(shù)? 

我們剛講了軟件工程它包括了什么呢?

軟件工程包括了開(kāi)發(fā),運(yùn)營(yíng)維護(hù)軟件的過(guò)程中有很多技術(shù)做法習(xí)慣和思想。軟件工程把這些相關(guān)的技術(shù)和過(guò)程統(tǒng)一到一個(gè)體系中 “軟件開(kāi)發(fā)流程,軟件開(kāi)發(fā)流程的目的是為了提高軟件開(kāi)發(fā)運(yùn)營(yíng)維護(hù)的效率,以及用戶滿意度可靠性,和軟件的可維護(hù)性。

 

軟件開(kāi)發(fā)流程不光指團(tuán)隊(duì)的流程,  軟件團(tuán)隊(duì)是由個(gè)人組成的。在團(tuán)隊(duì)的大流程中是每一個(gè)具體的個(gè)人在做開(kāi)發(fā),測(cè)試,用戶界面設(shè)計(jì),管理,交流等工作。因此個(gè)人在軟件團(tuán)隊(duì)中也有個(gè)人的流程。

現(xiàn)代軟件工程講義 2 工程師的能力評(píng)估和發(fā)展

 

個(gè)人的勞動(dòng)成果有序地組織起來(lái)就是團(tuán)隊(duì)的流程。這里說(shuō)的“有序”并不是“無(wú)爭(zhēng)論”,  在大部分成功的軟件團(tuán)隊(duì)模型中,  各個(gè)角色(開(kāi)發(fā)測(cè)試項(xiàng)目管理等)考慮問(wèn)題的出發(fā)點(diǎn)是有區(qū)別的不同意見(jiàn)的沖突在所難免一個(gè)好的團(tuán)隊(duì)流程能把沖突的積極方面 (各自盡力把自己的工作做好,說(shuō)服別人釋放出來(lái),而避免消極方面 (因?yàn)闆_突而產(chǎn)生的消極,抵觸情緒等)。 

現(xiàn)代軟件工程講義 2 工程師的能力評(píng)估和發(fā)展

 

我們用足球作一個(gè)比喻:  足球中有沒(méi)有個(gè)人流程?  當(dāng)然有,  職業(yè)球隊(duì)對(duì)于運(yùn)動(dòng)員有很嚴(yán)格的要求例如:

體能技術(shù)意識(shí)斗志

具體技術(shù)有傳接,盤(pán)帶,射門(mén)定位球跑位等。一些特定的角色(守門(mén)員)還有獨(dú)特的技術(shù)要求。

現(xiàn)代軟件工程講義 2 工程師的能力評(píng)估和發(fā)展

 

足球的團(tuán)隊(duì)有沒(méi)有流程當(dāng)然有:

陣型配合臨場(chǎng)應(yīng)變

 

足球隊(duì)有不少 “陣型” (442, 433, 451和它們的各種變體等等和打法 (南美,歐洲,技術(shù),力量小快靈搶逼圍兩翼齊飛,  全攻全守等等). 

現(xiàn)代軟件工程講義 2 工程師的能力評(píng)估和發(fā)展

盡管有這么多理論,  足球的每一次盤(pán)帶傳球,  跑動(dòng)射門(mén),撲救,都是單個(gè)運(yùn)動(dòng)員完成的。  如果單個(gè)運(yùn)動(dòng)員的技術(shù)體能不行無(wú)論是什么陣型用處都不大,有些陣型反而會(huì)起反作用,  例如讓體力弱的球隊(duì)去打全攻全守。

軟件也是這樣。

軟件系統(tǒng)的絕大部分模塊都是由個(gè)人開(kāi)發(fā)或維護(hù)的。在軟件工程的術(shù)語(yǔ)中我們把這些單個(gè)的成員叫做 Individual Contributor (IC).

IC 在團(tuán)隊(duì)中的流程是怎么樣的呢我們以開(kāi)發(fā)人員為例:

       理解問(wèn)題或任務(wù)

       提出多種解決辦法并估計(jì)工作量

       其中包括尋找以前的解決方案,因?yàn)楹芏喙ぷ魇侵貜?fù)性的 – 例如實(shí)現(xiàn)某些類似的web頁(yè)面。

       與相關(guān)角色交流解決問(wèn)題的提案決定最終方案

       執(zhí)行把想法變成實(shí)際中能工作的代碼

       修復(fù)缺陷,  對(duì)結(jié)果負(fù)責(zé)

每個(gè)人的工作質(zhì)量直接影響最終軟件的質(zhì)量。

作為一個(gè)軟件工程師你覺(jué)得自己表現(xiàn)如何有沒(méi)有這樣的體會(huì):

看書(shū)的時(shí)候覺(jué)得技止此耳,開(kāi)發(fā)項(xiàng)目的時(shí)候才覺(jué)得實(shí)際情況和書(shū)上講的都有一些出入,一些重要的細(xì)節(jié)書(shū)上沒(méi)有提。我們很多人是邊看asp.net的書(shū)邊開(kāi)發(fā)asp.net 的項(xiàng)目,這相當(dāng)于一邊看醫(yī)學(xué)書(shū)一邊動(dòng)手術(shù)。。。

 

如果你是病人你希望你的醫(yī)生是下面的那一種呢?

a)  剛剛在書(shū)上看到你的病例開(kāi)刀的過(guò)程中非常認(rèn)真嚴(yán)謹(jǐn)時(shí)不時(shí)還要停下來(lái)翻書(shū)看看

b)  富有創(chuàng)新意識(shí)開(kāi)刀時(shí)突然想到一個(gè)新技術(shù)新的刀法,  然后馬上在你身上試驗(yàn)

c)  已經(jīng)處理過(guò)很多類似的病例可以一邊給你開(kāi)刀一邊和護(hù)士聊天說(shuō)昨天晚上放的 《非誠(chéng)勿擾》的花絮

d)  此醫(yī)生無(wú)正式文憑或醫(yī)院但是號(hào)稱有秘方可治百病。

e) 還有這一類, 給你開(kāi)刀到一半的時(shí)候, 出去玩去了, 快下班的時(shí)候, 他們匆匆趕回來(lái), 胡搞一氣, 給你再縫好, 打了很多麻藥,就把你送出了院, 說(shuō)“治好了”!

 

事實(shí)上很多軟件項(xiàng)目就是用 a) b) 這樣的方法搞出來(lái)的。當(dāng)然也有一些人走 d) 這條路。 e) 這一種可以在很多大學(xué)生軟件大作業(yè)上看到例子。 

如果我可以選擇我要選 c) 那樣的醫(yī)生。

職業(yè)成長(zhǎng)– Steve McConnell 版本:

Steve McConnell 創(chuàng)立的公司  (Construx Software) 為員工提供了下面的成長(zhǎng)路徑。

知識(shí):把相關(guān)的軟件知識(shí)分為十大知識(shí)領(lǐng)域。

能力:一個(gè)工程師對(duì)這些知識(shí)的掌握分為如下四個(gè)階段:

入門(mén) (Introductory); 熟練 (Competency); 帶頭人 (Leadership); 大師 (Mastery)

職業(yè)成長(zhǎng)級(jí)別 (Professional Development Ladder):

把工程師分為6個(gè)級(jí)別 ( 9 – 15) 每一個(gè)工程師屬于一個(gè)技術(shù)等級(jí)。一個(gè)工程師要從一個(gè)級(jí)別升到另一個(gè)級(jí)別需要在各方面達(dá)到一定的要求。例如要達(dá)到 level12 工程師必須在三個(gè)知識(shí)領(lǐng)域達(dá)到“帶頭人”水平。  例如要到達(dá)“工程管理 (知識(shí)領(lǐng)域熟練 (能力)”水平,工程師必須要做到以下幾點(diǎn):

·         閱讀: 4-6 個(gè)經(jīng)典文獻(xiàn)的深入分析和閱讀

·         工作經(jīng)驗(yàn)要參與并完成個(gè)具體的工作

·         課程:要參加個(gè)專門(mén)的課程

有些水平還要求工程師獲得某種專業(yè)證書(shū),在工業(yè)界,教育界教課發(fā)表論文等等。

 

職業(yè)成長(zhǎng)– 大公司版本:

微軟公司針對(duì)軟件工程師的職業(yè)發(fā)展也有很完備的規(guī)劃和支持。這方面的資料比較多這里簡(jiǎn)單地以軟件開(kāi)發(fā)工程師為例說(shuō)明一下。  下面的解釋部分來(lái)自于 Eric Brechner 的書(shū)– Hard Code (link)

SDE (初級(jí)軟件開(kāi)發(fā)工程師)

                入門(mén)。在學(xué)校里學(xué)到了一些技能但是還沒(méi)有在實(shí)踐中得到充分鍛煉。

SDE II  (中級(jí)軟件開(kāi)發(fā)工程師)

獨(dú)立。可以寫(xiě)別人交給你的任何東西。如果你不懂你知道去問(wèn)誰(shuí)。

 

Senior SDE (高級(jí)軟件開(kāi)發(fā)工程師)

小組領(lǐng)導(dǎo)。影響著3 – 12 個(gè)工程師或者是他們的行政領(lǐng)導(dǎo)或者是他們的技術(shù)帶頭人。怎么顯示領(lǐng)導(dǎo)力呢這有幾個(gè)例子:

·         你當(dāng)過(guò)新員工的導(dǎo)師么?  他們后來(lái)都尊重你的種種教誨么?

·         你是否成為別人的榜樣?  (寫(xiě)的代碼做的設(shè)計(jì)別人可以拿來(lái)重用)

·         你在招人方面是否有心得并言傳身教讓大家都認(rèn)識(shí)到面試的重要性和各種技巧。

·         你是否創(chuàng)立/改進(jìn)/推動(dòng)一些流程,  而且這些流程不需要你親自參與,也能流傳下去?

·         在和別的角色 (例如, UX/PM/QA) 打交道的時(shí)候你往往都能贏得別人的支持而不是和別人爭(zhēng)執(zhí)抱怨不休?

Principal SDE (首席軟件開(kāi)發(fā)工程師)

團(tuán)隊(duì)領(lǐng)導(dǎo)。影響著12 人以上的一個(gè)大團(tuán)隊(duì)成為影響團(tuán)隊(duì)成敗的關(guān)鍵人物。

Partner SDE, Distinguished Engineer, Technical Fellow

影響力擴(kuò)大到整個(gè)機(jī)構(gòu),甚至工業(yè)界。

 

職業(yè)成長(zhǎng)– Pragmatic 版本 - 從小工到專家

IT業(yè)界的不少專家也對(duì)于程序員的成長(zhǎng)提出了不少好的建議.  例如:

現(xiàn)代軟件工程講義 2 工程師的能力評(píng)估和發(fā)展

這本書(shū)的副標(biāo)題是“from journeyman to master”,從打下手的小工到大師。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI