在可行性分析之后,項目計劃與質量管理將貫穿需求分析、系統(tǒng)設計、程序設計、測試、維護等軟件工程環(huán)節(jié)。
項目計劃是要提供一份合理的進程表,讓所有開發(fā)人員任務明確、步調一致,最終共同準時地完成項目。項目計劃是要付諸實施的,不象用嘴巴喊政治口號,可以很夸張。軟件的項目計劃重在“準確”而非“快速”。
提高質量是軟件工程的主要目標。但由于軟件開發(fā)是一種智力創(chuàng)作活動,很難象傳統(tǒng)工業(yè)那樣通過執(zhí)行嚴格的操作規(guī)范來保證軟件產品的質量。世上最小心翼翼、最老實巴腳的程序員未必就能開發(fā)出高質量的軟件來。程序員必須了解軟件質量的方方面面(稱為質量因素),如正確性、性能、易用性、靈活性、可復用性、可理解性等等,才能在進行系統(tǒng)設計、程序設計時將高質量內建其中。軟件的高質量并不是“管理”出來的,實質上是設計出來的,質量的管理只是一種預防和認證的手段而已。
1 項 目 計 劃
做項目計劃,如同給一個待出生的嬰兒寫傳記那樣困難。如果允許項目結束后再寫計劃,那就輕松多了,并且可以100% 地準確。
歷史教訓讓我們明白一個道理:如果一萬年以后才會有一條陽光大道通向共產主義,那么現在就不要忙著砸鍋煉鋼趕英超美,免得在跑步奔向共產主義時把自己累死餓死。在做軟件的項目計劃時,應屏棄一切浮夸作風。只有“知已知彼”才能做出合理的項目計劃。這里“知彼”是指要了解項目的規(guī)模、難度與時間限制。“知已”是指要了解有多少可用資源,如可調用的程序員有幾個?他們的水平如何?軟硬件設施如何?
1.1 知己知彼
首先要了解項目的規(guī)模、難度與時間限制,才可以確定應該投入多少人力、物力去做這個項目。在可行性分析階段就要考慮這個問題。但不幸的是,人們在陷入項目不能自撥之前總難以準確地估計項目的規(guī)模與難度。這里經驗起到了最重要的作用。
項目的時間限制有兩類。第一類,項目應該完成的日期寫在合同中,如果延期了,則開發(fā)方要作出相應的賠償。第二類是開發(fā)自己的軟件產品,雖然只確定了該產品大致的發(fā)行日期并允許有延誤,但如果拖延太久則會失去商機造成損失。
項目的資源分為三類:“人”、“可復用的軟構件”和“軟硬件環(huán)境”,如圖3.1所示。(1)人是最有價值的資源。項目計劃的制定者要確定開發(fā)人員的名單,要根據他們的專長進行分工。
(2)可復用的軟構件是次有價值的資源。1.2.1節(jié)論述了復用軟構件可提高軟件的質量與生產率。軟構件并非一定要用自己的,可以向專業(yè)的軟件供應商購買。
(3)軟硬件環(huán)境雖然不是最重要的資源,卻是必需的資源。原則上軟硬件環(huán)境只要符合項目的開發(fā)要求即可。有些項目可能要用到特殊的設備,則要事先作好準備,以免用時找不到而擔擱了進程。
1.2 進度安排
有一位程序員忙著編寫程序,經理問他還需要多久才能完成。
“明天就可以完成?!背绦騿T立即回答。
“我想這是不切實際的,實話實說,到底還要多少時間?”經理說。
“我還想加進一些新的功能,這需要花兩個星期?!背绦騿T想了一會兒說。
“即使這樣也期望過高了,只要你編完程序時告訴我一聲,我也就滿足了?!苯浝碚f。
幾年以后,經理要退休了。在他去退休午餐會時,發(fā)現那位程序員正趴在機器旁睡覺:可憐的家伙整個晚上都在忙于編寫那個程序。[James 1999]
程序員也期望每天早晨能在7:00準時起床,可老是一覺醒來就到中午了。項目落后于進度表乃是家常便飯,不必大驚小怪。以下一些事件經常會導致項目被延誤:
(1)上級領導主管臆斷,制定了不現實的期限。項目經理與程序員們被迫按照不合理的進度表開展工作。
(2)客戶的需求發(fā)生了變化,但沒有對進度表作出相應的修改。
(3)低估了項目的規(guī)模與難度,導致投入的人力和物力
項目經理勝任力免費測評PMQ上線啦!快來測測你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html