摘要:本文先介紹了使用傳統(tǒng)項(xiàng)目管理技術(shù)管理軟件開(kāi)發(fā)項(xiàng)目的方法,然后介紹了使用敏捷項(xiàng)目管理的初步實(shí)踐,通過(guò)兩者比較,提出了使用敏捷項(xiàng)目管理進(jìn)行軟件開(kāi)發(fā)的方法。
關(guān)鍵詞:敏捷開(kāi)發(fā)、極限編程、XP、項(xiàng)目管理
一、使用傳統(tǒng)項(xiàng)目管理技術(shù)管理軟件開(kāi)發(fā)項(xiàng)目的方法
按照《人月神話》的說(shuō)法,軟件開(kāi)發(fā)是個(gè)焦油坑,書店里關(guān)于軟件開(kāi)發(fā)管理的書籍林良滿目,各個(gè)軟件開(kāi)發(fā)組織也在嘗試和應(yīng)用不同的軟件開(kāi)發(fā)管理辦法,希望尋找到“軟件開(kāi)發(fā)的銀彈”。
在軟件開(kāi)發(fā)管理中,引入項(xiàng)目管理的辦法,已經(jīng)得到廣大軟件開(kāi)發(fā)管理人員的一致認(rèn)同,但對(duì)于具體實(shí)施何種項(xiàng)目管理辦法,各個(gè)軟件開(kāi)發(fā)組織都有不同的答案,更多的迷茫,因?yàn)橐氲捻?xiàng)目管理辦法不能從根本上解決軟件開(kāi)發(fā)項(xiàng)目面臨的進(jìn)度拖后、費(fèi)用超支等問(wèn)題,軟件開(kāi)發(fā)的銀彈到底在哪里?
以下是筆者對(duì)國(guó)內(nèi)軟件開(kāi)發(fā)組織不同項(xiàng)目管理成熟度的歸納和總結(jié),大概可以分如下幾類;1)小作坊、混沌形的,這樣的組織還處在接單求生存的階段,管理者還根本沒(méi)有項(xiàng)目的意識(shí),以滿足客戶需求、定制開(kāi)發(fā)和回款為第一要?jiǎng)?wù);2)嘗試按照項(xiàng)目管理的思路與方法管理軟件開(kāi)發(fā)項(xiàng)目,但發(fā)現(xiàn)推行困難,不得要領(lǐng),目前很多中小型的軟件開(kāi)發(fā)組織都處于這個(gè)階段;3)大型的軟件企業(yè),已經(jīng)通過(guò)CMM|ISO認(rèn)證、有足夠的資源做保障,實(shí)行規(guī)范的項(xiàng)目管理做法,如一些軟件外包工廠。
本文主要講述處于第二個(gè)層次的軟件開(kāi)發(fā)組織的項(xiàng)目管理問(wèn)題。軟件開(kāi)發(fā)項(xiàng)目管理涉及非常多的內(nèi)容,從軟件開(kāi)發(fā)本身的業(yè)務(wù)出發(fā),有需求管理、變更控制、配置管理、測(cè)試管理、系統(tǒng)分析與設(shè)計(jì)等;從項(xiàng)目管理的知識(shí)領(lǐng)域角度,有范圍管理、時(shí)間管理、溝通管理、人力資源管理等內(nèi)容。
按照傳統(tǒng)的經(jīng)典項(xiàng)目管理方法,通過(guò)一定的項(xiàng)目管理模板與IT工具,總結(jié)多個(gè)項(xiàng)目的經(jīng)驗(yàn),筆者總結(jié)有如下經(jīng)典步驟來(lái)完成項(xiàng)目管理的計(jì)劃編制與進(jìn)度控制過(guò)程:
計(jì)劃編制的經(jīng)典步驟:
①建立企業(yè)和項(xiàng)目資源庫(kù):這個(gè)是進(jìn)行項(xiàng)目管理的基礎(chǔ)工作。
②設(shè)置項(xiàng)目日歷、資源日歷。
③設(shè)置項(xiàng)目的主要里程碑點(diǎn)。
④在WBS(工作包)下列出工作清單(Task,Activity)。工作分解結(jié)構(gòu)(WBS)和作業(yè)是進(jìn)行項(xiàng)目范圍管理的途徑。
⑤對(duì)每個(gè)Task估計(jì)工期。
⑥連接每個(gè)Task間的邏輯關(guān)系(SS,F(xiàn)S,F(xiàn)S,F(xiàn)F,延時(shí))。
⑦加載完成每個(gè)Task所需要的資源和資源數(shù)量。
⑧進(jìn)度計(jì)算后,看開(kāi)完工里程碑是否符合合同或業(yè)主要求,看資源負(fù)荷是否過(guò)大。
⑨看進(jìn)度計(jì)劃是否需要調(diào)整。
⑩調(diào)整的方法為:壓縮關(guān)鍵路徑上Task的工期,多投入資源以縮短工期,分解較長(zhǎng)工期的作業(yè)。
⑾看調(diào)整后的進(jìn)度計(jì)劃是否合適。合適的話,則把第一份計(jì)劃,保存為目標(biāo)計(jì)劃(Baseline)。
⑿張榜發(fā)布第一版本計(jì)劃,通知項(xiàng)目干系人。
進(jìn)度控制的經(jīng)典步驟:
①確定進(jìn)度報(bào)告的周期,以周計(jì)還是以月計(jì)。
②下發(fā)第一個(gè)報(bào)告周期內(nèi)所有成員的Task清單(例如內(nèi)容、質(zhì)量要求、時(shí)間要求)。
③第一個(gè)報(bào)告周期結(jié)束時(shí),各個(gè)成員反饋?zhàn)约贺?fù)責(zé)的Task實(shí)際進(jìn)展(例如實(shí)際開(kāi)始時(shí)間、實(shí)際結(jié)束時(shí)間、完成百分比、尚需工期、本期的資源消耗數(shù)量、工作結(jié)果的提交)
④匯總各個(gè)成員的進(jìn)度報(bào)告,產(chǎn)生實(shí)際進(jìn)度計(jì)劃。
⑤把實(shí)際進(jìn)度計(jì)劃與目標(biāo)計(jì)劃(Baseline)做對(duì)比,監(jiān)控主要的里程碑點(diǎn)是否還符合業(yè)主或合同的要求,周例會(huì)上針對(duì)每個(gè)員工的任務(wù)完成情況作對(duì)比。
⑥如果不符合,則調(diào)整計(jì)劃,并存儲(chǔ)為新的目標(biāo)計(jì)劃。
⑦下發(fā)下一報(bào)告周期項(xiàng)目成員工作內(nèi)容清單(Task)。
⑧……循環(huán)往復(fù),直到項(xiàng)目結(jié)束。
計(jì)劃編制的其他技巧:
①團(tuán)隊(duì)成員依據(jù)責(zé)任分工,協(xié)同完成計(jì)劃編制工作。
②編制多層計(jì)劃(適用于大型的項(xiàng)目,項(xiàng)目群管理)。
③編制滾動(dòng)計(jì)劃(適用于工期很長(zhǎng)的項(xiàng)目)。
上述方法對(duì)于任何傳統(tǒng)項(xiàng)目或IT實(shí)施服務(wù)項(xiàng)目,都是適用的,而且可以達(dá)到很好的項(xiàng)目,也是實(shí)施項(xiàng)目管理的必由之路。筆者對(duì)于本事業(yè)部所有的IT服務(wù)項(xiàng)目,都是使用這個(gè)方法進(jìn)行管理,達(dá)到了項(xiàng)目進(jìn)度控制的目的。
但對(duì)于軟件開(kāi)發(fā)活動(dòng),由于其與傳統(tǒng)項(xiàng)目如工程建設(shè)項(xiàng)目的顯著區(qū)別,在應(yīng)用上述方法與步驟時(shí),往往達(dá)不到理想的效果,很多軟件開(kāi)發(fā)組織在推行這套管理思路與方法的時(shí)候,也遇到了很多困難。主要表現(xiàn)在:
1)傳統(tǒng)項(xiàng)目的時(shí)間估算可能存在歷史或經(jīng)驗(yàn)數(shù)據(jù),而軟件開(kāi)發(fā)的活動(dòng)工期估算卻是因人而異;
2)軟件開(kāi)發(fā)包含大量創(chuàng)新性活動(dòng),而這些創(chuàng)新性活動(dòng)很難確定合適的工期;
3)經(jīng)典的計(jì)劃編制方法中,強(qiáng)調(diào)作業(yè)間的依賴性(邏輯關(guān)系),以作業(yè)間邏輯關(guān)系來(lái)推算和安排項(xiàng)目進(jìn)度,而在實(shí)際的軟件開(kāi)發(fā)活動(dòng)中,意義不大;
4)新型的軟件開(kāi)發(fā)方法,如迭代開(kāi)發(fā),很難就單個(gè)作業(yè)(功能點(diǎn))反饋進(jìn)度,因?yàn)槟硞€(gè)功能開(kāi)發(fā)在周期內(nèi)是反復(fù)進(jìn)行的,進(jìn)度反饋可操作性差。
5)我們需要反思這樣一個(gè)問(wèn)題:“項(xiàng)目管理如何為一個(gè)項(xiàng)目增加價(jià)值”,因?yàn)楹芏嚅_(kāi)發(fā)人員把項(xiàng)目管理活動(dòng)如工時(shí)填報(bào)、進(jìn)度反饋?zhàn)鰹轭~外的負(fù)擔(dān),認(rèn)為項(xiàng)目管理師日常行政管理活動(dòng),不為項(xiàng)目增加價(jià)值;
反思傳統(tǒng)項(xiàng)目管理技術(shù)在軟件開(kāi)發(fā)活動(dòng)中的應(yīng)用,我們發(fā)現(xiàn):這樣的做法過(guò)于強(qiáng)調(diào)計(jì)劃管理和控制的自動(dòng)調(diào)節(jié)模式,而對(duì)項(xiàng)目管理應(yīng)該做的重點(diǎn)—實(shí)施—不夠重視。
針對(duì)軟件開(kāi)發(fā)活動(dòng),傳統(tǒng)計(jì)劃存在一定的問(wèn)題:如計(jì)劃的動(dòng)機(jī)通常來(lái)自于項(xiàng)目之外,即制定計(jì)劃的目的可能是為了滿足管理的要求,而不是基于需要完成的工作;制定計(jì)劃的動(dòng)機(jī)往往與控制欲望有關(guān),而不是與實(shí)際工作的實(shí)施需要有關(guān);制定計(jì)劃的人不參與實(shí)際工作,項(xiàng)目經(jīng)理為了控制目的而制定的、以任務(wù)為基礎(chǔ)的計(jì)劃與開(kāi)發(fā)人員的實(shí)際工作幾乎沒(méi)有任何聯(lián)系;站在項(xiàng)目管理的角度,計(jì)劃和控制成為了焦點(diǎn),而具體做事被看作是最不重要的,項(xiàng)目任務(wù)的合法化優(yōu)先于產(chǎn)生的結(jié)果。
上述問(wèn)題導(dǎo)致項(xiàng)目管理活動(dòng)與軟件開(kāi)發(fā)的具體活動(dòng)存在脫節(jié)和兩層皮的問(wèn)題,客觀上導(dǎo)致了管理費(fèi)的增加,而看不到項(xiàng)目管理對(duì)于項(xiàng)目的真實(shí)價(jià)值。
二、使用敏捷項(xiàng)目管理的初步實(shí)踐
在當(dāng)前的市場(chǎng)條件下,為商業(yè)競(jìng)爭(zhēng)的需要,開(kāi)發(fā)團(tuán)隊(duì)必須有以更快的速度開(kāi)發(fā)和交付質(zhì)量更好、更具客戶價(jià)值和創(chuàng)新性的產(chǎn)品。軟件開(kāi)發(fā)的方式須由預(yù)見(jiàn)性(以計(jì)劃為推動(dòng)力)向適應(yīng)性(對(duì)不確定性的探索)轉(zhuǎn)變,以滿足客戶對(duì)創(chuàng)新的不斷需求。與此相適應(yīng),項(xiàng)目管理也需要強(qiáng)調(diào)速度、機(jī)動(dòng)性和質(zhì)量,一種區(qū)別于傳統(tǒng)結(jié)構(gòu)化、改良或創(chuàng)新的項(xiàng)目方法,敏捷項(xiàng)目管理就誕生了。
敏捷項(xiàng)目管理的核心是敏捷軟件開(kāi)發(fā),與傳統(tǒng)軟件開(kāi)發(fā)模式相比,敏捷軟件開(kāi)發(fā)突出如下四點(diǎn):1)個(gè)體和交互勝過(guò)過(guò)程與工具;2)可以工作的軟件勝過(guò)面面俱到的文檔;3)客戶合作勝過(guò)合同談判;4)響應(yīng)變化勝過(guò)遵循計(jì)劃。
敏捷項(xiàng)目管理是側(cè)重于實(shí)施的模式,而不是側(cè)重于計(jì)劃和控制的模式。在敏捷項(xiàng)目管理中,項(xiàng)目經(jīng)理的首要任務(wù)是促進(jìn)產(chǎn)品構(gòu)想的構(gòu)思,并指導(dǎo)團(tuán)隊(duì)去實(shí)現(xiàn)該構(gòu)想,而不是制定計(jì)劃和進(jìn)度表、控制進(jìn)度,保證“計(jì)劃”得以實(shí)行。當(dāng)然敏捷項(xiàng)目管理不是反對(duì)計(jì)劃的模式。計(jì)劃(和控制)是敏捷項(xiàng)目管理的組成部分,只不過(guò)它不是重點(diǎn)。
在做好做實(shí)需求管理、變更管理、測(cè)試管理、配置管理、分析與設(shè)計(jì)管理等業(yè)務(wù)的基礎(chǔ)上,筆者在自己的團(tuán)隊(duì)中推行“以構(gòu)架為中心、用例驅(qū)動(dòng)、迭代開(kāi)發(fā)”的敏捷項(xiàng)目管理方法。試圖在對(duì)傳統(tǒng)項(xiàng)目管理方法反思的基礎(chǔ)上,提高項(xiàng)目管理活動(dòng)對(duì)于項(xiàng)目成功的真正價(jià)值。
“以構(gòu)架為中心、用例驅(qū)動(dòng)、迭代開(kāi)發(fā)”三句話來(lái)自IBM的RUP軟件開(kāi)發(fā)過(guò)程,是一種重量級(jí)的軟件開(kāi)發(fā)過(guò)程指南。需要有明確的責(zé)任分工和大量的過(guò)程文檔,顯然不適合中小型開(kāi)發(fā)團(tuán)隊(duì)。但卻道出了成功進(jìn)行軟件系統(tǒng)開(kāi)發(fā)的核心要素:缺乏良好的構(gòu)架,軟件可維護(hù)性差,質(zhì)量不行;必須是用例(需求)驅(qū)動(dòng);迭代開(kāi)發(fā)又稱增量開(kāi)發(fā),指構(gòu)建軟件的方式,整個(gè)生命周期依次由幾個(gè)迭代組成,每個(gè)迭代是自包含的迷你項(xiàng)目,他們由活動(dòng)組成,例如,需求分析、設(shè)計(jì)、編程和測(cè)試。每次迭代之后將產(chǎn)生一個(gè)迭代版本,這是一個(gè)部分完成的系統(tǒng),但它是穩(wěn)定的、完整的和被測(cè)試過(guò)的。
在流派上,敏捷包括Scrum、極限編程、統(tǒng)一過(guò)程(RUP)、Evo等方法。結(jié)合團(tuán)隊(duì)實(shí)際情況,綜合各種方法,進(jìn)行了如下一些嘗試性實(shí)踐:
1)轉(zhuǎn)變團(tuán)隊(duì)的溝通方式:過(guò)程文件盡可能減少,能不形成office文件的,盡量不需要。對(duì)于需要多人協(xié)作溝通的,盡量使用軟件系統(tǒng),如需求使用TRICHORD,數(shù)據(jù)庫(kù)設(shè)計(jì)使用PowerDesigner,Bug及變更使用Bugfree,配置管理使用SVN,測(cè)試使用TestDirector,項(xiàng)目管理系統(tǒng)使用PowerOn(主要管理實(shí)施文件、項(xiàng)目成本、人工時(shí))。給每個(gè)團(tuán)隊(duì)都配備白板等溝通工具。同時(shí)項(xiàng)目團(tuán)隊(duì)還有自己的門戶網(wǎng)站。項(xiàng)目成員對(duì)這些工具軟件的充分應(yīng)用,都是為了提高溝通的效率,減少溝通過(guò)程中的信息丟失,同時(shí)都是些必要的溝通,項(xiàng)目成員之間基于軟件系統(tǒng)的溝通過(guò)程,也就是業(yè)務(wù)的處理過(guò)程。
2)采用迭代的開(kāi)發(fā)方式:我們約定每次小版本的發(fā)布周期為1個(gè)月,每周進(jìn)行一次迭代,經(jīng)過(guò)4次迭代,小版本即可發(fā)布試用。每次小版本包括若干需要實(shí)現(xiàn)的Feature, 在每次迭代中,F(xiàn)eature細(xì)化為用戶Story,而對(duì)于每個(gè)Story的實(shí)現(xiàn),則再細(xì)化為具體的任務(wù)(Task)。這樣的劃分,與WBS的劃分基本一致,不同的是,傳統(tǒng)項(xiàng)目管理的Task很重要的一個(gè)屬性是時(shí)間,以及作業(yè)之間的邏輯關(guān)系,而迭代開(kāi)發(fā)中的這種劃分,卻是為了更好的完成任務(wù),Task使用Size度量工作量的大小,并且使用看板管理每次迭代的總體進(jìn)度。
3)變傳統(tǒng)的計(jì)劃編制與進(jìn)度控制模式為直觀的看板式管理辦法:
通過(guò)把Feature、Story、Task以看板的形式,直觀的體現(xiàn)在團(tuán)隊(duì)成員面前,團(tuán)隊(duì)成員可以更好的理解當(dāng)前任務(wù)及進(jìn)度,并且項(xiàng)目管理不自覺(jué)地已經(jīng)蘊(yùn)含在日?;顒?dòng)中,項(xiàng)目管理這支手看不不見(jiàn)了,但仍舊在起作用,團(tuán)隊(duì)的知識(shí)工作者則獲得了更好地工作環(huán)境,公司獲得了更高質(zhì)量、更及時(shí)的的交付產(chǎn)品。
三、總結(jié)
通過(guò)敏捷項(xiàng)目管理的初步實(shí)踐,團(tuán)隊(duì)的產(chǎn)品交付有了固定的頻率,每次迭代出來(lái)的都是可以直接交付客戶使用的版本,也防止了需求蔓延導(dǎo)致項(xiàng)目進(jìn)度拖后挫傷成員積極性等事情的發(fā)生,極大的提高了團(tuán)隊(duì)成員的積極性和生產(chǎn)效率。PowerOn各個(gè)小版本的交付周期平均縮短1.5個(gè)月,保證了公司為應(yīng)對(duì)市場(chǎng)變化而提高產(chǎn)品研發(fā)效率的戰(zhàn)略要求。
敏捷項(xiàng)目管理在傳統(tǒng)項(xiàng)目管理的基礎(chǔ)上,把項(xiàng)目管理的職能化“有形”為“無(wú)形”,適合知識(shí)型員工的、帶有創(chuàng)新性質(zhì)的中小型項(xiàng)目,為我們縮短產(chǎn)品交付周期、提高員工積極性,營(yíng)造良好的團(tuán)隊(duì)文化提供了一條新的途徑。
關(guān)鍵詞:敏捷開(kāi)發(fā)、極限編程、XP、項(xiàng)目管理
一、使用傳統(tǒng)項(xiàng)目管理技術(shù)管理軟件開(kāi)發(fā)項(xiàng)目的方法
按照《人月神話》的說(shuō)法,軟件開(kāi)發(fā)是個(gè)焦油坑,書店里關(guān)于軟件開(kāi)發(fā)管理的書籍林良滿目,各個(gè)軟件開(kāi)發(fā)組織也在嘗試和應(yīng)用不同的軟件開(kāi)發(fā)管理辦法,希望尋找到“軟件開(kāi)發(fā)的銀彈”。
在軟件開(kāi)發(fā)管理中,引入項(xiàng)目管理的辦法,已經(jīng)得到廣大軟件開(kāi)發(fā)管理人員的一致認(rèn)同,但對(duì)于具體實(shí)施何種項(xiàng)目管理辦法,各個(gè)軟件開(kāi)發(fā)組織都有不同的答案,更多的迷茫,因?yàn)橐氲捻?xiàng)目管理辦法不能從根本上解決軟件開(kāi)發(fā)項(xiàng)目面臨的進(jìn)度拖后、費(fèi)用超支等問(wèn)題,軟件開(kāi)發(fā)的銀彈到底在哪里?
以下是筆者對(duì)國(guó)內(nèi)軟件開(kāi)發(fā)組織不同項(xiàng)目管理成熟度的歸納和總結(jié),大概可以分如下幾類;1)小作坊、混沌形的,這樣的組織還處在接單求生存的階段,管理者還根本沒(méi)有項(xiàng)目的意識(shí),以滿足客戶需求、定制開(kāi)發(fā)和回款為第一要?jiǎng)?wù);2)嘗試按照項(xiàng)目管理的思路與方法管理軟件開(kāi)發(fā)項(xiàng)目,但發(fā)現(xiàn)推行困難,不得要領(lǐng),目前很多中小型的軟件開(kāi)發(fā)組織都處于這個(gè)階段;3)大型的軟件企業(yè),已經(jīng)通過(guò)CMM|ISO認(rèn)證、有足夠的資源做保障,實(shí)行規(guī)范的項(xiàng)目管理做法,如一些軟件外包工廠。
本文主要講述處于第二個(gè)層次的軟件開(kāi)發(fā)組織的項(xiàng)目管理問(wèn)題。軟件開(kāi)發(fā)項(xiàng)目管理涉及非常多的內(nèi)容,從軟件開(kāi)發(fā)本身的業(yè)務(wù)出發(fā),有需求管理、變更控制、配置管理、測(cè)試管理、系統(tǒng)分析與設(shè)計(jì)等;從項(xiàng)目管理的知識(shí)領(lǐng)域角度,有范圍管理、時(shí)間管理、溝通管理、人力資源管理等內(nèi)容。
按照傳統(tǒng)的經(jīng)典項(xiàng)目管理方法,通過(guò)一定的項(xiàng)目管理模板與IT工具,總結(jié)多個(gè)項(xiàng)目的經(jīng)驗(yàn),筆者總結(jié)有如下經(jīng)典步驟來(lái)完成項(xiàng)目管理的計(jì)劃編制與進(jìn)度控制過(guò)程:
計(jì)劃編制的經(jīng)典步驟:
①建立企業(yè)和項(xiàng)目資源庫(kù):這個(gè)是進(jìn)行項(xiàng)目管理的基礎(chǔ)工作。
②設(shè)置項(xiàng)目日歷、資源日歷。
③設(shè)置項(xiàng)目的主要里程碑點(diǎn)。
④在WBS(工作包)下列出工作清單(Task,Activity)。工作分解結(jié)構(gòu)(WBS)和作業(yè)是進(jìn)行項(xiàng)目范圍管理的途徑。
⑤對(duì)每個(gè)Task估計(jì)工期。
⑥連接每個(gè)Task間的邏輯關(guān)系(SS,F(xiàn)S,F(xiàn)S,F(xiàn)F,延時(shí))。
⑦加載完成每個(gè)Task所需要的資源和資源數(shù)量。
⑧進(jìn)度計(jì)算后,看開(kāi)完工里程碑是否符合合同或業(yè)主要求,看資源負(fù)荷是否過(guò)大。
⑨看進(jìn)度計(jì)劃是否需要調(diào)整。
⑩調(diào)整的方法為:壓縮關(guān)鍵路徑上Task的工期,多投入資源以縮短工期,分解較長(zhǎng)工期的作業(yè)。
⑾看調(diào)整后的進(jìn)度計(jì)劃是否合適。合適的話,則把第一份計(jì)劃,保存為目標(biāo)計(jì)劃(Baseline)。
⑿張榜發(fā)布第一版本計(jì)劃,通知項(xiàng)目干系人。
進(jìn)度控制的經(jīng)典步驟:
①確定進(jìn)度報(bào)告的周期,以周計(jì)還是以月計(jì)。
②下發(fā)第一個(gè)報(bào)告周期內(nèi)所有成員的Task清單(例如內(nèi)容、質(zhì)量要求、時(shí)間要求)。
③第一個(gè)報(bào)告周期結(jié)束時(shí),各個(gè)成員反饋?zhàn)约贺?fù)責(zé)的Task實(shí)際進(jìn)展(例如實(shí)際開(kāi)始時(shí)間、實(shí)際結(jié)束時(shí)間、完成百分比、尚需工期、本期的資源消耗數(shù)量、工作結(jié)果的提交)
④匯總各個(gè)成員的進(jìn)度報(bào)告,產(chǎn)生實(shí)際進(jìn)度計(jì)劃。
⑤把實(shí)際進(jìn)度計(jì)劃與目標(biāo)計(jì)劃(Baseline)做對(duì)比,監(jiān)控主要的里程碑點(diǎn)是否還符合業(yè)主或合同的要求,周例會(huì)上針對(duì)每個(gè)員工的任務(wù)完成情況作對(duì)比。
⑥如果不符合,則調(diào)整計(jì)劃,并存儲(chǔ)為新的目標(biāo)計(jì)劃。
⑦下發(fā)下一報(bào)告周期項(xiàng)目成員工作內(nèi)容清單(Task)。
⑧……循環(huán)往復(fù),直到項(xiàng)目結(jié)束。
計(jì)劃編制的其他技巧:
①團(tuán)隊(duì)成員依據(jù)責(zé)任分工,協(xié)同完成計(jì)劃編制工作。
②編制多層計(jì)劃(適用于大型的項(xiàng)目,項(xiàng)目群管理)。
③編制滾動(dòng)計(jì)劃(適用于工期很長(zhǎng)的項(xiàng)目)。
上述方法對(duì)于任何傳統(tǒng)項(xiàng)目或IT實(shí)施服務(wù)項(xiàng)目,都是適用的,而且可以達(dá)到很好的項(xiàng)目,也是實(shí)施項(xiàng)目管理的必由之路。筆者對(duì)于本事業(yè)部所有的IT服務(wù)項(xiàng)目,都是使用這個(gè)方法進(jìn)行管理,達(dá)到了項(xiàng)目進(jìn)度控制的目的。
但對(duì)于軟件開(kāi)發(fā)活動(dòng),由于其與傳統(tǒng)項(xiàng)目如工程建設(shè)項(xiàng)目的顯著區(qū)別,在應(yīng)用上述方法與步驟時(shí),往往達(dá)不到理想的效果,很多軟件開(kāi)發(fā)組織在推行這套管理思路與方法的時(shí)候,也遇到了很多困難。主要表現(xiàn)在:
1)傳統(tǒng)項(xiàng)目的時(shí)間估算可能存在歷史或經(jīng)驗(yàn)數(shù)據(jù),而軟件開(kāi)發(fā)的活動(dòng)工期估算卻是因人而異;
2)軟件開(kāi)發(fā)包含大量創(chuàng)新性活動(dòng),而這些創(chuàng)新性活動(dòng)很難確定合適的工期;
3)經(jīng)典的計(jì)劃編制方法中,強(qiáng)調(diào)作業(yè)間的依賴性(邏輯關(guān)系),以作業(yè)間邏輯關(guān)系來(lái)推算和安排項(xiàng)目進(jìn)度,而在實(shí)際的軟件開(kāi)發(fā)活動(dòng)中,意義不大;
4)新型的軟件開(kāi)發(fā)方法,如迭代開(kāi)發(fā),很難就單個(gè)作業(yè)(功能點(diǎn))反饋進(jìn)度,因?yàn)槟硞€(gè)功能開(kāi)發(fā)在周期內(nèi)是反復(fù)進(jìn)行的,進(jìn)度反饋可操作性差。
5)我們需要反思這樣一個(gè)問(wèn)題:“項(xiàng)目管理如何為一個(gè)項(xiàng)目增加價(jià)值”,因?yàn)楹芏嚅_(kāi)發(fā)人員把項(xiàng)目管理活動(dòng)如工時(shí)填報(bào)、進(jìn)度反饋?zhàn)鰹轭~外的負(fù)擔(dān),認(rèn)為項(xiàng)目管理師日常行政管理活動(dòng),不為項(xiàng)目增加價(jià)值;
反思傳統(tǒng)項(xiàng)目管理技術(shù)在軟件開(kāi)發(fā)活動(dòng)中的應(yīng)用,我們發(fā)現(xiàn):這樣的做法過(guò)于強(qiáng)調(diào)計(jì)劃管理和控制的自動(dòng)調(diào)節(jié)模式,而對(duì)項(xiàng)目管理應(yīng)該做的重點(diǎn)—實(shí)施—不夠重視。
針對(duì)軟件開(kāi)發(fā)活動(dòng),傳統(tǒng)計(jì)劃存在一定的問(wèn)題:如計(jì)劃的動(dòng)機(jī)通常來(lái)自于項(xiàng)目之外,即制定計(jì)劃的目的可能是為了滿足管理的要求,而不是基于需要完成的工作;制定計(jì)劃的動(dòng)機(jī)往往與控制欲望有關(guān),而不是與實(shí)際工作的實(shí)施需要有關(guān);制定計(jì)劃的人不參與實(shí)際工作,項(xiàng)目經(jīng)理為了控制目的而制定的、以任務(wù)為基礎(chǔ)的計(jì)劃與開(kāi)發(fā)人員的實(shí)際工作幾乎沒(méi)有任何聯(lián)系;站在項(xiàng)目管理的角度,計(jì)劃和控制成為了焦點(diǎn),而具體做事被看作是最不重要的,項(xiàng)目任務(wù)的合法化優(yōu)先于產(chǎn)生的結(jié)果。
上述問(wèn)題導(dǎo)致項(xiàng)目管理活動(dòng)與軟件開(kāi)發(fā)的具體活動(dòng)存在脫節(jié)和兩層皮的問(wèn)題,客觀上導(dǎo)致了管理費(fèi)的增加,而看不到項(xiàng)目管理對(duì)于項(xiàng)目的真實(shí)價(jià)值。
二、使用敏捷項(xiàng)目管理的初步實(shí)踐
在當(dāng)前的市場(chǎng)條件下,為商業(yè)競(jìng)爭(zhēng)的需要,開(kāi)發(fā)團(tuán)隊(duì)必須有以更快的速度開(kāi)發(fā)和交付質(zhì)量更好、更具客戶價(jià)值和創(chuàng)新性的產(chǎn)品。軟件開(kāi)發(fā)的方式須由預(yù)見(jiàn)性(以計(jì)劃為推動(dòng)力)向適應(yīng)性(對(duì)不確定性的探索)轉(zhuǎn)變,以滿足客戶對(duì)創(chuàng)新的不斷需求。與此相適應(yīng),項(xiàng)目管理也需要強(qiáng)調(diào)速度、機(jī)動(dòng)性和質(zhì)量,一種區(qū)別于傳統(tǒng)結(jié)構(gòu)化、改良或創(chuàng)新的項(xiàng)目方法,敏捷項(xiàng)目管理就誕生了。
敏捷項(xiàng)目管理的核心是敏捷軟件開(kāi)發(fā),與傳統(tǒng)軟件開(kāi)發(fā)模式相比,敏捷軟件開(kāi)發(fā)突出如下四點(diǎn):1)個(gè)體和交互勝過(guò)過(guò)程與工具;2)可以工作的軟件勝過(guò)面面俱到的文檔;3)客戶合作勝過(guò)合同談判;4)響應(yīng)變化勝過(guò)遵循計(jì)劃。
敏捷項(xiàng)目管理是側(cè)重于實(shí)施的模式,而不是側(cè)重于計(jì)劃和控制的模式。在敏捷項(xiàng)目管理中,項(xiàng)目經(jīng)理的首要任務(wù)是促進(jìn)產(chǎn)品構(gòu)想的構(gòu)思,并指導(dǎo)團(tuán)隊(duì)去實(shí)現(xiàn)該構(gòu)想,而不是制定計(jì)劃和進(jìn)度表、控制進(jìn)度,保證“計(jì)劃”得以實(shí)行。當(dāng)然敏捷項(xiàng)目管理不是反對(duì)計(jì)劃的模式。計(jì)劃(和控制)是敏捷項(xiàng)目管理的組成部分,只不過(guò)它不是重點(diǎn)。
在做好做實(shí)需求管理、變更管理、測(cè)試管理、配置管理、分析與設(shè)計(jì)管理等業(yè)務(wù)的基礎(chǔ)上,筆者在自己的團(tuán)隊(duì)中推行“以構(gòu)架為中心、用例驅(qū)動(dòng)、迭代開(kāi)發(fā)”的敏捷項(xiàng)目管理方法。試圖在對(duì)傳統(tǒng)項(xiàng)目管理方法反思的基礎(chǔ)上,提高項(xiàng)目管理活動(dòng)對(duì)于項(xiàng)目成功的真正價(jià)值。
“以構(gòu)架為中心、用例驅(qū)動(dòng)、迭代開(kāi)發(fā)”三句話來(lái)自IBM的RUP軟件開(kāi)發(fā)過(guò)程,是一種重量級(jí)的軟件開(kāi)發(fā)過(guò)程指南。需要有明確的責(zé)任分工和大量的過(guò)程文檔,顯然不適合中小型開(kāi)發(fā)團(tuán)隊(duì)。但卻道出了成功進(jìn)行軟件系統(tǒng)開(kāi)發(fā)的核心要素:缺乏良好的構(gòu)架,軟件可維護(hù)性差,質(zhì)量不行;必須是用例(需求)驅(qū)動(dòng);迭代開(kāi)發(fā)又稱增量開(kāi)發(fā),指構(gòu)建軟件的方式,整個(gè)生命周期依次由幾個(gè)迭代組成,每個(gè)迭代是自包含的迷你項(xiàng)目,他們由活動(dòng)組成,例如,需求分析、設(shè)計(jì)、編程和測(cè)試。每次迭代之后將產(chǎn)生一個(gè)迭代版本,這是一個(gè)部分完成的系統(tǒng),但它是穩(wěn)定的、完整的和被測(cè)試過(guò)的。
在流派上,敏捷包括Scrum、極限編程、統(tǒng)一過(guò)程(RUP)、Evo等方法。結(jié)合團(tuán)隊(duì)實(shí)際情況,綜合各種方法,進(jìn)行了如下一些嘗試性實(shí)踐:
1)轉(zhuǎn)變團(tuán)隊(duì)的溝通方式:過(guò)程文件盡可能減少,能不形成office文件的,盡量不需要。對(duì)于需要多人協(xié)作溝通的,盡量使用軟件系統(tǒng),如需求使用TRICHORD,數(shù)據(jù)庫(kù)設(shè)計(jì)使用PowerDesigner,Bug及變更使用Bugfree,配置管理使用SVN,測(cè)試使用TestDirector,項(xiàng)目管理系統(tǒng)使用PowerOn(主要管理實(shí)施文件、項(xiàng)目成本、人工時(shí))。給每個(gè)團(tuán)隊(duì)都配備白板等溝通工具。同時(shí)項(xiàng)目團(tuán)隊(duì)還有自己的門戶網(wǎng)站。項(xiàng)目成員對(duì)這些工具軟件的充分應(yīng)用,都是為了提高溝通的效率,減少溝通過(guò)程中的信息丟失,同時(shí)都是些必要的溝通,項(xiàng)目成員之間基于軟件系統(tǒng)的溝通過(guò)程,也就是業(yè)務(wù)的處理過(guò)程。
2)采用迭代的開(kāi)發(fā)方式:我們約定每次小版本的發(fā)布周期為1個(gè)月,每周進(jìn)行一次迭代,經(jīng)過(guò)4次迭代,小版本即可發(fā)布試用。每次小版本包括若干需要實(shí)現(xiàn)的Feature, 在每次迭代中,F(xiàn)eature細(xì)化為用戶Story,而對(duì)于每個(gè)Story的實(shí)現(xiàn),則再細(xì)化為具體的任務(wù)(Task)。這樣的劃分,與WBS的劃分基本一致,不同的是,傳統(tǒng)項(xiàng)目管理的Task很重要的一個(gè)屬性是時(shí)間,以及作業(yè)之間的邏輯關(guān)系,而迭代開(kāi)發(fā)中的這種劃分,卻是為了更好的完成任務(wù),Task使用Size度量工作量的大小,并且使用看板管理每次迭代的總體進(jìn)度。
3)變傳統(tǒng)的計(jì)劃編制與進(jìn)度控制模式為直觀的看板式管理辦法:
通過(guò)把Feature、Story、Task以看板的形式,直觀的體現(xiàn)在團(tuán)隊(duì)成員面前,團(tuán)隊(duì)成員可以更好的理解當(dāng)前任務(wù)及進(jìn)度,并且項(xiàng)目管理不自覺(jué)地已經(jīng)蘊(yùn)含在日?;顒?dòng)中,項(xiàng)目管理這支手看不不見(jiàn)了,但仍舊在起作用,團(tuán)隊(duì)的知識(shí)工作者則獲得了更好地工作環(huán)境,公司獲得了更高質(zhì)量、更及時(shí)的的交付產(chǎn)品。
三、總結(jié)
通過(guò)敏捷項(xiàng)目管理的初步實(shí)踐,團(tuán)隊(duì)的產(chǎn)品交付有了固定的頻率,每次迭代出來(lái)的都是可以直接交付客戶使用的版本,也防止了需求蔓延導(dǎo)致項(xiàng)目進(jìn)度拖后挫傷成員積極性等事情的發(fā)生,極大的提高了團(tuán)隊(duì)成員的積極性和生產(chǎn)效率。PowerOn各個(gè)小版本的交付周期平均縮短1.5個(gè)月,保證了公司為應(yīng)對(duì)市場(chǎng)變化而提高產(chǎn)品研發(fā)效率的戰(zhàn)略要求。
敏捷項(xiàng)目管理在傳統(tǒng)項(xiàng)目管理的基礎(chǔ)上,把項(xiàng)目管理的職能化“有形”為“無(wú)形”,適合知識(shí)型員工的、帶有創(chuàng)新性質(zhì)的中小型項(xiàng)目,為我們縮短產(chǎn)品交付周期、提高員工積極性,營(yíng)造良好的團(tuán)隊(duì)文化提供了一條新的途徑。

