項(xiàng)目進(jìn)度管理是在項(xiàng)目實(shí)施過(guò)程中,對(duì)各階段的進(jìn)展程度和項(xiàng)目最終完成的期限所進(jìn)行的管理。項(xiàng)目進(jìn)度狀況通常是通過(guò)各工程活動(dòng)完成程度(百分比)逐層統(tǒng)計(jì)匯總計(jì)算得到的。進(jìn)度指標(biāo)的確定對(duì)進(jìn)度的表達(dá)、計(jì)算、控制有很大影響。在實(shí)際項(xiàng)目操作中,總有影響項(xiàng)目進(jìn)度的因素出現(xiàn)。
1、使用敏捷開(kāi)發(fā)
敏捷開(kāi)發(fā),這是現(xiàn)在非常時(shí)興的一個(gè)詞,聽(tīng)起來(lái)挺牛逼的,敏捷,讓我們感覺(jué)用了它就會(huì)“快”。在被這種開(kāi)發(fā)模式折磨了1年多的我想說(shuō),其實(shí)它跟其他所有的事情都一樣,它有自己適用的領(lǐng)域,假如錯(cuò)誤的以為任何項(xiàng)目用敏捷開(kāi)發(fā)都能敏捷,那就是自找苦吃。
為什么?敏捷開(kāi)發(fā)的特點(diǎn)就是根據(jù)用戶(hù)的需求迭代,一個(gè)迭代解決一個(gè)迭代的問(wèn)題,對(duì)于一個(gè)對(duì)于架構(gòu)清晰的項(xiàng)目來(lái)說(shuō),這樣每一個(gè)迭代都會(huì)有一些成果。而對(duì)于有些項(xiàng)目而言,比如說(shuō)殺毒軟件,磁盤(pán)分析器等等,對(duì)于這種產(chǎn)品類(lèi)的項(xiàng)目,很多時(shí)候它的需求都是一開(kāi)始需要定義清楚的,客戶(hù)名義上是廣大的PC用戶(hù),實(shí)際上是PM或是PGM,PM說(shuō)這個(gè)項(xiàng)目里面我們要做3個(gè)功能,那我們就需要做3個(gè)功能,多一個(gè)不行,少一個(gè)也不行,如果PGM在你做了3個(gè)功能后告訴你,要加一個(gè)功能,而且這個(gè)功能在舊的架構(gòu)上是很難實(shí)現(xiàn)的,那么這個(gè)PGM就是不合格的,為什么?因?yàn)樗哟罅隧?xiàng)目的成本。所以,我想說(shuō)的是,如果需求是由我們自己定義,而且我們很清楚要做一個(gè)什么東西的時(shí)候了,采用敏捷開(kāi)發(fā)的風(fēng)險(xiǎn)可能會(huì)加大,因?yàn)樗^(guò)多的依賴(lài)于“迭代”,認(rèn)為迭代可以解決大多數(shù)的問(wèn)題,可是實(shí)際情況遠(yuǎn)不如此樂(lè)觀!當(dāng)你的PM對(duì)你我們要加這個(gè)新功能,之前的定義的功能不行這個(gè)迭代要改的時(shí)候,作為一個(gè)程序員,我們能做什么呢?去跟PM說(shuō),對(duì)不起,我們之前的底層架構(gòu)不支持這種變態(tài)的需求,PM會(huì)告訴你,我就是代表客戶(hù),這個(gè)功能就得這么做,我說(shuō)了算,為什么不支持,我們不是采用的敏捷開(kāi)發(fā)嗎,敏捷開(kāi)發(fā)的特點(diǎn)不是迭代來(lái)解決問(wèn)題嗎?
老實(shí)說(shuō),瀑布模型的好處之一,就是你的PM可以少幾個(gè)變需求的理由,PM一個(gè)星期變一次需求,我們程序員就沒(méi)有幸??裳粤耍裕蚁雱裼行╉?xiàng)目經(jīng)理,別拿需求的變更當(dāng)做理所應(yīng)當(dāng)?shù)模悴皇且粋€(gè)嬌生慣養(yǎng)的小孩,沒(méi)有必要變的需求就不要變,如果你把敏捷開(kāi)發(fā)的需求變更當(dāng)做是你隔三差五變需求的理由,那下個(gè)項(xiàng)目,當(dāng)你的程序員聽(tīng)說(shuō)你要用敏捷開(kāi)發(fā),肯定想抱頭痛哭。你是產(chǎn)品的設(shè)計(jì)師,這個(gè)產(chǎn)品的外觀功能,應(yīng)該一開(kāi)始就定義好,不要前一個(gè)月說(shuō)要做個(gè)電飯煲,這個(gè)月又說(shuō)要在電飯煲加個(gè)微波爐的功能,如果你手下的程序員任勞任怨,把微波爐的功能真的加進(jìn)了電飯煲,那只能說(shuō)PM幸運(yùn),碰到了技術(shù)牛人,并且技術(shù)確實(shí)是可行的,但是如果功能實(shí)現(xiàn)不了,那么PM可能就怪開(kāi)發(fā)者,覺(jué)得他們技術(shù)不行,心想我用的是敏捷開(kāi)發(fā),為什么我給了你們時(shí)間缺不能解決問(wèn)題呢?
時(shí)間確實(shí)是可以解決問(wèn)題,但是作為開(kāi)發(fā)者更希望把時(shí)間多花在需求分析階段,而不是修改舊的代碼上。開(kāi)發(fā)模型只是一種工具,依賴(lài)敏捷開(kāi)發(fā)這個(gè)工具,并不是解決所有問(wèn)題的萬(wàn)金油。
作為項(xiàng)目經(jīng)理,你不光要對(duì)客戶(hù)負(fù)責(zé),更需要對(duì)產(chǎn)品負(fù)責(zé),對(duì)你手下的程序員負(fù)責(zé)。其實(shí),假如做不到后面兩點(diǎn)第一點(diǎn)也不好做到,因?yàn)轫?xiàng)目很可能經(jīng)常delay,到最后客戶(hù)不滿意,或者產(chǎn)品上線的時(shí)候早已經(jīng)落于市場(chǎng)上其他的產(chǎn)品。
2、角色分配
角色分配的問(wèn)題在整個(gè)軟件開(kāi)發(fā)過(guò)程也是很重要的,