Advanced Software Engineering 現(xiàn)代軟件工程 講義
介紹: 個人軟件流程, 職業(yè)發(fā)展, 個人績效的衡量和提高, 軟件開發(fā)是科學, 工程, 手藝, 或是藝術?
我們剛講了軟件工程, 它包括了什么呢?
軟件工程包括了開發(fā),運營, 維護軟件的過程中有很多技術, 做法, 習慣, 和思想。軟件工程把這些相關的技術和過程統(tǒng)一到一個體系中, 叫 “軟件開發(fā)流程”,軟件開發(fā)流程的目的是為了提高軟件開發(fā), 運營, 維護的效率,以及用戶滿意度, 可靠性,和軟件的可維護性。 |
軟件開發(fā)流程不光指團隊的流程, 軟件團隊是由個人組成的。在團隊的大流程中, 是每一個具體的個人在做開發(fā),測試,用戶界面設計,管理,交流等工作。因此, 個人在軟件團隊中也有個人的流程。
個人的勞動成果有序地組織起來, 就是團隊的流程。這里說的“有序”, 并不是“無爭論”, 在大部分成功的軟件團隊模型中, 各個角色(開發(fā), 測試, 項目管理等)考慮問題的出發(fā)點是有區(qū)別的, 不同意見的沖突在所難免, 一個好的團隊流程能把沖突的積極方面 (各自盡力把自己的工作做好,說服別人) 釋放出來,而避免消極方面 (因為沖突而產(chǎn)生的消極,抵觸情緒等)。
我們用足球作一個比喻: 足球中有沒有個人流程? 當然有, 職業(yè)球隊對于運動員有很嚴格的要求: 例如:
體能, 技術, 意識, 斗志
具體技術有傳接,盤帶,射門, 定位球, 跑位, 等。一些特定的角色(守門員)還有獨特的技術要求。
足球的團隊有沒有流程? 當然有:
陣型, 配合, 臨場應變
足球隊有不少 “陣型” (442, 433, 451和它們的各種變體, 等等) 和打法 (南美,歐洲,技術,力量, 小快靈, 搶逼圍, 兩翼齊飛, 全攻全守, 等等).
盡管有這么多理論, 足球的每一次盤帶, 傳球, 跑動, 射門,撲救,都是單個運動員完成的。 如果單個運動員的技術, 體能不行, 無論是什么陣型用處都不大,有些陣型反而會起反作用, 例如, 讓體力弱的球隊去打全攻全守。
軟件也是這樣。
軟件系統(tǒng)的絕大部分模塊都是由個人開發(fā)或維護的。在軟件工程的術語中, 我們把這些單個的成員叫做 Individual Contributor (IC).
IC 在團隊中的流程是怎么樣的呢? 我們以開發(fā)人員為例:
理解問題或任務
提出多種解決辦法并估計工作量
其中包括尋找以前的解決方案,因為很多工作是重復性的 – 例如實現(xiàn)某些類似的web頁面。
與相關角色交流解決問題的提案, 決定最終方案
執(zhí)行, 把想法變成實際中能工作的代碼
修復缺陷,對結果負責
每個人的工作質(zhì)量直接影響最終軟件的質(zhì)量。
作為一個軟件工程師, 你覺得自己表現(xiàn)如何? 有沒有這樣的體會:
看書的時候覺得“”asp.net, asp.net 的項目,這相當于一邊看醫(yī)學書一邊動手術。。。
如果你是病人, 你希望你的醫(yī)生是下面的那一種呢?
a) 剛剛在書上看到你的病例, , …
b) 富有創(chuàng)新意識, , ,…
c) 已經(jīng)處理過很多類似的病例, , …
d) 此醫(yī)生無正式文憑或醫(yī)院, , 可治百病。
e) 還有這一類, 給你開刀到一半的時候, 出去玩去了, 快下班的時候, 他們匆匆趕回來, 胡搞一氣, 給你再縫好, 打了很多麻藥,就把你送出了院, 說“治好了”!
事實上, 很多軟件項目就是用 a) b) 這樣的方法搞出來的。當然也有一些人走 d) 這條路。 e) 這一種可以在很多大學生軟件大作業(yè)上看到例子。
如果我可以選擇, 我要選 c) 那樣的醫(yī)生。
職業(yè)成長– Steve McConnell 版本:
Steve McConnell 創(chuàng)立的公司 (Construx Software) 為員工提供了下面的成長路徑。
知識:把相關的軟件知識分為十大知識領域。
能力:一個工程師對這些知識的掌握分為如下四個階段:
入門 (Introductory); 熟練 (Competency); 帶頭人 (Leadership); 大師 (Mastery)
職業(yè)成長級別 (Professional Development Ladder):
把工程師分為6個級別 ( 9 – 15) 每一個工程師屬于一個技術等級。一個工程師要從一個級別升到另一個級別, 需要在各方面達到一定的要求。例如, 要達到 level12 ,工程師必須在三個知識領域達到“帶頭人”水平。 例如要到達“工程管理 (知識領域) 的熟練 (能力)”水平,工程師必須要做到以下幾點:
· 閱讀: 4-6 個經(jīng)典文獻的深入分析和閱讀
· 工作經(jīng)驗: 要參與并完成6 個具體的工作
· 課程:要參加3 個專門的課程
有些水平還要求工程師獲得某種專業(yè)證書,在工業(yè)界,教育界教課, 發(fā)表論文等等。
微軟公司針對軟件工程師的職業(yè)發(fā)展也有很完備的規(guī)劃和支持。這方面的資料比較多, 這里簡單地以軟件開發(fā)工程師為例說明一下。 下面的解釋部分來自于 Eric Brechner 的書– Hard Code ()
SDE (初級軟件開發(fā)工程師)
入門。在學校里學到了一些技能, 但是還沒有在實踐中得到充分鍛煉。
SDE II (中級軟件開發(fā)工程師)
獨立??梢詫憚e人交給你的任何東西。如果你不懂, 你知道去問誰。
Senior SDE (高級軟件開發(fā)工程師)
小組領導。影響著3 – 12 個工程師, 或者是他們的行政領導; 或者是他們的技術帶頭人。怎么顯示領導力呢? 這有幾個例子:
· 你當過新員工的導師么?他們后來都尊重你的種種教誨么?
· 你是否成為別人的榜樣?(寫的代碼, 做的設計, 別人可以拿來重用
· 你在招人方面是否有心得, 并言傳身教, 讓大家都認識到面試的重要性和各種技巧。
· 你是否創(chuàng)立/改進/推動一些流程,而且這些流程不需要你親自參與,也能流傳下去?
· 在和別的角色 (例如, UX/PM/QA) 打交道的時候, 你往往都能贏得別人的支持, 而不是和別人爭執(zhí), 抱怨不休?
Principal SDE (首席軟件開發(fā)工程師)
團隊領導。影響著12 人以上的一個大團隊, 成為影響團隊成敗的關鍵人物。
Partner SDE, Distinguished Engineer, Technical Fellow
影響力擴大到整個機構,甚至工業(yè)界。
IT業(yè)界的不少專家也對于程序員的成長提出了不少好的建議. 例如:
這本書的副標題是“from journeyman to master”,從打下手的小工到大師。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文名稱:現(xiàn)代軟件工程講義2工程師的能力評估和發(fā)展-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://www.rwnh.cn/article32/dohipc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設、定制網(wǎng)站、外貿(mào)建站、企業(yè)網(wǎng)站制作、微信小程序、面包屑導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容