『软件工程4』一文了解软件项目管理中的4P
軟件項(xiàng)目管理中的4P
- 一、項(xiàng)目管理的重要性和定義
- 1、重要性(兩個(gè)階段)
- 2、軟件項(xiàng)目管理的定義
- 二、管理四要素4P
- 1、管理的四要素(4P)
- 2、軟件項(xiàng)目中影響最終結(jié)果的要素
- 3、項(xiàng)目管理關(guān)心的問題
- 三、項(xiàng)目參與者類型(people)
- 四、項(xiàng)目小組結(jié)構(gòu)(people)
- 1、項(xiàng)目的三種一般小組組織形式
- 2、關(guān)于小組結(jié)構(gòu)的說明
- 3、項(xiàng)目小組人員間的通信路徑
- 4、小組結(jié)構(gòu)的選擇需考慮的因素
- 5、思考題
- 五、軟件范圍及問題分解(product)
- 1、預(yù)告
- 2、軟件范圍的確定(劃定問題的邊界)
- 3、問題分解(確定各部分的功能)
- 六、過程(process)
- 1、一般性階段
- 2、選擇過程模型階段
- 3、已確定過程模型階段
- 七、產(chǎn)品和過程的二元性(product and process)
- 八、項(xiàng)目的5W2H原則(project)
- 九、寫在最后——think more
在日常的軟件開發(fā)中,很多人可能認(rèn)為只要技術(shù)實(shí)力夠了,不需要任何的軟件項(xiàng)目管理。但殊不知的是, 軟件項(xiàng)目管理對于整個(gè)軟件項(xiàng)目起著至關(guān)重要的作用,甚至有可能關(guān)乎到軟件項(xiàng)目的生死存亡。一項(xiàng)調(diào)查顯示, 70%的項(xiàng)目失敗是由于管理不善引起的,而并不是因?yàn)榧夹g(shù)實(shí)力不夠的原因。
那在軟件項(xiàng)目管理當(dāng)中,重要的4個(gè)因素又是什么呢?
在下面的這篇文章當(dāng)中,將講解軟件項(xiàng)目管理中的4個(gè)重要因素4P, people 、 product 、 process 、 project 。
一、項(xiàng)目管理的重要性和定義
1、重要性(兩個(gè)階段)
(1)20世紀(jì)70年代中期
①70%的項(xiàng)目失敗是由于管理不善引起的,而并不是因?yàn)榧夹g(shù)實(shí)力不夠;
②管理是影響軟件研發(fā)項(xiàng)目全局的因素,而技術(shù)只影響局部的因素。
(2)20世紀(jì)90年代中期
美國軟件工程實(shí)施現(xiàn)狀的調(diào)查:
①10%的項(xiàng)目能夠在預(yù)定的費(fèi)用和進(jìn)度下交付;
②軟件項(xiàng)目管理成為軟件項(xiàng)目開發(fā)中最重要的核心問題之一。
2、軟件項(xiàng)目管理的定義
(1)定義
軟件項(xiàng)目管理是為了使軟件項(xiàng)目能夠順利完成,而對成本、人員、進(jìn)度、質(zhì)量、風(fēng)險(xiǎn)等進(jìn)行分析和管理的活動(dòng)。
(2)對象
軟件工程項(xiàng)目,它所涉及的范圍覆蓋了整個(gè)軟件工程過程。
(3)何時(shí)(即什么時(shí)候做項(xiàng)目管理)
這種管理在技術(shù)工作開始之前就應(yīng)開始,在軟件從概念到實(shí)現(xiàn)的過程中繼續(xù)進(jìn)行,當(dāng)軟件工程過程最后結(jié)束時(shí)才終止。
二、管理四要素4P
1、管理的四要素(4P)
- 人員People —— 成功項(xiàng)目的重要因素;
- 產(chǎn)品Product —— 要開發(fā)的軟件;
- 過程Process —— 軟件工程的框架活動(dòng),包含了任務(wù)、里程碑、工作產(chǎn)品以及質(zhì)量保證點(diǎn);
- 項(xiàng)目Project —— 開發(fā)軟件所需要的所有工作
2、軟件項(xiàng)目中影響最終結(jié)果的要素
- 規(guī)模
- 提交的期限
- 預(yù)算和代價(jià)
- 應(yīng)用領(lǐng)域
- 運(yùn)用的技術(shù)
- 系統(tǒng)約束
- 用戶需求
- 可提供的資源
3、項(xiàng)目管理關(guān)心的問題
- 產(chǎn)品的質(zhì)量
- 風(fēng)險(xiǎn)的識(shí)別和管理
- 度量
- 代價(jià)估算
- 項(xiàng)目進(jìn)度
- 和客戶交流
- 項(xiàng)目成員
- 其他資源
- 項(xiàng)目監(jiān)控
PS: 以下將對4P的內(nèi)容進(jìn)行詳細(xì)分析。
三、項(xiàng)目參與者類型(people)
項(xiàng)目參與者類型一般包括以下幾類:
- 高級管理者:負(fù)責(zé)定義業(yè)務(wù)問題;
- 項(xiàng)目(技術(shù))管理者:必須計(jì)劃、激勵(lì)、組織和控制軟件開發(fā)人員;
- 開發(fā)人員:負(fù)責(zé)開發(fā)一個(gè)產(chǎn)品或應(yīng)用所需的專門技術(shù);
- 客戶:負(fù)責(zé)說明待開發(fā)軟件相關(guān)需求的人以及其他風(fēng)險(xiǎn)承擔(dān)者;
- 最終用戶:一旦軟件發(fā)布成為產(chǎn)品,最終用戶是直接與軟件進(jìn)行交互的人
總結(jié):
①高級管理者,即定義業(yè)務(wù)問題的人;
②項(xiàng)目管理者,即管理軟件開發(fā)的人;
③開發(fā)人員,即應(yīng)用技術(shù)開發(fā)軟件的人;
④客戶,即提出軟件需求,并承擔(dān)一定風(fēng)險(xiǎn)的人;
⑤最終用戶,即與軟件交互的人。
四、項(xiàng)目小組結(jié)構(gòu)(people)
1、項(xiàng)目的三種一般小組組織形式
(1)民主分散式(Democratic Decentralized, DD)
(2)控制分散式(Controlled Decentralized, CD)
(3)控制集中式(Controlled Centralized, CC)
2、關(guān)于小組結(jié)構(gòu)的說明
(1)DD(民主分散式):沒有固定的負(fù)責(zé)人,適合難度比較高、交付期限很長及生存期較長的項(xiàng)目,最適合于解決模塊化程度比較低的問題,因?yàn)樾枰ㄐ?#xff1b;
通俗來說:沒有負(fù)責(zé)人,只有水平通信,成員之間需要廣泛的兩兩交流。
(2)CD(控制分散式):有一個(gè)固定的負(fù)責(zé)人,若有子負(fù)責(zé)人,子負(fù)責(zé)人和總負(fù)責(zé)人的通信是垂直的,而個(gè)人間的通信是水平的,適合交付期限較長、比較簡單的項(xiàng)目;
通俗來說:有固定負(fù)責(zé)人,成員之間需要交流,成員與負(fù)責(zé)人之間也需要交流;若有子負(fù)責(zé)人,成員跟子負(fù)責(zé)交流,子負(fù)責(zé)人跟總負(fù)責(zé)交流。
(3)CC(控制集中式):負(fù)責(zé)人和小組成員之間的通信是垂直的,適合解決交付期限比較嚴(yán)格的、簡單的、模塊化程度高的項(xiàng)目
通俗來說:有固定負(fù)責(zé)人,成員之間不溝通,只跟上級溝通。
注:CD和CC兩種結(jié)構(gòu)都需要有一個(gè)固定的負(fù)責(zé)人,而DD不用;且會(huì)比DD產(chǎn)生更少的缺陷。
3、項(xiàng)目小組人員間的通信路徑
從上圖中可以看出,項(xiàng)目小組人數(shù)越多,通信路徑越多。
通信路徑計(jì)算公式為:
Cn2=n(n?1)2,n表示水平通信成員間的人數(shù)C_n^2=\frac{n(n-1)}{2} ,n表示水平通信成員間的人數(shù) Cn2?=2n(n?1)?,n表示水平通信成員間的人數(shù)
4、小組結(jié)構(gòu)的選擇需考慮的因素
對于一個(gè)小組來說,選擇一個(gè)合適的結(jié)構(gòu)需考慮以下因素:
- 待解決軟件項(xiàng)目的困難程度;
- 產(chǎn)生的程序規(guī)模,以代碼行或者功能點(diǎn)來衡量;
- 小組成員需要共同工作的時(shí)間(小組生存期);
- 項(xiàng)目所需要的通信的程度;
- 問題能夠被模塊化的程度;
- 待建造系統(tǒng)所要求的質(zhì)量和可靠性;
- 交付日期的嚴(yán)格程度
5、思考題
Q1:某公司有21名員工,請問分別按DD、CD、CC方式來進(jìn)行組織結(jié)構(gòu)的劃分,各自會(huì)產(chǎn)生多少條的通信路徑?假設(shè)在CD和CC方式下被分成四組,畫出大概的組織結(jié)構(gòu)圖。
A1:
下面給出無子負(fù)責(zé)人和有子負(fù)責(zé)人的框架圖:
寫到這里,不妨再思考下,在CD和CC方式下被分成五組,有多少條通信路徑?組織架構(gòu)又是怎么樣的呢?
評論區(qū)留下你的答案~
五、軟件范圍及問題分解(product)
1、預(yù)告
在開始進(jìn)行一個(gè)項(xiàng)目之前,應(yīng)該了解些什么呢?
(1)在進(jìn)行項(xiàng)目計(jì)劃之前,軟件開發(fā)者和客戶必須一起定義產(chǎn)品的目的和范圍,考慮可選的解決方案,標(biāo)識(shí)技術(shù)和管理的約束;
(2)沒有這些信息,就不可能進(jìn)行合理的(準(zhǔn)確的)成本估算、有效的風(fēng)險(xiǎn)評估、適當(dāng)?shù)?strong>項(xiàng)目任務(wù)劃分或是可管理的項(xiàng)目進(jìn)度安排;
(3)軟件范圍是軟件項(xiàng)目管理的第一個(gè)活動(dòng)。
通過下面一張圖來加深對軟件范圍的理解。
圓圈里的內(nèi)容即軟件范圍,確定該項(xiàng)目要做什么;那么不在圈子里面的,就先拋開,也就是說,不該做的內(nèi)容先不要做。
2、軟件范圍的確定(劃定問題的邊界)
(1)語境;
(2)信息目標(biāo);
(3)功能和性能
3、問題分解(確定各部分的功能)
(1)分而治之;
(2)估算開始之前,范圍中所描述的軟件功能必須被評估和細(xì)化,以提供更多的細(xì)節(jié)。因?yàn)槌杀竞瓦M(jìn)度的估算都是面向功能的,所以某種程度的分解通常是很有用的。
六、過程(process)
1、一般性階段
(1)軟件過程的一般性階段(定義、開發(fā)和支持)適用于所有軟件項(xiàng)目;
(2)問題在于選擇一個(gè)適合項(xiàng)目組所要開發(fā)軟件的過程模型。
回顧下上一篇文章提到過的過程模型:
- 線性順序模型(瀑布模型)
- V模型
- 原型實(shí)現(xiàn)模型
- RAD模型
- 增量模型
- 螺旋模型
- 形式化方法模型
2、選擇過程模型階段
項(xiàng)目管理者必須決定哪一個(gè)過程模型最適合用在此項(xiàng)目,因此在選擇過程模型時(shí)需考慮以下因素:
(1)需要該產(chǎn)品的客戶和將做此工作的人員;
(2)產(chǎn)品本身的特征;
(3)軟件項(xiàng)目組工作的項(xiàng)目環(huán)境。
3、已確定過程模型階段
(1)當(dāng)一個(gè)過程模型被選定時(shí),項(xiàng)目組基于通用過程框架活動(dòng)集合,定義一個(gè)初步的計(jì)劃;
(2)一旦建立了初步的計(jì)劃,便可以開始進(jìn)行過程分解,即必須建立一個(gè)完整的計(jì)劃以反映框架活動(dòng)中所需要的工作任務(wù);
(3)工作任務(wù)必須針對項(xiàng)目的特定需要進(jìn)行適應(yīng)性修改;且框架活動(dòng)總是一樣的,但工作任務(wù)則要根據(jù)一系列的適應(yīng)性標(biāo)準(zhǔn)來選擇。
七、產(chǎn)品和過程的二元性(product and process)
從上圖中可以看出,橫向坐標(biāo)表示過程,縱向坐標(biāo)表示產(chǎn)品,也就是說,每一個(gè)產(chǎn)品都有它對應(yīng)的一系列過程。所以,在一個(gè)項(xiàng)目中,產(chǎn)品和過程都一樣重要,缺了誰都不行,這也就體現(xiàn)了產(chǎn)品和過程的二元性。
八、項(xiàng)目的5W2H原則(project)
項(xiàng)目的5W2H原則包含以下幾點(diǎn):
- WHY —— 為什么(Why)該系統(tǒng)被開發(fā)?(業(yè)務(wù)目的)
- WHAT —— 將做什么(What)?(項(xiàng)目任務(wù))
- WHEN —— 什么時(shí)候(When)做?(里程碑)
- WHO —— 某功能由誰(Who)負(fù)責(zé)?(角色和責(zé)任)
- WHERE —— 他們的機(jī)構(gòu)組織位于何處(Where)?(角色責(zé)任界定)
- HOW —— 工作將如何(How)被技術(shù)和管理地進(jìn)行?(管理和技術(shù)策略)
- HOW MUCH —— 每種資源需要多少(How much)?(資源分配)
九、寫在最后——think more
看完上面文章內(nèi)容后,不妨試問下自己以下問題:
分析如下具體項(xiàng)目情況,選擇合適的團(tuán)隊(duì)結(jié)構(gòu)(CC、CD、DD)及軟件過程模型,并分析原因。
Q1:在一個(gè)信息系統(tǒng)組織中,你被指派為項(xiàng)目經(jīng)理。你的工作是開發(fā)一個(gè)應(yīng)用程序,該程序類似于你的團(tuán)隊(duì)以前已經(jīng)做過的某個(gè)項(xiàng)目,只是規(guī)模更大而且更復(fù)雜一些。需求已經(jīng)由用戶寫成文檔。
Q2:你被指派為一個(gè)小型軟件產(chǎn)品公司的項(xiàng)目經(jīng)理。你的工作是開發(fā)一個(gè)有突破性的產(chǎn)品,該產(chǎn)品結(jié)合了虛擬現(xiàn)實(shí)的硬件和高超的軟件。因?yàn)榧彝蕵肥袌龅母偁幏浅<ち?#xff0c;完成這項(xiàng)工作的壓力很大。
Q3:你被指派為一個(gè)大型軟件產(chǎn)品公司的項(xiàng)目經(jīng)理。你的工作是管理該公司已被廣泛使用的字處理軟件的新版本的開發(fā)。因?yàn)楸仨毇@得新的收益,已經(jīng)規(guī)定了緊迫的最后期限并對外公布。
Q4:在一個(gè)為遺傳工程領(lǐng)域服務(wù)的公司中,你被指派為項(xiàng)目經(jīng)理。你的工作是管理一個(gè)軟件新產(chǎn)品的開發(fā),該產(chǎn)品能夠加速基因分解的速度。這項(xiàng)工作是面向研究及開發(fā)的,但其目標(biāo)是在下一年度內(nèi)生產(chǎn)出產(chǎn)品。
評論區(qū)留下你的答案?(?????)?
PS 本文篇幅較長,有不理解或者有誤的地方歡迎私聊或加我微信 MondayLaboratory 交流~
- 公眾號:星期一研究室
- 微信:MondayLaboratory
如果這篇文章對你有幫助,記得留下star哦~
總結(jié)
以上是生活随笔為你收集整理的『软件工程4』一文了解软件项目管理中的4P的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 『软件工程3』你应该知道的三种原型实现模
- 下一篇: 『软件测试2』 关于黑盒测试和测试用例的