知己知彼,百戰(zhàn)百勝。一個(gè)軟件項(xiàng)目也一樣,從項(xiàng)目一開始就應(yīng)該分析清楚項(xiàng)目自身的特點(diǎn),因地制宜,因時(shí)制宜的采用不同的方法論和工具技術(shù)來實(shí)現(xiàn)。
工欲善其事,必先利其器。而對(duì)于一個(gè)軟件開發(fā)項(xiàng)目,最重要的器就是方法,工具和技術(shù)。而這三要素中重要的又是方法論,方法是基礎(chǔ),工具和技術(shù)更多是我們根據(jù)方法論選擇的實(shí)現(xiàn)手段,是輔助要素。如果這個(gè)地方就出現(xiàn)了決策性錯(cuò)誤,小一點(diǎn)是影響項(xiàng)目的質(zhì)量和團(tuán)隊(duì)效率,大一點(diǎn)就是直接導(dǎo)致項(xiàng)目的失敗。
1、方法論-項(xiàng)目的燈塔。
方法論是我們針對(duì)一個(gè)行業(yè)或領(lǐng)域提出的分析和解決問題的方法,是我們?cè)诳偨Y(jié)和實(shí)踐過程中高度抽象出來的理論,是經(jīng)過實(shí)踐檢驗(yàn)和驗(yàn)證的具有科學(xué)依據(jù)的原理。你的成功是因?yàn)槟阏驹谇叭说募绨蛏希覀儾粦?yīng)該憑空的去發(fā)明和創(chuàng)造,而應(yīng)該根據(jù)項(xiàng)目特點(diǎn),借鑒前人的經(jīng)驗(yàn)和教訓(xùn),選擇合適的方法論去指導(dǎo)我們的項(xiàng)目運(yùn)作。讓我們來分析下軟件項(xiàng)目管理中常使用到的方法論:
2、軟件過程改進(jìn)-CMM/CMMI,TSP,PSP
過程改進(jìn)方法論是軟件項(xiàng)目管理中最宏觀的方法論,大中型的組織或機(jī)構(gòu)可以實(shí)施CMM,而對(duì)于小型組織或個(gè)人可以采用小組軟件過程或個(gè)體軟件過程。軟件過程成熟度指針對(duì)軟件過程進(jìn)行明確定義、管理、度量、控制的程度。它表明軟件過程能力的有效性和增長(zhǎng)的潛力,表明組織軟件過程的豐富性及其應(yīng)用于項(xiàng)目的一致性。
軟件過程改進(jìn)方法論類似于我們?cè)陧?xiàng)目中采用PDCA循環(huán)的方法,其重點(diǎn)在于分析和實(shí)踐以及持續(xù)的改進(jìn)。CMM只是告訴你要做哪些事情,但采用何種方法來做并沒有明確的定義,所以CMM更像是高屋建瓴的一個(gè)東西。
3、分析和實(shí)現(xiàn)方法論-結(jié)構(gòu)化分析,面向?qū)ο?,面向方面,特征?qū)動(dòng)
分析和實(shí)現(xiàn)的方法論歸根到底現(xiàn)在常用的就是結(jié)構(gòu)化分析設(shè)計(jì)和面向?qū)ο蠓治鲈O(shè)計(jì),結(jié)構(gòu)化方法強(qiáng)調(diào)以實(shí)體關(guān)系圖和數(shù)據(jù)流圖分析為核心,通過數(shù)據(jù)流圖的精華和變換事務(wù)映射,進(jìn)行模塊和單元?jiǎng)澐?,接口分析和設(shè)計(jì)。而面向?qū)ο蠓治龊驮O(shè)計(jì)強(qiáng)調(diào)是對(duì)象和類,關(guān)注類的屬性和行為和相互協(xié)作。通過用例建模,對(duì)象的結(jié)構(gòu)建模,對(duì)象的行為建模,充分考慮封裝,繼承等面向?qū)ο箨P(guān)鍵特征進(jìn)行分析和設(shè)計(jì)。
4、生命周期模型-瀑布,原型,增量,迭代,螺旋
選擇什么樣的生命周期模型是根據(jù)項(xiàng)目自身特點(diǎn)來確定的。每種生命周期模型都有自身的優(yōu)缺點(diǎn)。對(duì)于大中型的復(fù)雜系統(tǒng),前面的需求和系統(tǒng)分析沒有搞清楚,后面的設(shè)計(jì)和實(shí)現(xiàn)根本無法進(jìn)行,所以這種系統(tǒng)還是適合用瀑布模型按部就班的進(jìn)行。對(duì)于需求多變,項(xiàng)目進(jìn)度要求緊張,人員配置相對(duì)固定,這種情況更適宜于采用增量和迭代的方法進(jìn)行。
5、工具和技術(shù)-提升效率的關(guān)鍵所在。
如果你不知道去哪里?給你張地圖也沒有用,所以方法論更多的是讓我們走正確的路。但如何在正確的路上走的更快則要借助相關(guān)的工具和技術(shù)來提高我們的生產(chǎn)率?,F(xiàn)在誰用匯編語言去實(shí)現(xiàn)MIS系統(tǒng)估計(jì)不能尊為天才,而只能尊為傻子了?,F(xiàn)在相關(guān)的工具和技術(shù)很多,主要從軟件開發(fā)生命周期模型的各個(gè)階段來談下相關(guān)的工具和技術(shù)的使用。
6、需求階段工具:
需求階段主要分為需求收集,需求開發(fā)和需求管理三個(gè)方面的內(nèi)容。需求收集主要是如何捕獲和描述清楚用戶需求,可以用Excel來完成需求的收集;需求開發(fā)對(duì)于面向?qū)ο笠话悴捎檬褂肦OSE工具采用UML用例建模的方式進(jìn)行,用例建模一般又分為用例建模,行為建模和界面建模三個(gè)層次的內(nèi)容。需求管理一般采用RP工具進(jìn)行需求的追蹤,采用CQ等工具進(jìn)行需求變更的控制。
7、技術(shù)+過程方法論-RUP,MSF
把R