同事說起「軟件工程、軟件生命週期、項目管理、CMMI、IPD、RUP、UML及UML建模、面向對象分析與設計、需求分析、系統分析與設計……等等,它們究竟是什麼?它們之間有什麼關係?」
下面是我的看法,請指正:
1.產品管理維度
IPD是集成產品開發,從傳統行業引入到軟件行業,是從產品管理維度定義產品研發做業過程;
從高層次的企業視角,從產品如何給用戶創造價值,如何創造一個產品的方面定義的做業流程;
2.項目管理維度
從項目維度,PMP(項目管理),RUP,CMMI等都是項目研發過程或評估方法,是項目級的研發流程定義過程;
PMP是傳統項目管理、
RUP是retional的統一過程,用於軟件研發過程指導
CMMI是一種軟件成熟度的評估方法,也用於軟件研發過程指導
上述項目管理方法或過程,均可以稱爲「軟件的生命週期」,以此過程控制的高質量,來控制軟件成果的產出;
3.方法/實踐維度
UML、面向對象分析設計,需求/系統分析設計等,是軟件生命週期過程當中使用的方法或實踐,是軟件生命週期中運用的工具;
運用工具目的是如何更好,更快捷,更真實的描述問題,分析問題,解決問題;
能夠在產出項目成果過程當中更高效,更快捷,造成知識實踐積累;
形成咱們思考混亂的根源,我我的認爲是:思考未從頂層思考,若是不從頂層思考(從產品維度,從爲用戶提供價值視角),就沒法以此抓住總體主線;
抓不住主線,就沒法提起整個「葡萄」,而只能逐個觀察成堆的單個「葡萄粒」;
用德魯克的話說是:只有把視野放到貢獻上(重視貢獻),你纔可能不爲你的專長所限,不爲能力所限,不爲你的部門所限;
才能看到總體績效,而只有看到總體績效,纔會考慮本身部門、我的和組織目標的關係;
而只有從貢獻、組織目標角度考慮(給用戶帶來價值),纔可能更好的理解或理順上述說起的概念及相互關係!!!