中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

現代軟件工程講義 2 工程師的能力評估和發展

發布時間:2020-05-04 19:45:15 來源:網絡 閱讀:201 作者:鄒欣 欄目:軟件技術

Advanced Software Engineering  現代軟件工程  講義

軟件工程師的能力評估和職業發展

 

介紹:  個人軟件流程,  職業發展, 個人績效的衡量和提高軟件開發是科學工程手藝或是藝術? 

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

軟件工程包括了開發,運營維護軟件的過程中有很多技術做法習慣和思想。軟件工程把這些相關的技術和過程統一到一個體系中 “軟件開發流程軟件開發流程的目的是為了提高軟件開發運營維護的效率,以及用戶滿意度可靠性,和軟件的可維護性。

 

軟件開發流程不光指團隊的流程,  軟件團隊是由個人組成的。在團隊的大流程中是每一個具體的個人在做開發,測試,用戶界面設計,管理,交流等工作。因此個人在軟件團隊中也有個人的流程。

現代軟件工程講義 2 工程師的能力評估和發展

 

個人的勞動成果有序地組織起來就是團隊的流程。這里說的“有序”并不是“無爭論”,  在大部分成功的軟件團隊模型中,  各個角色(開發測試項目管理等)考慮問題的出發點是有區別的不同意見的沖突在所難免一個好的團隊流程能把沖突的積極方面 (各自盡力把自己的工作做好,說服別人釋放出來,而避免消極方面 (因為沖突而產生的消極,抵觸情緒等) 

現代軟件工程講義 2 工程師的能力評估和發展

 

我們用足球作一個比喻:  足球中有沒有個人流程?  當然有,  職業球隊對于運動員有很嚴格的要求例如:

體能技術意識斗志

具體技術有傳接,盤帶,射門定位球跑位等。一些特定的角色(守門員)還有獨特的技術要求。

現代軟件工程講義 2 工程師的能力評估和發展

 

足球的團隊有沒有流程當然有:

陣型配合臨場應變

 

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

現代軟件工程講義 2 工程師的能力評估和發展

盡管有這么多理論,  足球的每一次盤帶傳球,  跑動射門,撲救,都是單個運動員完成的。  如果單個運動員的技術體能不行無論是什么陣型用處都不大,有些陣型反而會起反作用,  例如讓體力弱的球隊去打全攻全守。

軟件也是這樣。

軟件系統的絕大部分模塊都是由個人開發或維護的。在軟件工程的術語中我們把這些單個的成員叫做 Individual Contributor (IC).

IC 在團隊中的流程是怎么樣的呢我們以開發人員為例:

       理解問題或任務

       提出多種解決辦法并估計工作量

       其中包括尋找以前的解決方案,因為很多工作是重復性的 – 例如實現某些類似的web頁面。

       與相關角色交流解決問題的提案決定最終方案

       執行把想法變成實際中能工作的代碼

       修復缺陷,  對結果負責

每個人的工作質量直接影響最終軟件的質量。

作為一個軟件工程師你覺得自己表現如何有沒有這樣的體會:

看書的時候覺得技止此耳,開發項目的時候才覺得實際情況和書上講的都有一些出入,一些重要的細節書上沒有提。我們很多人是邊看asp.net的書邊開發asp.net 的項目,這相當于一邊看醫學書一邊動手術。。。

 

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

a)  剛剛在書上看到你的病例開刀的過程中非常認真嚴謹時不時還要停下來翻書看看

b)  富有創新意識開刀時突然想到一個新技術新的刀法,  然后馬上在你身上試驗

c)  已經處理過很多類似的病例可以一邊給你開刀一邊和護士聊天說昨天晚上放的 《非誠勿擾》的花絮

d)  此醫生無正式文憑或醫院但是號稱有秘方可治百病。

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

 

事實上很多軟件項目就是用 a) b) 這樣的方法搞出來的。當然也有一些人走 d) 這條路。 e) 這一種可以在很多大學生軟件大作業上看到例子。 

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

職業成長– Steve McConnell 版本:

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

知識:把相關的軟件知識分為十大知識領域。

能力:一個工程師對這些知識的掌握分為如下四個階段:

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

職業成長級別 (Professional Development Ladder):

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

·         閱讀: 4-6 個經典文獻的深入分析和閱讀

·         工作經驗要參與并完成個具體的工作

·         課程:要參加個專門的課程

有些水平還要求工程師獲得某種專業證書,在工業界,教育界教課發表論文等等。

 

職業成長– 大公司版本:

微軟公司針對軟件工程師的職業發展也有很完備的規劃和支持。這方面的資料比較多這里簡單地以軟件開發工程師為例說明一下。  下面的解釋部分來自于 Eric Brechner 的書– Hard Code (link)

SDE (初級軟件開發工程師)

                入門。在學校里學到了一些技能但是還沒有在實踐中得到充分鍛煉。

SDE II  (中級軟件開發工程師)

獨立。可以寫別人交給你的任何東西。如果你不懂你知道去問誰。

 

Senior SDE (高級軟件開發工程師)

小組領導。影響著3 – 12 個工程師或者是他們的行政領導或者是他們的技術帶頭人。怎么顯示領導力呢這有幾個例子:

·         你當過新員工的導師么?  他們后來都尊重你的種種教誨么?

·         你是否成為別人的榜樣?  (寫的代碼做的設計別人可以拿來重用)

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

·         你是否創立/改進/推動一些流程,  而且這些流程不需要你親自參與,也能流傳下去?

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

Principal SDE (首席軟件開發工程師)

團隊領導。影響著12 人以上的一個大團隊成為影響團隊成敗的關鍵人物。

Partner SDE, Distinguished Engineer, Technical Fellow

影響力擴大到整個機構,甚至工業界。

 

職業成長– Pragmatic 版本 - 從小工到專家

IT業界的不少專家也對于程序員的成長提出了不少好的建議.  例如:

現代軟件工程講義 2 工程師的能力評估和發展

這本書的副標題是“from journeyman to master”從打下手的小工到大師。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

甘洛县| 边坝县| 离岛区| 错那县| 洛浦县| 子长县| 陆川县| 响水县| 杭锦后旗| 沙湾县| 蒙阴县| 三明市| 仁布县| 滨海县| 仁化县| 杂多县| 东城区| 东宁县| 玛曲县| 库伦旗| 来安县| 南汇区| 武宁县| 瑞昌市| 醴陵市| 邹城市| 绥德县| 台东县| 武定县| 腾冲县| 许昌市| 固安县| 玉溪市| 政和县| 阳泉市| 防城港市| 抚远县| 米脂县| 泰和县| 东源县| 大理市|