軟件項目管理的解決,涉及到系統(tǒng)工程學、統(tǒng)計學、心理學、社會學、經(jīng)濟學,乃至法律等方面的問題。需要用到多方面的綜合知識,特別是要涉及到社會的因素、精神的因素、人的因素,比技術(shù)問題復雜得多。僅靠技術(shù)、工程或科研項目的效率、質(zhì)量、成本和進度等問題很難得到較好的解決。必須結(jié)合工作條件、人員和社會環(huán)境等多種因素。因此,簡單地照搬國外的管理技術(shù)往往不一定奏效。此外,軟件項目管理技術(shù)的基礎(chǔ)是實踐,為取得軟件項目管理技術(shù)的成果必須反復實踐。很顯然,管理能夠帶來效率,能夠贏得時間,最終將在技術(shù)前進的道路上取得領(lǐng)先地位。在知識爆炸、高技術(shù)迅速發(fā)展的今天,必須在戰(zhàn)略級上對待技術(shù)管理問題。
一、軟件項目的特點
軟件產(chǎn)品與其他任何產(chǎn)業(yè)的產(chǎn)品不同,它是無形的,完全沒有物理屬性。對于這樣看不見,摸不著的產(chǎn)品,難以理解,難于架馭。但它確實是把思想、概念、算法、流程、組織、效率、優(yōu)化等融合在一起了。因此,要開發(fā)這樣的產(chǎn)品,在許多情況下,用戶一開始給不出明確的想法,提不出確切的要求。他說不清究竟他需要的是什么。在開發(fā)的過程中,程序與其相關(guān)的文檔常常需要修改。在修改的過程中又可能產(chǎn)生新的問題,并且這些問題很可能在過了相當長的時間以后才會發(fā)現(xiàn)。文檔編制的工作量在整個項目研制過程中占有很大的比重。但從實踐中看出,人們對它不感興趣、認為是不得不做的苦差事,不愿認真地去做。因而直接影響了軟件的質(zhì)量。軟件開發(fā)工作技術(shù)性很強,要求參加工作的人員具有一定的技術(shù)水平和實際工作的經(jīng)驗。但事實上,人員的流動對工作的影響很大。離去的人員不但帶走了重要的信息,還帶走了工作經(jīng)驗。
二、軟件項目管理的困難
1)智力密集,可見性差:軟件工程過程充滿了大量高強度的腦力勞動。軟件開發(fā)的成果是不可見的邏輯實體,軟件產(chǎn)品的質(zhì)量難以用簡單的尺度加以度量。對于不深入掌握軟件知識或缺乏軟件開發(fā)實踐經(jīng)驗的人員,是不可能領(lǐng)導做好軟件項目管理工作的。軟件開發(fā)任務(wù)完成得好也看不見,完成得不好有時也能制造假象,欺騙外行的領(lǐng)導。
2)單件生產(chǎn):在特定機型上,利用特定硬件配置,由特定的系統(tǒng)軟件或支撐軟件的支持,形成了特定的開發(fā)環(huán)境。再加上軟件項目特定的目標,采用特定的開發(fā)方法、工具和語言,使得軟件具有獨一無二的特色,幾乎找不到與之完全相同的軟件產(chǎn)品。這種建立在內(nèi)容、形式各異的基礎(chǔ)上的研制或生產(chǎn)方式,與其他領(lǐng)域中大規(guī)模現(xiàn)代化生產(chǎn)有著很大的差別,也自然會給軟件項目管理工作造成許多實際困難。
3)勞動密集,自動化程度低:軟件項目經(jīng)歷的各個階段都滲透J,大量的手工勞動,這些勞動十分細致、復雜和容易出錯。盡管近年來開展了軟件工具和cAsE的研究,但總體來說,仍遠未達到自動化的程度。軟件產(chǎn)業(yè)所處的這一狀態(tài),加上軟件的復雜性,使得軟件的開發(fā)和維護難以避免出錯,軟件的正確性難于保證,軟件產(chǎn)品質(zhì)量的提高自然受到了很大的影響。
4)使用方法繁瑣,維護困難:用戶使用軟件需要掌握計算機的基本知識,或者接受專門的培訓,否則面對多種使用手冊、說明和繁瑣的操作步驟,學會使用要花費很大力氣。另一方面,如果遇到軟件運行出了問題,且沒有配備專職維護人員,又得不到開發(fā)部門及時的售后服務(wù),軟件的使用者更是徒喚奈何。
5)軟件工作滲透了人的因素:為高質(zhì)量地完成軟件項目,充分發(fā)掘人員的智力才能和創(chuàng)造精神,不僅要求軟件人員具有一定的技術(shù)水平和工作經(jīng)驗,而且還要求他們具有良好的心理素質(zhì)。軟件人員的情緒和他們的工作環(huán)境,對他們工作有很大的影響。與其他行業(yè)相比,它的這一特點十分突出,必須給予足夠的重視。