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