上一篇文章內(nèi)容有點(diǎn)多呀,消化完了嗎?其實(shí)吧,最主要的就是那三種組織形式而已,別的真沒什么,記住它們的優(yōu)缺點(diǎn)和項(xiàng)目經(jīng)理的權(quán)力大小就可以了。今天我們輕松點(diǎn),雖說還是挺重要的,但要記住它們并不是在今天。我們要了解一下項(xiàng)目的生命周期,以及在 IT 項(xiàng)目開發(fā)中常用的典型生命周期。其實(shí)這些內(nèi)容我們?cè)诩夹g(shù)相關(guān)的內(nèi)容中都已經(jīng)有涉及過,這里只是更詳細(xì)的再說明一下??吹较旅娴膬?nèi)容你一定不會(huì)感到非常陌生的。最后,我們還要提一下項(xiàng)目管理過程,也就是大家翹首以盼的 PMBOK 十大過程領(lǐng)域,當(dāng)然,只是簡單的介紹下,因?yàn)槊總€(gè)過程域我們?cè)诤竺娑紩?huì)詳細(xì)地學(xué)習(xí)。
在技術(shù)相關(guān)的第一課,也就是 【信管1.1】信息系統(tǒng)與信息化https://mp.weixin.qq.com/s/-zYr7LO9OaeZfIEfziflpg 中,我們就提到過信息系統(tǒng)生命周期的概念。其實(shí)它本質(zhì)上就是從項(xiàng)目生命周期演化產(chǎn)生的。項(xiàng)目生命周期指的是項(xiàng)目從啟動(dòng)到收尾所經(jīng)歷的一系列階段。階段通常都有時(shí)間限制,有開始點(diǎn)、結(jié)束點(diǎn)或控制點(diǎn)。
從預(yù)測(cè)型(或計(jì)劃驅(qū)動(dòng)的)方法到適應(yīng)型(或變更驅(qū)動(dòng)的)方法,項(xiàng)目生命周期可以處于這個(gè)連續(xù)區(qū)間內(nèi)的任何位置。在預(yù)測(cè)型生命周期中,在項(xiàng)目開始時(shí)就對(duì)產(chǎn)品和可交付成果進(jìn)行定義,對(duì)任何范圍變化都要進(jìn)行仔細(xì)管理。而在適應(yīng)型生命周期中,產(chǎn)品開發(fā)需要經(jīng)過多次迭代,在每次迭代開始時(shí)才能定義該次迭代的詳細(xì)范圍。
上面這個(gè)項(xiàng)目的生命周期圖中,我們可以看到 啟動(dòng)項(xiàng)目、組織與準(zhǔn)備、執(zhí)行項(xiàng)目工作 以及 結(jié)束項(xiàng)目 這四個(gè)階段,其實(shí)換個(gè)單詞就是 啟動(dòng)、計(jì)劃、執(zhí)行、收尾 這個(gè)四個(gè)步驟。如果再加上一個(gè)全程的 監(jiān)控 的話,就演變成了完整的 PMBOK 的五大項(xiàng)目過程組。
不同的階段其實(shí)并沒有特別嚴(yán)格的劃分方法,階段通常是以一個(gè)或多個(gè)可交付成果的完成為結(jié)束的,通常這些階段也需要遵循一些規(guī)定:
每個(gè)階段要完成哪些技術(shù)工作
每個(gè)階段的交付物何時(shí)及如何產(chǎn)生
每個(gè)階段都有哪些人員參與
如何控制和批準(zhǔn)每個(gè)階段
在上面的圖中,我們還看到了一條曲線,這條曲線代表的是成本與人力投入的水平。我們可以看到,成本與人力投入在開始時(shí)較低,在工作執(zhí)行期間達(dá)到最高,并在項(xiàng)目快要結(jié)束時(shí)迅速回落。不過,成本和人力投入的這條曲線并不是適用于所有項(xiàng)目的,因?yàn)橛械捻?xiàng)目可能在生命周期早期支出較大,以確保所有的資源到位,也就是說,給予的資源投入從一開始就是頂峰。
除了成本和人力外,項(xiàng)目的風(fēng)險(xiǎn)不確定性和變更代價(jià)也會(huì)隨著項(xiàng)目的進(jìn)展而產(chǎn)生變化。
從圖中我們可以看到兩條曲線。其中風(fēng)險(xiǎn)與不確定性在項(xiàng)目開始時(shí)最大,并在項(xiàng)目的整個(gè)生命周期中隨著決策的制定與可交付成果的驗(yàn)收而逐步降低。另一條變更的代價(jià)則是反過來的,在不顯著影響成本的前提下,改變項(xiàng)目產(chǎn)品最終特性的能力在項(xiàng)目開始時(shí)最大,并隨項(xiàng)目進(jìn)展而減弱。其實(shí)就是說,在項(xiàng)目開始階段,變更不需要付出太多的代價(jià),而越接近項(xiàng)目結(jié)束,所要付出的代價(jià)也就越來越大。
項(xiàng)目生命周期通常是產(chǎn)品生命周期的一部分,并且是被包含于產(chǎn)品生命周期的。這個(gè)我們?cè)谧钤绲哪且徽n中也看到過。
項(xiàng)目生命周期還是比較好理解的吧,畢竟這是我們第二次學(xué)習(xí)了。接下來的內(nèi)容其實(shí)也是我們之前講過的,而且是緊接著第一課的內(nèi)容,也就是 【信管1.2】信息系統(tǒng)開發(fā)方法https://mp.weixin.qq.com/s/HLD1haIjUs9g8CC9-El2Ag 中提到的內(nèi)容。我們?cè)趯W(xué)習(xí)與之對(duì)應(yīng)的信息系統(tǒng)開發(fā)方法時(shí)會(huì)同步回顧之前的內(nèi)容。以下內(nèi)容非常經(jīng)典,是所有軟件工程教材中必有的內(nèi)容,重點(diǎn)哦!
最最經(jīng)典的,不提他就沒法說軟件工程和軟件項(xiàng)目管理。重要到什么程度呢?后面所有要講的東西,只是翻來覆去對(duì)它的變形優(yōu)化,本質(zhì)上沒有特別的不同。
估計(jì)不少同學(xué)可能現(xiàn)在在公司就是這樣的開發(fā)模式吧。我們從可行性分析(計(jì)劃)開始,依次經(jīng)歷需求分析、軟件設(shè)計(jì)(概要設(shè)計(jì)、詳細(xì)設(shè)計(jì))、編碼(含單元測(cè)試)、測(cè)試、運(yùn)行維護(hù)等幾個(gè)階段,一步步地走下來。它對(duì)應(yīng)的就是我們之前學(xué)習(xí)過的 結(jié)構(gòu)化方法 。
也就是說它的特點(diǎn)和優(yōu)劣勢(shì)和 結(jié)構(gòu)化方法 是一樣的,只不過 結(jié)構(gòu)化方法 更偏方法論。而瀑布模型我們可以用更具體的項(xiàng)目化的術(shù)語總結(jié)一下:
優(yōu)點(diǎn):具有檢查點(diǎn);關(guān)注后續(xù)階段;在迭代中可以使用;模板化的開發(fā)可以實(shí)現(xiàn)共同指導(dǎo)。
缺點(diǎn):階段劃分相對(duì)固定,嚴(yán)格區(qū)分階段,并且包含大量的文檔;線性化的開發(fā),到末期才能看到結(jié)果;不適應(yīng)變化。
你可以再回顧一下我們?cè)趯W(xué)習(xí)結(jié)構(gòu)化方法時(shí)總結(jié)的優(yōu)缺點(diǎn),不管是簡答還是選擇題,這兩個(gè)概念有很多內(nèi)容都是相通的,也是可以互相拿分的。
如果你的項(xiàng)目很注重質(zhì)量,也就是交付的成果對(duì)質(zhì)量的要求非常高,那么 V模型 就是不可或缺的神器。
熟悉嗎?驚訝嗎?這不就是在 瀑布模型 的基礎(chǔ)上為對(duì)應(yīng)的階段增加了對(duì)應(yīng)的測(cè)試嘛。它的重要意義在于,非常明確地表明了測(cè)試過程中也是一樣存在不同的級(jí)別的,并且可以對(duì)應(yīng)到我們 瀑布模型 的開發(fā)流程中。V模型體現(xiàn)的主要思想就是開發(fā)和測(cè)試是同等重要的。相信右邊的這些測(cè)試是什么意思不用多解釋了吧。如果有不記得的小伙伴可以回去再復(fù)習(xí)一下哦。【信管1.10】軟件工程(四)軟件測(cè)試與質(zhì)量保證https://mp.weixin.qq.com/s/qxhpONT2d9HBRhEN3AbZBQ。
對(duì)了,我們?cè)谥暗恼n程中沒有提到過驗(yàn)收測(cè)試,其實(shí)驗(yàn)收測(cè)試就是最后在正式的線上環(huán)境中的演示,演示對(duì)象就是我們的客戶或者用戶。
剛剛說了如果看重質(zhì)量,那么你應(yīng)該選擇 V模型 ,而如果項(xiàng)目很注重風(fēng)險(xiǎn),有很大的風(fēng)險(xiǎn)隱患,那么你的最佳選擇就應(yīng)該是螺旋模型了。
這一圈一圈的看不懂吧?我第一次看的時(shí)候也是一臉懵的。其實(shí),你可以從左上角的 制訂計(jì)劃 看起,然后順時(shí)針依次看到 風(fēng)險(xiǎn)分析、 實(shí)施工程 和 客戶評(píng)估 。然后不停的這樣順時(shí)針旋轉(zhuǎn)進(jìn)行項(xiàng)目的開發(fā)。是的,我估計(jì)你猜到了,計(jì)劃、執(zhí)行、收尾,中間加了一個(gè) 風(fēng)險(xiǎn)分析 。
螺旋模型是一種深化軟件的過程模型,將迭代增量的方式與線性順序(瀑布)中控制的和系統(tǒng)化的方面結(jié)合起來,使得軟件增量版本的快速開發(fā)成為可能。更重要的是,它在其中增加的 風(fēng)險(xiǎn)分析 ,當(dāng)發(fā)現(xiàn)項(xiàng)目產(chǎn)品有問題的時(shí)候,我們可以馬上終止開發(fā)。
綜上所述,螺旋模型特別適用于復(fù)雜的、高風(fēng)險(xiǎn)、不成熟的項(xiàng)目。
迭代這個(gè)詞其實(shí)是在敏捷開發(fā)中發(fā)揚(yáng)光大的,在之前的敏捷學(xué)習(xí)中,我們知道迭代就是在一個(gè)固定的時(shí)間內(nèi)去交付某些有價(jià)值的成果。真正的迭代模型其實(shí)是早于敏捷的,是敏捷采用了這一模型。
一次迭代就可以看成是一次小瀑布,整個(gè)迭代開發(fā)過程就是不斷重復(fù)的小瀑布循環(huán)。
從這個(gè)表中,我們看出迭代模式也是包含不同階段的,初始、細(xì)化、構(gòu)造、移交 這四個(gè)階段中的小瀑布又有著不同的工作量占比。比如說,在初始階段,需求工作就是非常重要的部分,而在構(gòu)造階段實(shí)現(xiàn)就占了非常大的比重。
我們教材上的這個(gè)迭代模型的圖示,在網(wǎng)上被廣泛用于另一個(gè)經(jīng)典模式的解釋 統(tǒng)一過程RUP 。
統(tǒng)一過程(RUP/UP,Rational Unified Process)是一種以用例驅(qū)動(dòng)、以體系結(jié)構(gòu)為核心、迭代及增量的軟件過程模型,由UML方法和工具支持,廣泛應(yīng)用于各類面向?qū)ο箜?xiàng)目。它本身也是迭代模型的一種,可以歸類為迭代模型之下。
除此之外,螺旋模型,很明顯的也可以看出是迭代模型一類的模型。還有一種面向?qū)ο蟮牡P停Q為 噴泉模型 。
原型化模型的第一步就是創(chuàng)建一個(gè)快捷原型,能夠滿足項(xiàng)目干系人與未來的用戶可以與原型交互,再通過與相關(guān)干系人進(jìn)行充分的討論和分析,最終弄清楚當(dāng)前系統(tǒng)的需求,進(jìn)行了充分的了解之后,在原型的基礎(chǔ)上開發(fā)出用戶滿意的產(chǎn)品。
在螺旋模式中,我們就提到過原型化開發(fā),其實(shí)它就是為了彌補(bǔ)瀑布的變更代價(jià)高昂的缺點(diǎn)。在開發(fā)前,我們用最小的代價(jià)來產(chǎn)出一個(gè)原型用于確認(rèn)需求。
原型可以不用寫代碼,線框圖、低保真、高保真原型幾乎已經(jīng)成為了 產(chǎn)品經(jīng)理 的代表工具。使用 Axure 的高手做出來的動(dòng)態(tài)高保真原型是真的能夠達(dá)到以假亂真的地步的。
因此,原型模式其實(shí)現(xiàn)在已經(jīng)被 產(chǎn)品經(jīng)理 廣泛使用了。而我們技術(shù)可以快速實(shí)現(xiàn)的類似原型的一種開發(fā)形式為 MVP ,也就是敏捷中的 最小可行性產(chǎn)品。大家可以在之前的敏捷課程中回顧一下。
原型根據(jù)使用的結(jié)果可以分為兩類:
拋棄型原型:此類原型在系統(tǒng)真正實(shí)現(xiàn)以后就放棄不用了。
進(jìn)化型原型:此類原型的構(gòu)造從目標(biāo)系統(tǒng)的一個(gè)或幾個(gè)基本需求出發(fā),通過修改和追加功能的過程逐漸豐富,演化成最終系統(tǒng)。
敏捷開發(fā),額,之前已經(jīng)寫過太多了,有興趣的小伙伴去看看吧!
好吧,說下重點(diǎn),了解一下敏捷開發(fā)在這邊的重點(diǎn)關(guān)注的內(nèi)容就好了。它適合小團(tuán)隊(duì)、小規(guī)模的項(xiàng)目,小步快跑模式。其實(shí)實(shí)現(xiàn)的就是 增量迭代 的方式來進(jìn)行開發(fā)。
剩下的希望大家還是去看下我之前的 PMI-ACP 相關(guān)課程吧。
逆向工程,從技術(shù)的角度來說就是通過反編譯等手段,將一個(gè)軟件進(jìn)行解構(gòu)分析。比如說在十多年前,反編譯 Android 應(yīng)用來參考別人的代碼實(shí)現(xiàn)是非常常見的情況。
逆向工程包括 設(shè)計(jì)模型(實(shí)現(xiàn)級(jí))的逆向,也就是完全恢復(fù)之前的系統(tǒng);程序數(shù)據(jù)結(jié)構(gòu)信息(結(jié)構(gòu)級(jí))恢復(fù)數(shù)據(jù)及算法;對(duì)象模型、數(shù)據(jù)和控制流模型(功能級(jí))恢復(fù)設(shè)計(jì)內(nèi)容文檔 以及 UML狀態(tài)圖和部署圖(領(lǐng)域級(jí))恢復(fù)設(shè)計(jì)流。
逆向工程這一塊,了解一下就好啦。
項(xiàng)目管理從實(shí)現(xiàn)上來說,其實(shí)就是將知識(shí)、技能、工具和技術(shù)應(yīng)用于項(xiàng)目活動(dòng)之中,以滿足項(xiàng)目的要求。它是通過利用項(xiàng)目管理知識(shí)、技能、工具和技術(shù)的過程實(shí)現(xiàn)的,這些過程憑借每個(gè)過程的輸入條件創(chuàng)造出成果。也就是說,每個(gè)過程都會(huì)有自己的 輸入、輸出 以及相應(yīng)的 工具、技術(shù)、方法 。
過程就是一組為了完成一系列事先指定的產(chǎn)品、成果或服務(wù)而需執(zhí)行的互相聯(lián)系的行動(dòng)和活動(dòng)。在項(xiàng)目管理過程中,我們其實(shí)最主要關(guān)心的就是項(xiàng)目生命周期的那五大過程:啟動(dòng)、計(jì)劃、執(zhí)行、控制 和 收尾。之前也已經(jīng)說過了,這五方面的內(nèi)容構(gòu)成了 PMBOK 理論體系中的 五大過程組 。
啟動(dòng)過程組:定義并批準(zhǔn)項(xiàng)目或項(xiàng)目階段。
計(jì)劃過程組:定義和細(xì)化目標(biāo),并為實(shí)現(xiàn)項(xiàng)目需要達(dá)到的目標(biāo)和完成項(xiàng)目要解決的問題范圍而規(guī)劃必要的行動(dòng)路線。
執(zhí)行過程組:整合人員和其他資源,在項(xiàng)目的生命期或某個(gè)階段執(zhí)行項(xiàng)目管理計(jì)劃。
監(jiān)督與控制過程組:定期測(cè)量和監(jiān)控項(xiàng)目績效情況,識(shí)別與項(xiàng)目管理計(jì)劃的偏差,以便在必要時(shí)采取糾正措施,確保項(xiàng)目或階段目標(biāo)達(dá)成。
收尾過程組:正式驗(yàn)收產(chǎn)品、服務(wù)或工作成果,有序的結(jié)束項(xiàng)目或項(xiàng)目階段。
在這五個(gè)過程組中分別穿插著 PMBOK 知識(shí)體系中的十大知識(shí)域。知識(shí)域中的每個(gè)過程的成果一般會(huì)成為另一個(gè)過程的依據(jù)或成為項(xiàng)目的可交付的成果。如果是依據(jù)的話,那么也就是另一個(gè)過程的輸入。它們之間相互影響、相互作用。
上面這張圖相信學(xué)過 PMP 的同學(xué)簡直是再熟悉不過了。在 信管師 的考試中,和 PMP 是一樣的要求,這張圖中的表格,表格中的內(nèi)容,必須全部背下來。沒有為什么,考試考的就是它??!信管師考試下午的簡答、論文都和它有關(guān)。當(dāng)然,現(xiàn)在就要你背下來還是有點(diǎn)強(qiáng)人所難的,因?yàn)槟氵€不知道這一堆東西是干嘛的,因此,在我們講完所有的課程之后,請(qǐng)你回過頭來,把它背下來。這張表格的重要程度 10000% 。
如果你希望有 Excel 表格形式或者更清晰的版本,可以去搜索 PMBOK 第五版的電子書,因?yàn)槲覀?信管師 教程中項(xiàng)目管理知識(shí)體系是以 PMBOK 第五版為基礎(chǔ)的。當(dāng)然,你也可以使用我的小程序 PMP知識(shí)域 來進(jìn)行背誦。在這個(gè)小程序中,我們主要是背誦 PMP 的 ITTO (Input、Output、Tools and Technology) ,也就是每個(gè)過程的 輸入、輸出、工具和技術(shù) 這三部分內(nèi)容。信管師對(duì)這個(gè)要求還好,但我建議你最好也能背下來。
表格中的十大知識(shí)領(lǐng)域,用一句順口溜來說的話,可以記成:范圍時(shí)間成本質(zhì)量是核心,人力溝通風(fēng)險(xiǎn)采購干系人是輔助,整體管理來歸一。
項(xiàng)目的整個(gè)開發(fā)過程其實(shí)就是上圖所展示的,注意中間那個(gè)環(huán)。其實(shí)它就是根據(jù)大名鼎鼎的 戴明環(huán) 演變而來,也就是我們?cè)诿艚葜姓f過的 PDCA 循環(huán)。這四個(gè)字母分別代表的是 Plan、Do、Check、Act 。雖說它叫做 戴明環(huán) 但其實(shí)它是由 瓦特 提出,戴明 進(jìn)行完善的。更多具體的內(nèi)容大家可以自行查閱相關(guān)的資料文檔,或者去之前我們敏捷的課程中找找哦。
今天的重點(diǎn)內(nèi)容是什么呢?不用我說大家也能看出來,項(xiàng)目過程管理組和知識(shí)域的那張大表格,不過幸好,今天你還不需要去把它背下來,但它,是我們整個(gè)課程的超級(jí)重點(diǎn)。等你學(xué)完全部的項(xiàng)目管理知識(shí)后,再背它也會(huì)變得很容易。另外項(xiàng)目生命周期中的重點(diǎn)是信息系統(tǒng)項(xiàng)目典型生命周期這部分的內(nèi)容,也不需要完全的記憶,我們只要看到名字就能知道這些模型的特點(diǎn)就可以了。
參考資料:
《信息系統(tǒng)項(xiàng)目管理師教程》
《某機(jī)構(gòu)培訓(xùn)資料》
《項(xiàng)目管理知識(shí)體系指南 PMBOK》第六版
聯(lián)系客服