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