2005/3/3 22:38:26?|? 3899次閱讀?|? 來(lái)源:原創(chuàng)?? 【已有0條評(píng)論】發(fā)表評(píng)論
軟件項(xiàng)目是發(fā)現(xiàn)與發(fā)明的過(guò)程。發(fā)現(xiàn)與發(fā)明融合為一的最佳方式是透過(guò)“階段性完成”的做法,將產(chǎn)品的功能分階段完成,而最重要的功能最早完成。當(dāng)項(xiàng)目進(jìn)行時(shí),許多活動(dòng)交互重疊,把產(chǎn)品有抽象概念轉(zhuǎn)化成具體成果。項(xiàng)目進(jìn)行中的源代碼傾向以S形曲線而非線性成長(zhǎng),而大部分的程序代碼都是在項(xiàng)目中間第三部分完成的。追蹤程序代碼的成長(zhǎng)提供對(duì)項(xiàng)目狀態(tài)的洞悉力。執(zhí)行良好的項(xiàng)目也可以由一名上層主管選擇最有效的一組來(lái)進(jìn)行追蹤。 本文描述一個(gè)成功的項(xiàng)目由兩萬(wàn)尺的高空鳥(niǎo)瞰時(shí)的樣子。它提供了通過(guò)不同的角度透視項(xiàng)目流程、人員、進(jìn)展活動(dòng)、程序代碼成長(zhǎng)與主要成效。 思考階段 在討論軟件項(xiàng)目依照規(guī)劃階段分期完成的方法之前,我認(rèn)為先對(duì)項(xiàng)目整個(gè)過(guò)程進(jìn)行通盤了解會(huì)有用處。 軟件項(xiàng)目如圖5-1,被切分成三個(gè)概念階段。在項(xiàng)目初期,焦點(diǎn)擺在“發(fā)現(xiàn)”,特別是發(fā)現(xiàn)使用者的真正需要。透過(guò)技術(shù)性調(diào)查、與使用者訪談和建立接口雛形,把不確定性的概念轉(zhuǎn)換成確定的觀念,這就是第一階段的特色。 在項(xiàng)目進(jìn)行中期,焦點(diǎn)移到了“發(fā)明”上。往大方向看,開(kāi)發(fā)人員要發(fā)明軟件構(gòu)架與設(shè)計(jì)方式。細(xì)節(jié)的地方,如每個(gè)函數(shù)式或?qū)ο箢悇e也不能忽略。 如同發(fā)現(xiàn)階段般,發(fā)明階段的特征在于將不確定的概念轉(zhuǎn)換成確定的觀念。如果還有別的特征,就是發(fā)明階段的不確定性要高得多。在發(fā)現(xiàn)階段,開(kāi)發(fā)人員可以確定答案“就在”某個(gè)地方。可是在發(fā)明階段,就不能以此類推。 在項(xiàng)目的最后部分,焦點(diǎn)又轉(zhuǎn)移了,這次擺在實(shí)作上。不同于發(fā)現(xiàn)與發(fā)明階段的是,實(shí)作階段的不確定性少多了,故可發(fā)掘出許多已確定的觀念并可實(shí)現(xiàn)成具體成果。 如圖5-1所描述的,發(fā)現(xiàn)、發(fā)明與實(shí)作在軟件項(xiàng)目中各自以一定程度進(jìn)行著。太嚴(yán)格分段規(guī)劃反而不能有效運(yùn)作,好的項(xiàng)目計(jì)劃必須讓發(fā)現(xiàn)、發(fā)明與實(shí)作一起出現(xiàn)。 項(xiàng)目流程 在某些軟件開(kāi)發(fā)方式中,項(xiàng)目團(tuán)隊(duì)幾乎是秘密完成開(kāi)發(fā)的大部分工作。技術(shù)性項(xiàng)目常提供如“完成90%”之類的狀態(tài)報(bào)告。對(duì)顧客來(lái)說(shuō),如果完成項(xiàng)目的90%就花去了90%的時(shí)間,那剩下的10%可能會(huì)花去另一個(gè)“90%”的時(shí)間。 本文提供的項(xiàng)目規(guī)劃依循著“階段性完成”的輪廓進(jìn)行。由于她將項(xiàng)目中開(kāi)發(fā)的軟件分階段完成,而不是到了項(xiàng)目結(jié)尾才一次完成,這種方式稱做“階段性完成”。圖5-2說(shuō)明了這種方式。 如你從這圖所看到的,階段性完成強(qiáng)調(diào)項(xiàng)目規(guī)劃與風(fēng)險(xiǎn)降低。項(xiàng)目團(tuán)隊(duì)先發(fā)展軟件概念,分析匯集需求;再完成構(gòu)架設(shè)計(jì)。這些工作透過(guò)積極的風(fēng)險(xiǎn)管理與精心規(guī)劃,朝著消除風(fēng)險(xiǎn)的目標(biāo)前進(jìn)。 在每個(gè)實(shí)作階段中,項(xiàng)目團(tuán)隊(duì)進(jìn)行細(xì)節(jié)設(shè)計(jì)、程序?qū)懽?、除錯(cuò)與測(cè)試(以階段1到n表示),在每個(gè)階段都建立出可能推出的產(chǎn)品。這三個(gè)階段也描繪在圖中,不過(guò)你可能想隨心所欲的操控項(xiàng)目的完成,有些項(xiàng)目可以只用三或四個(gè)階段,而有些則有更充裕時(shí)間,使得每個(gè)星期都能推出新的軟件。 分階段完成的好處 階段性完成提供下述5種好處。 1.關(guān)鍵功能更早出現(xiàn)。 階段性完成的項(xiàng)目中各階段一般都先規(guī)劃產(chǎn)品最重要的功能。如果使用者期望特定功能,就表現(xiàn)出他們不想等到產(chǎn)品完工了才看到這些東西,他們只想在第一階段就先睹為快。比起一些倉(cāng)促完工的冒失項(xiàng)目,階段性完成對(duì)一個(gè)有著時(shí)間壓力的項(xiàng)目可說(shuō)是個(gè)寶貴的做法。 早期降低風(fēng)險(xiǎn)這種做法強(qiáng)調(diào)項(xiàng)目的規(guī)劃與風(fēng)險(xiǎn)管理。將產(chǎn)品分階段完成并隨時(shí)整合起來(lái)的方式,可降低項(xiàng)目末期才整合失敗的技術(shù)性風(fēng)險(xiǎn)。同時(shí)將可用的軟件盡早提供給一般使用者參與,借著產(chǎn)生具體進(jìn)展成效來(lái)降低管理風(fēng)險(xiǎn)。 2.早期預(yù)警問(wèn)題 當(dāng)你及早計(jì)劃各完成版本的軟件時(shí),你就會(huì)提早得到明白的進(jìn)度報(bào)告。無(wú)論各個(gè)版本是否如期推出,工作質(zhì)量可明顯從推出版本看出。當(dāng)開(kāi)發(fā)團(tuán)隊(duì)碰上了麻煩,你也會(huì)先知先覺(jué),不必等到項(xiàng)目“完成90%”了還摸不清頭緒。 3.減少報(bào)告負(fù)擔(dān) 階段性完成也提供一個(gè)長(zhǎng)久有效辦法來(lái)消除開(kāi)發(fā)人員花在建立臨時(shí)性進(jìn)度報(bào)告和傳統(tǒng)的固定性進(jìn)度報(bào)告。 ============================================= 產(chǎn)品的動(dòng)態(tài)比任何書(shū)面報(bào)告更能精確反映項(xiàng)目狀態(tài)。 ============================================= 階段性完成能提供更多選擇。項(xiàng)目團(tuán)隊(duì)在每個(gè)階段末尾評(píng)估可推出產(chǎn)品并不代表產(chǎn)品非推出不可,不過(guò)如果真的有必要,產(chǎn)品可以隨時(shí)推出,而且將產(chǎn)品完成到待命狀態(tài),所需的功能應(yīng)有盡有。如果你沒(méi)采用階段性完成的做法,你就沒(méi)有這種選擇。 4.階段性完成可降低估計(jì)失誤 階段性完成可通過(guò)對(duì)推出產(chǎn)品各部分功能逐步完成來(lái)避開(kāi)估計(jì)錯(cuò)誤的問(wèn)題。與一次對(duì)整個(gè)項(xiàng)目做出大型評(píng)估相比,項(xiàng)目團(tuán)隊(duì)可以靈活地分別對(duì)幾個(gè)小版本做小型評(píng)估。在每個(gè)版本中,項(xiàng)目團(tuán)隊(duì)可以從評(píng)估中吸取教訓(xùn),重新校正做法,并改善項(xiàng)目現(xiàn)況,使項(xiàng)目的未來(lái)預(yù)估更為精確。 5.階段性完成均衡了彈性與效率 分階段完成產(chǎn)品讓項(xiàng)目團(tuán)隊(duì)有精確的時(shí)間來(lái)決定軟件中該更改哪些東西,這些時(shí)間來(lái)自階段銜接的空擋。在空擋內(nèi)決定軟件規(guī)格的變更,讓開(kāi)發(fā)團(tuán)隊(duì)不必一直考慮軟件改變,卻能保證讓項(xiàng)目不致遺漏該考慮變更的東西。 階段性完成的代價(jià) 從前述所列的好處中,階段性完成的做法聽(tīng)來(lái)似乎毫無(wú)缺點(diǎn),其實(shí)則不然。階段性完成的做法要付出相當(dāng)代價(jià)。因?yàn)轫?xiàng)目團(tuán)隊(duì)需要時(shí)間準(zhǔn)備各種可推出的軟件,在每個(gè)階段重復(fù)測(cè)試已經(jīng)測(cè)試過(guò)的功能,推出軟件前進(jìn)行相關(guān)的版本管制工作,提供試用的不同版本軟件沒(méi)預(yù)料到的問(wèn)題的解決方案(如果階段性完成的軟件真的拿出去給人使用),還有規(guī)劃階段性發(fā)行這種做法的好壞等等,都會(huì)提高項(xiàng)目的負(fù)擔(dān)。 其中的某些代價(jià)并不真的是額外多出來(lái)的它們不過(guò)是讓本來(lái)隱藏在項(xiàng)目末尾的一些成本提早顯現(xiàn)出來(lái)而已,找出缺陷并修正錯(cuò)誤就是這類的隱藏成本。階段性完成項(xiàng)目的有些工作人員在一開(kāi)始會(huì)抱怨他們把時(shí)間都花在修正錯(cuò)誤上。實(shí)際上他們是在修理早晚都得修理的東西,而且這些在項(xiàng)目中先找出來(lái)的錯(cuò)誤愈早修正,花費(fèi)的成本就愈低廉。 其他代價(jià)也許是多余的,如對(duì)外發(fā)出很多不同版本的軟件,會(huì)增加項(xiàng)目的整體負(fù)擔(dān)和總成本。 =============================================================== 階段性完成并不是萬(wàn)靈丹,不過(guò)總合起來(lái),那些額外的負(fù)擔(dān)相對(duì)于明顯 改善了的狀態(tài)、質(zhì)量與時(shí)間的匹配、精確預(yù)估與降低風(fēng)險(xiǎn)等來(lái)說(shuō),不過(guò) 是一點(diǎn)小小的付出而已。 =============================================================== 規(guī)劃階段 圖5-2的階段性完成流程圖說(shuō)明項(xiàng)目早期活動(dòng),如需求分析與構(gòu)架設(shè)計(jì)都是連續(xù)不斷進(jìn)行的。在投入構(gòu)架設(shè)計(jì)的階段之前先完成大部分需求分析工作,以及在進(jìn)行細(xì)節(jié)設(shè)計(jì)與實(shí)作之前先定好整體構(gòu)架,都是重要的事情。不過(guò)實(shí)際上,這些活動(dòng)都是在同時(shí)間內(nèi)重疊進(jìn)行的,這是不可避免而且必然的事情。圖5-3所描繪的,就是這種重疊進(jìn)行的情形。 從本圖中,建立項(xiàng)目團(tuán)隊(duì)?wèi)?yīng)該在開(kāi)始構(gòu)架設(shè)計(jì)前先做好大部分需求開(kāi)發(fā)的工作。在開(kāi)始細(xì)節(jié)設(shè)計(jì)以前,應(yīng)該先完成大致的構(gòu)架工作。這么做,是由于錯(cuò)誤修正的成本會(huì)隨著時(shí)間的延后而提高。80/20比例的規(guī)則可以應(yīng)用到這上頭來(lái):在開(kāi)始進(jìn)行構(gòu)架工作前,先完成80%的需求開(kāi)發(fā)工作,而在開(kāi)始細(xì)節(jié)設(shè)計(jì)以前,先完成80%的構(gòu)架設(shè)計(jì)。80%并不是隨便選定的比例,知識(shí)基于一條良好的經(jīng)驗(yàn)法則:這樣可以讓團(tuán)隊(duì)在明白表示不可能一次把這些工作完全做好時(shí),還能在項(xiàng)目初期先滿足大部分需求。 細(xì)節(jié)設(shè)計(jì)、程序?qū)懽?、整合與測(cè)試差不多在同一時(shí)間內(nèi)完成,因?yàn)殡A段性完成的做法會(huì)在各階段中產(chǎn)生設(shè)計(jì)、實(shí)作、整合與測(cè)試的小循環(huán)。使用文件的撰寫會(huì)提早進(jìn)行,因?yàn)槭褂谜咝枨笙缺婚_(kāi)發(fā)好了(這在后面的文章會(huì)提到),而且這些工作會(huì)持續(xù)進(jìn)行,管理與規(guī)劃也會(huì)持續(xù)處理。這樣的復(fù)雜性也許會(huì)讓人以為這種做法只適用于大型項(xiàng)目,不過(guò)實(shí)際上幾乎任何項(xiàng)目都可以應(yīng)用這些法則,只是程度上多寡的問(wèn)題而已。 匯聚人力 從人力觀點(diǎn)來(lái)看,在階段性完成項(xiàng)目中應(yīng)有兩個(gè)階段。在第一階段中,項(xiàng)目還在醞釀中,團(tuán)隊(duì)正在開(kāi)發(fā)需求和建構(gòu)構(gòu)架。在這階段的整體努力程度一般被認(rèn)為要低于主要實(shí)作階段。前述項(xiàng)目完成10%~20%后決定要不要繼續(xù)進(jìn)行下去就是在這階段中處理的。這一階段的工作人員應(yīng)該是技巧高超的資深開(kāi)發(fā)人員。 第二階段是階段性完成時(shí)期。在這階段中,項(xiàng)目團(tuán)隊(duì)處理細(xì)節(jié)設(shè)計(jì)、軟件構(gòu)件與測(cè)試。技巧高超的資深開(kāi)發(fā)人員在這一階段也扮演重要地位,不過(guò)項(xiàng)目也需要質(zhì)量保證人員、技術(shù)文件寫作人員和資歷較淺的軟件開(kāi)發(fā)人員。 在項(xiàng)目后半50%里,你可以看出質(zhì)量保證、細(xì)節(jié)設(shè)計(jì)、程序?qū)懽鞯娜藛T要求保持相對(duì)順暢。在一次做完所有事情的做法中,項(xiàng)目通常得花費(fèi)更多人力,而且到了項(xiàng)目末期可用人力會(huì)變少。階段性完成的餓項(xiàng)目則在大部分時(shí)間里有著較流暢的人力比例,使資金流向、雇用、訓(xùn)練、測(cè)試和運(yùn)算資源的使用跟著流暢起來(lái)。 圖5-3中所描繪的動(dòng)態(tài)并沒(méi)有真正顯示出各項(xiàng)活動(dòng)花費(fèi)了多少時(shí)間,圖5-4說(shuō)明了一個(gè)項(xiàng)目中的這些活動(dòng)所需時(shí)間的分布情形。 注意,圖5-4的“發(fā)行”活動(dòng)不像在圖5-3中是分開(kāi)列舉的。它包含取得所有項(xiàng)目資助者同意發(fā)行的時(shí)間,建立項(xiàng)目的最后記錄,建立項(xiàng)目的歷程報(bào)告和其他項(xiàng)目結(jié)尾的活動(dòng)。 圖表中的具體數(shù)據(jù)都是依照經(jīng)驗(yàn)法則得來(lái)的,所以不是很嚴(yán)格的數(shù)字。不過(guò)它們還是提供了一些實(shí)際的概念。需求開(kāi)發(fā)跟構(gòu)架的上游活動(dòng)消耗了項(xiàng)目努力中相對(duì)較少的部分,而下游的構(gòu)建跟系統(tǒng)測(cè)試活動(dòng)則消耗了太多的時(shí)間和精力。上游活動(dòng)對(duì)下游活動(dòng)起著極大的杠桿作用,兩者都需兼顧是很重要的。 圖5-5補(bǔ)足了上圖,說(shuō)明項(xiàng)目活動(dòng)間的典型時(shí)間分布圖。 從這些圖表中得到一個(gè)很重要的概念是,項(xiàng)目中進(jìn)行某一活動(dòng)的時(shí)間比例不會(huì)跟耗用的精力成正比。需求開(kāi)發(fā)工作一般會(huì)耗去項(xiàng)目12%的時(shí)間,可是只占用6%的努力。由于上游活動(dòng)比較抽象而需要更多的深思熟慮,所以必須以較慢的步調(diào)進(jìn)行。 程序代碼增長(zhǎng)曲線 前面的圖表應(yīng)該已經(jīng)說(shuō)明在項(xiàng)目初期有許多不會(huì)產(chǎn)生任何程序代碼的工作要做。其實(shí)項(xiàng)目的頭三分之一是用來(lái)詳細(xì)了解需求與發(fā)展高質(zhì)量的構(gòu)架方式,好讓項(xiàng)目團(tuán)隊(duì)能夠好好檢測(cè)項(xiàng)目規(guī)格,然后一次把產(chǎn)品做好,程序代碼可能會(huì)教慢寫出來(lái)。項(xiàng)目中間的三分之一主要在建立項(xiàng)目軟件上,在這一階段程序碼會(huì)快速產(chǎn)生出來(lái)。項(xiàng)目的后面三分之一,則將焦點(diǎn)擺在檢查前面階段寫出來(lái)的程序代碼是否上得了臺(tái)面。這一階段著重錯(cuò)誤修正和根本程序代碼的更動(dòng)。如同開(kāi)頭三分之一,程序代碼增加得很緩慢。圖5-6描述了一個(gè)執(zhí)行良好的項(xiàng)目中程序碼增長(zhǎng)的方式。 黑線表示正常的程序代碼增長(zhǎng)方式,陰影部分則表示正常變化量。在項(xiàng)目中期程序代碼增長(zhǎng)的變化量仿照過(guò)渡版本提升現(xiàn)有程序代碼品質(zhì)而產(chǎn)生的。圖5-6中的項(xiàng)目在最后推出產(chǎn)品以前,推出兩個(gè)過(guò)渡版本。 一旦你了解了程序代碼增長(zhǎng)的方式,你就能很精確的估計(jì)項(xiàng)目的現(xiàn)況。執(zhí)行良好的項(xiàng)目每周都會(huì)記錄項(xiàng)目的程序代碼。如果你認(rèn)為項(xiàng)目快到結(jié)尾,新程序碼幾乎也停止增加,這時(shí)項(xiàng)目就已經(jīng)可以準(zhǔn)備發(fā)行了。如果新的程序代碼還不停的加入項(xiàng)目中,那項(xiàng)目就還處于執(zhí)行中期的三分之一,還沒(méi)接近推出的成熟階段。 同樣的道理,如果開(kāi)發(fā)人員在他們完成構(gòu)架設(shè)計(jì)前加入太多程序代碼,你幾乎可以保證會(huì)在系統(tǒng)測(cè)試階段停留許久,那是為了要讓開(kāi)發(fā)人員修正他們?cè)谙到y(tǒng)設(shè)計(jì)還不是很成熟時(shí)所造成的錯(cuò)誤。 一些項(xiàng)目犯下的嚴(yán)重錯(cuò)誤是將產(chǎn)品在只完成了85%左右時(shí)就發(fā)行出去。 如果項(xiàng)目主持人不了解圖中所說(shuō)明的軟件開(kāi)發(fā)方式,他們會(huì)假設(shè)新的程序代碼開(kāi)發(fā)量開(kāi)始降低時(shí)就可以立刻把程序推出去發(fā)行了,特別是項(xiàng)目執(zhí)行受到明顯的時(shí)間壓力時(shí)。這個(gè)將產(chǎn)品只有85%完成度就倉(cāng)促發(fā)行的決定,表示軟件終究未臻完善,這樣的決定就像搬磚頭砸自己的腳。 主要完成點(diǎn)與推行點(diǎn) 有時(shí)候,前幾節(jié)中描述的一般軟件開(kāi)發(fā)方式可縮減成以圖像表示詳細(xì)的完成時(shí)間點(diǎn)和推出時(shí)間點(diǎn)。主要完成點(diǎn)以極高水平來(lái)追蹤項(xiàng)目執(zhí)行進(jìn)度,圖5-7概述了本文中使用的高層次階段和完成點(diǎn)的劃分方式。 這里的通用項(xiàng)目要點(diǎn)幾乎可以應(yīng)用到任何規(guī)模的項(xiàng)目上。實(shí)際上每個(gè)階段的初步工作??梢员葓D中所說(shuō)的更早開(kāi)始進(jìn)行,而后頭的工作可以比圖中所示的要晚結(jié)束。本圖說(shuō)明了每段時(shí)間中主要強(qiáng)調(diào)的重點(diǎn)都放在個(gè)別的活動(dòng)上(圖5-3已經(jīng)更完整的提到過(guò)各項(xiàng)活動(dòng)重疊的情形了)。 上層主管與客戶有時(shí)對(duì)于軟件項(xiàng)目中的完成點(diǎn)模糊不清、無(wú)法依據(jù)而感到泄氣,不過(guò)如果你依循著本文建議的做法,以完成點(diǎn)的方式追蹤項(xiàng)目進(jìn)度,將可以對(duì)項(xiàng)目狀態(tài)得到良好的了解。表5-1列出這些完成點(diǎn)與圖5-7的高層次階段劃分方式相對(duì)應(yīng)的詳細(xì)活動(dòng)。 表5-1 高層次完成點(diǎn)與推行點(diǎn)的劃分方式 ◆ 項(xiàng)目初期 □ 找出項(xiàng)目關(guān)鍵決策者 □ 建立、檢視并按照前景敘述進(jìn)行項(xiàng)目 □ 建立軟件的業(yè)務(wù)狀況評(píng)估 □ 建立、檢視初步努力與時(shí)間目標(biāo) □ 團(tuán)隊(duì)中擁有2~3名資深開(kāi)發(fā)人員 □ 建立、檢視變更管制規(guī)劃,定案 □ 建立、檢視十大風(fēng)險(xiǎn)清單,并以此避開(kāi)已知風(fēng)險(xiǎn) □ 開(kāi)始記錄軟件項(xiàng)目的過(guò)程 項(xiàng)目這時(shí)期所進(jìn)行的工作沒(méi)有的明顯終結(jié)點(diǎn)。這時(shí)期的工作是用來(lái)了解項(xiàng)目規(guī)模而進(jìn)行的。這時(shí)期耗用的時(shí)間和精力會(huì)隨著項(xiàng)目的不同而有極大變化 ◆ 項(xiàng)目開(kāi)啟/可行性研究完成 □ 質(zhì)量保證主導(dǎo)者就位 □ 文件說(shuō)明主導(dǎo)者就位 □ 找出重要使用者,進(jìn)行訪談 □ 建立簡(jiǎn)單的使用者接口雛形,由使用者審查直到能被接受后定案 □ 使用者接口格式簡(jiǎn)介建立,經(jīng)過(guò)檢閱后作為日后說(shuō)明文件的基礎(chǔ) □ 建立第一次項(xiàng)目評(píng)估(精確度在-50%~范圍線+100%的范圍內(nèi)),檢視評(píng)估記結(jié)果后定案 □ 建立初步軟件開(kāi)發(fā)規(guī)劃,經(jīng)過(guò)審查后,據(jù)以執(zhí)行項(xiàng)目過(guò)程 □ 更新十大風(fēng)險(xiǎn)清單 □ 更新軟件項(xiàng)目記錄 項(xiàng)目在這部分的工作也是不受結(jié)尾限制的,而且依照項(xiàng)目性質(zhì)而決定 ◆ 初步需求開(kāi)發(fā)完成 在這時(shí)期,項(xiàng)目中開(kāi)放性結(jié)尾的工作都已經(jīng)完成了,現(xiàn)在需要一些檢查來(lái)決定要不要繼續(xù)進(jìn)行項(xiàng)目 □ 建立細(xì)節(jié)使用者接口雛形,經(jīng)過(guò)檢視后定案 □ 建立使用說(shuō)明/使用規(guī)格,經(jīng)過(guò)審查后定案 □ 建立軟件質(zhì)量保證計(jì)劃,經(jīng)過(guò)檢查后定案 □ 建立細(xì)節(jié)軟件開(kāi)發(fā)規(guī)劃,經(jīng)過(guò)檢查后定案 □ 更新項(xiàng)目評(píng)估(精確度在-45%~+75%的范圍內(nèi)) □ 更新十大風(fēng)險(xiǎn)清單 □ 更新軟件項(xiàng)目記錄 到這一階段中約花費(fèi)12%的項(xiàng)目時(shí)間跟6%的人手精力。這些比例不包括在項(xiàng)目開(kāi)啟/可行性研究與初步需求開(kāi)發(fā)上的工作時(shí)間跟努力成效的花費(fèi) ◆ 細(xì)節(jié)需求開(kāi)發(fā)完成 ◆ 審查規(guī)劃,決定要不要繼續(xù)進(jìn)行項(xiàng)目 □ 開(kāi)發(fā)團(tuán)隊(duì)大致就位 □ 管理人員大致就位 □ 完成使用說(shuō)明/使用規(guī)格后撤除撰寫文件的人力(除非有別的文件產(chǎn)品要寫) □ 建立軟件構(gòu)架文件,檢查后定案 □ 建立軟件整合程序,檢查后定案 □ 建立階段性完成規(guī)劃,檢查后定案 □ 建立第一階段的軟件測(cè)試項(xiàng)目,檢查后定案 □ 更新使用說(shuō)明/使用規(guī)格 □ 更新項(xiàng)目評(píng)估(精確度在-30%~+40%) □ 更新十大風(fēng)險(xiǎn)清單 □ 更新軟件開(kāi)發(fā)規(guī)劃 □ 更新軟件項(xiàng)目記錄 到這階段,約耗費(fèi)20%的項(xiàng)目時(shí)間與14%的精力 ◆ 構(gòu)架完成 □ 開(kāi)發(fā)團(tuán)隊(duì)完全就位 □ 品管人員完全就位 □ 初步階段規(guī)劃完成 □ 建立第一階段的細(xì)節(jié)設(shè)計(jì)文件,檢查后定案 □ 建立包括小型完成點(diǎn)的第一階段的細(xì)節(jié)軟件構(gòu)建規(guī)劃,檢查后定案 □ 建立下一階段的軟件測(cè)試項(xiàng)目,檢查后定案 □ 更新第一階段軟件測(cè)試項(xiàng)目 □ 建立第一階段軟件建立指示(產(chǎn)生檔案) □ 建立第一階段軟件源代碼,檢查后定案 □ 創(chuàng)造安裝程序,檢查后定案 □ 更新使用說(shuō)明/使用規(guī)格 □ 第一階段“功能完成”產(chǎn)品 □ 更新項(xiàng)目評(píng)估(精確度在-20%~+30%) □ 更新十大風(fēng)險(xiǎn)清單 □ 更新軟件項(xiàng)目記錄 假設(shè)項(xiàng)目分三個(gè)階段,到這階段約耗用45%的項(xiàng)目時(shí)間與40%的努力成效 ◆ 第一階段程序代碼完成 □ 各項(xiàng)活動(dòng)同上 到這階段約花費(fèi)65%的項(xiàng)目時(shí)間與65%的努力成效 ◆第二階段源代碼完成 □ 建立最后階段細(xì)節(jié)設(shè)計(jì)文件,檢查后定案 □ 更新所有階段軟件測(cè)試項(xiàng)目 □ 更新所有階段軟件源代碼 □ 更新所有階段軟件建立指示(產(chǎn)生檔案) □ 更新安裝程序 □ 如果軟件是個(gè)業(yè)務(wù)系統(tǒng),完成使用文件(清楚的使用說(shuō)明),完成使用者訓(xùn)練,使用團(tuán)隊(duì)準(zhǔn)備上路 □ 整合已完成的“功能完整”產(chǎn)品 □ 更新項(xiàng)目評(píng)估(精確度在-5%~+5%) □ 更新十大風(fēng)險(xiǎn)清單 □ 更新軟件項(xiàng)目記錄 到這階段,約花費(fèi)85%的項(xiàng)目時(shí)間跟90%的努力成果 ◆ 最后階段源代碼完成(如果分三個(gè)階段,這就是第三階段) □ 建立發(fā)行檢查項(xiàng)目,檢查后定案 □ 所有成員同意發(fā)行產(chǎn)品,不再更議產(chǎn)品 □ 完成功能正確的產(chǎn)品 □ 完成功能正確的安裝程序 □ 完成最后測(cè)試項(xiàng)目 □ 完成軟件正本的復(fù)制 □ 項(xiàng)目成果媒介(源代碼、建立環(huán)境等)歸檔存放 □ 更新最后軟件項(xiàng)目記錄 □ 建立項(xiàng)目歷程文件,檢查后定案 到了這階段,用去100%的項(xiàng)目時(shí)間與努力成效 ◆ 產(chǎn)品發(fā)行 有時(shí)人們會(huì)想,為何軟件項(xiàng)目要花那么久的時(shí)間。表5-1中的推進(jìn)項(xiàng)目清單有助于回答這個(gè)問(wèn)題。每個(gè)推進(jìn)項(xiàng)目都代表一些必須完成才能讓項(xiàng)目有效推進(jìn)的重要工作。 大部分執(zhí)行成效糟糕的項(xiàng)目最后都得做同樣的事情,由于它們?nèi)狈芾?br> ,執(zhí)行起來(lái)也缺乏效率,最后花費(fèi)代價(jià)更多卻沒(méi)得到什么好處。 人們抗拒“開(kāi)發(fā)程序”的一個(gè)理由是開(kāi)發(fā)程序?qū)虻捻?xiàng)目在一開(kāi)始就讓人們看到一張這樣的工作清單,使他們覺(jué)得“把這些事情都做完的話,項(xiàng)目就永遠(yuǎn)做不完了!”事實(shí)是如果項(xiàng)目中不做這些事,就得花更久時(shí)間才完成得了。即使小型的項(xiàng)目也得處理表5-1中列出來(lái)的絕大多數(shù)工作項(xiàng)目,雖然有些工作在小型項(xiàng)目中做起來(lái)不會(huì)花什么時(shí)間。我們也不希望做那么多工作,不過(guò)對(duì)軟件項(xiàng)目而言,忽視一定得做的事情恐怕會(huì)功虧一簣,而如果人們知道一個(gè)項(xiàng)目中從開(kāi)頭就有哪些事情必須做的話,每個(gè)人都會(huì)好過(guò)得多。 ================================================================= 求生檢查 項(xiàng)目采用階段性完成方式。 上層主管、顧客或兩者都依據(jù)程序代碼增長(zhǎng)曲線盯緊項(xiàng)目進(jìn)度。 上層主管、顧客或兩者都留心著主要完成點(diǎn)和推行點(diǎn)的達(dá)成。 =================================================================
【?發(fā)表評(píng)論?0條?】
深圳網(wǎng)絡(luò)警 察報(bào)警平臺(tái)
公共信息安 全網(wǎng)絡(luò)監(jiān)察
經(jīng)營(yíng)性網(wǎng)站 備案信息
不良信息 舉報(bào)中心
中國(guó)文明網(wǎng) 傳播文明