做項(xiàng)目計(jì)劃,如同給一個(gè)待出生的嬰兒寫(xiě)傳記那樣困難。如果允許項(xiàng)目結(jié)束后再寫(xiě)計(jì)劃,那就輕松多了,并且可以100% 地準(zhǔn)確。
歷史教訓(xùn)讓我們明白一個(gè)道理:如果一萬(wàn)年以后才會(huì)有一條陽(yáng)光大道通向共產(chǎn)主義,那么現(xiàn)在就不要忙著砸鍋煉鋼趕英超美,免得在跑步奔向共產(chǎn)主義時(shí)把自己累死餓死。在做軟件的項(xiàng)目計(jì)劃時(shí),應(yīng)屏棄一切浮夸作風(fēng)。只有“知已知彼”才能做出合理的項(xiàng)目計(jì)劃。這里“知彼”是指要了解項(xiàng)目的規(guī)模、難度與時(shí)間限制?!爸选笔侵敢私庥卸嗌倏捎觅Y源,如可調(diào)用的程序員有幾個(gè)?他們的水平如何?軟硬件設(shè)施如何?
1 知己知彼
首先要了解項(xiàng)目的規(guī)模、難度與時(shí)間限制,才可以確定應(yīng)該投入多少人力、物力去做這個(gè)項(xiàng)目。在可行性分析階段就要考慮這個(gè)問(wèn)題。但不幸的是,人們?cè)谙萑腠?xiàng)目不能自撥之前總難以準(zhǔn)確地估計(jì)項(xiàng)目的規(guī)模與難度。這里經(jīng)驗(yàn)起到了最重要的作用。
項(xiàng)目的時(shí)間限制有兩類(lèi)。第一類(lèi),項(xiàng)目應(yīng)該完成的日期寫(xiě)在合同中,如果延期了,則開(kāi)發(fā)方要作出相應(yīng)的賠償。第二類(lèi)是開(kāi)發(fā)自己的軟件產(chǎn)品,雖然只確定了該產(chǎn)品大致的發(fā)行日期并允許有延誤,但如果拖延太久則會(huì)失去商機(jī)造成損失。
項(xiàng)目的資源分為三類(lèi):“人”、“可復(fù)用的軟構(gòu)件”和“軟硬件環(huán)境”。
(1)人是最有價(jià)值的資源。項(xiàng)目計(jì)劃的制定者要確定開(kāi)發(fā)人員的名單,要根據(jù)他們的專(zhuān)長(zhǎng)進(jìn)行分工。
(2)可復(fù)用的軟構(gòu)件是次有價(jià)值的資源。復(fù)用軟構(gòu)件可提高軟件的質(zhì)量與生產(chǎn)率。軟構(gòu)件并非一定要用自己的,可以向?qū)I(yè)的軟件供應(yīng)商購(gòu)買(mǎi)。
(3)軟硬件環(huán)境雖然不是最重要的資源,卻是必需的資源。原則上軟硬件環(huán)境只要符合項(xiàng)目的開(kāi)發(fā)要求即可。有些項(xiàng)目可能要用到特殊的設(shè)備,則要事先作好準(zhǔn)備,以免用時(shí)找不到而擔(dān)擱了進(jìn)程。
2 進(jìn)度安排
有一位程序員忙著編寫(xiě)程序,經(jīng)理問(wèn)他還需要多久才能完成。
“明天就可以完成。”程序員立即回答。
“我想這是不切實(shí)際的,實(shí)話(huà)實(shí)說(shuō),到底還要多少時(shí)間?”經(jīng)理說(shuō)。
“我還想加進(jìn)一些新的功能,這需要花兩個(gè)星期。”程序員想了一會(huì)兒說(shuō)。
“即使這樣也期望過(guò)高了,只要你編完程序時(shí)告訴我一聲,我也就滿(mǎn)足了?!苯?jīng)理說(shuō)。
幾年以后,經(jīng)理要退休了。在他去退休午餐會(huì)時(shí),發(fā)現(xiàn)那位程序員正趴在機(jī)器旁睡覺(jué):可憐的家伙整個(gè)晚上都在忙于編寫(xiě)那個(gè)程序。[James 1999]
程序員也期望每天早晨能在7:00準(zhǔn)時(shí)起床,可老是一覺(jué)醒來(lái)就到中午了。項(xiàng)目落后于進(jìn)度表乃是家常便飯,不必大驚小怪。以下一些事件經(jīng)常會(huì)導(dǎo)致項(xiàng)目被延誤:
(1)上級(jí)領(lǐng)導(dǎo)主管臆斷,制定了不現(xiàn)實(shí)的期限。項(xiàng)目經(jīng)理與程序員們被迫按照不合理的進(jìn)度表開(kāi)展工作。
(2)客戶(hù)的需求發(fā)生了變化,但沒(méi)有對(duì)進(jìn)度表作出相應(yīng)的修改。
(3)低估了項(xiàng)目的規(guī)模與難度,導(dǎo)致投入的人力和物力不足。
(4)并未預(yù)見(jiàn)到存在難以克服的技術(shù)障礙。
(5)并未預(yù)見(jiàn)到開(kāi)發(fā)人員會(huì)發(fā)生問(wèn)題,如生病,辭職等等。
(6)開(kāi)發(fā)人員之間不能很好的交流、協(xié)作,導(dǎo)致各階段任務(wù)難以如期完成。
所以寫(xiě)進(jìn)程表不能象小學(xué)生寫(xiě)決心書(shū)那樣充滿(mǎn)幻想。以下是一些有益的建議:
(1)制定進(jìn)度表的人最好就是項(xiàng)目負(fù)責(zé)人,他最了解項(xiàng)目和開(kāi)發(fā)人員。進(jìn)度表要經(jīng)過(guò)開(kāi)發(fā)小組的討論,在得到大部數(shù)人的支持后才能實(shí)施。避免出現(xiàn)一廂情愿的局面。
(2)進(jìn)度安排并不見(jiàn)得一定要符合邏輯順序。應(yīng)盡可能地先做技術(shù)難度高的事,后做難度低的事。也就是辛苦在前,輕松在后。
小時(shí)候我對(duì)一位老先生吃飯很感興趣:他總是先把一大盒的米飯吃光了,然后再幸福地品嘗一小盒菜。父母告訴我這是中國(guó)的傳統(tǒng)美德,叫“先苦后甜”。從此我銘記在心,按此道理去學(xué)習(xí)和工作??扇缃裨陲埖昀?,人們總是先把菜吃完了,最后才吃點(diǎn)米飯
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線(xiàn)啦!快來(lái)測(cè)測(cè)你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html