軟件工程領域中項目管理實施體會

發表于:2007-05-26來源:作者:點擊數: 標簽:
“項目”,在二千多年之前就已經存在。著名的埃及金字塔、我國的萬里長城都是國際上眾人稱頌的典型項目。 項目管理 發展到今天,應用相對成功的領域主要是在土木工程上,現已逐步應用于 軟件工程 、航空、國防、 金融 、體育等行業。 一般來說,“項目”具有
    “項目”,在二千多年之前就已經存在。著名的埃及金字塔、我國的萬里長城都是國際上眾人稱頌的典型項目。項目管理發展到今天,應用相對成功的領域主要是在土木工程上,現已逐步應用于軟件工程、航空、國防、金融、體育等行業。

    一般來說,“項目”具有技術復雜,參與的人員還眾多,時間又非常緊迫,因此,人們開始關注如何有效地實行項目管理來實現既定的目標。在這里,主要談談在軟件工程領域中項目管理的運用,也就是項目管理能夠給人們提供一種解決問題的思路和方法。

    I. 當前項目管理存在的問題

    一項調查表明,大約70%的軟件開發項目超出了估算的時間,大型項目平均超出計劃交付時間20%至50%,90%以上的軟件項目開發費用超出預算,并且項目越大,超出項目計劃的程度越高。國內絕大多數的IT企業正或多或少地承受著“項目黑洞”的痛楚:項目無法按期完成、項目合作方的工作難以協調、用戶需求經常變動、工作質量難以保證。很多企業常常抱怨說,我們的技術實力不比國外差,我們的員工也很努力,但是我們的產品和工作效率為什么總比不上國外?

    諸如此類的問題,就是當前軟件開發中,實現項目管理實施時帶來的問題。雖然,項目管理在土木工程中,項目管理在中國已經實施得十分成熟。但是,軟件開發不同于其他產品的制造,軟件的整個過程都是設計過程(沒有制造過程);另外,軟件開發不需要使用大量的物質資源,而主要是人力資源;并且,軟件開發的產品只是程序代碼和技術文件,并沒有其他的物質結果?;谏鲜鎏攸c,軟件項目管理與其他項目管理相比,有很大的獨特性。其問題的具體表現為:

    一、工期失控,計劃失控。項目做多,往往會形成一種錯覺:不按計劃工期完成的項目是正常的;能按計劃工期準時完成的,往往是不正常的。這說明,項目的實際工期和計劃工期不符,是“家常便飯”。大多數工期延期,很少提前的。工期延期、失控,自然而言會導致計劃無法執行;計劃無法執行,成本就失控;產品就會變形......

    二、項目前期多數出現“沒事做”,后期“沒人做”。在項目啟動后,因為人員的配置,人員的銜接,硬件的配置,客戶需求的確定性,一般會造成很多人“沒事做”。而有些事是必須放在項目前期做的。前期不做,會對中后期有很大的影響?;蛘叻诺街泻笃谧?,會,要多花幾倍的人力、物力。到了項目后期,會出現“虎頭蛇尾”,大量的事情需要人來做,項目的人員又是固定的,其他人因為不了解整個項目,無法“空降”,則只能刪除一些事情咯。這樣就造成很多事情,沒人做,后果可想而知。

    三、開發人員心態失控。延期,趕進度;晚上加班。還是延期,星期六也加班吧。還是不能按期完成,又到項目后期,只好封閉開發。平時晚上加班,星期六、星期天也加班。這就是很多開發人員開發項目漸進式的流程。不同項目的開發人員,只要問問對方是否加班,就大概可以了解到對方參加的項目的開發階段拉。先拋棄加班對開發人員的效率的影響,對開發人員心態的影響才是最重要的。每個人都有趨利弊害的天性,開發人員也不例外。既然要趕進度,效率沒有提高的情況下,要縮短開發時間,那只有簡化功能,減少處理異常的情況,能把功能完成再說,等以后測試或用戶哪里出問題再說。如果僥幸不出問題,那就沒問題拉。這種情況下,當然希望測試的水平越“水”越好拉。哦,別忘了,測試也是開發人員的一部分。工期延期了,上面要求的進度又越來越緊,測試時間就更短,強度大,那只有有意無意去逃避錯誤,這樣就皆大歡喜拉。

    這些共性的問題,就是項目管理所要解決的問題。只有解決了這些問題,項目管理水平就會得到質的飛躍!當然要解決這些問題,不是一兩篇文章,一兩個公司就能解決的,需要所有人的不斷探索才能解決的。這里,主要是個人的一些思考,供大家參考。

    II. 定位問題

    有人會問,產品或項目的需求不就是包含了定位,何須重復講呢。其實,這是一個誤區。同樣一個需求,在一個中學生中實現和在一個大學生中實現是完全不同的;在一個有經驗的群體中實現和在一個缺乏經驗的群體中實現是完全不同的。有些項目,由于定位未做好,未開始注定是失敗的,無論是需求分析得如何好,編碼、測試控制得十分完美,終究逃不過失敗這一關。

    做軟件的都知道,是沒有真正的軟件。即使是通用做的最好的WINDOWS,也不可能是通用到每一類人,每一個國家,每一個民族的人,通用到那些只有幾千人的少數民族。因此,一個項目的定位是十分重要的。

    產品和項目的定位是不一樣的。做項目不比賣產品,產品賣出就是成功,項目投產才算成功;產品是靜態的,項目是動態的;產品質量有問題可以包換、保修,項目一旦失敗,時間不能倒流,客戶損失的可能就是市場競爭優勢和機遇。

    對于用戶定制的項目,定位相對簡單,只要了解到定制用戶的使用范圍,使用者的知識結構、行業經驗、電腦的基本知識及是否用過相關軟件即可。特別地,如果是用過相關地軟件,一定要了解清楚,哪些操作、功能是必須保留地,哪些操作、功能是可以修改或必須修改的。一段用戶的已習慣了某種辦法、操作方式,是很能更改的,如果定制的項目不遵照用戶的習慣進行開發,在軟件的運行初期,往往會出現很多意想不到的問題。此外,還必須注視用戶方人員流動、機構變化造成的影響。

    對于產品的開發,定位則相對復雜些。由于產品的使用者是不確定的,是預測的。因而產品的定位顯得特別重要。國內的產品,是不存在通用產品的。通用,只相對于某些大行業或某個行業而言。有些產品,號稱是通用產品,既不能使通用領域的用戶滿意,更不能使專用領域的用戶滿意,是一個徹底失敗的產品。相反,一些產品,一開始就定位于某個行業,某個細分的行業,反而做的很好,用戶量比所謂的通用的產品的用戶量還要多。

    如產品定位于專用,必須考慮,專用的范圍,是否能進一步細分,在細分的基礎上,所屬范圍的特征,有哪些情況是不適用,哪些情況是適用的等等。對范圍的特征分析得越清楚,定位越準確,產品失敗得概率就越少。同理,對于定位于通用的產品,就是將要通用所屬的范圍的同性提取出來?;趪鴥溶浖降默F實,做通用產品,應該是基于某些專用范圍,再兼顧其他的范圍,即以專用范圍為主。因此,定位的準確,是確保項目成功的底線(Bottom Line)之一。

    III. 項目經理及與開發人員的溝通

    項目經理類似于電影中的英雄人物,是項目的靈魂,他的一舉一動影響著項目的成敗。在危難時刻,優秀的項目經理甚至可以力挽狂瀾。眾所周知,衡量項目經理一般是以在資質、素質、能力和經驗等作為主要的依據,即統籌能力、領導能力、交往能力、處理壓力、解決問題的能力和技術能力。但是,個人認為,項目經理的心態才是決定一個項目成敗的關鍵因素。當然,能力和經驗也會影響項目經理的心態。

    一般出任項目經理,要么是由開發骨干兼任(這在中、小型項目中很普片),要么是由銷售或其他部門空降,專職項目經理。這兩種方式都有各自的弊端。專職項目經理,專做項目管理而不做任何分析、設計、編碼、測試等具體的技術實施工作,就會感覺“沒事做”,或是在打雜;開發骨干,由于主要或全部精力均忙于具體技術工作,各種項目管理任務(如:項目分析/評估、項目計劃的制定/檢查/調整、上下左右的溝通、專業資源調配、項目組織調整、項目財務控制、風險分析/對策等)不可避免地疏于顧及,項目管理的事情“沒人做”,導致項目控制的問題“積勞成疾”,后悔莫及。

    專職項目經理,在項目管理過程中,一般比較注重對外的聯絡合作方面,即比較注重和銷售、用戶,其他部門的協調工作。相反,就會對技術及開發的技術重視不足。在很多情況下,只根據用戶、銷售確定的功能、工期來安排計劃,對相應的技術難點不理解,每項功能所耗費的時間估計出現很大偏差,對每個開發人員的技術、知識水平認識不透徹。因此會造成有些任務需要強制、壓迫才能完成,開發人員不是建立在心服口服的情況下完成的。正所謂,上有政策,下有對策。開發人員都是高智商的動物,騙“外行”就更容易了。一般都是采取虛報工作難度,把本來一天能做完的,拖到一個星期,十天才做完;或者把正常要半個月才能做完的工作,在上面“強制”要求下,壓縮到一個星期做完,當然拉,其中必然要偷工減料,只有極正常的操作才能會滿足要求,對非法操作,特殊情況的處理,項目經理或測試工程師發現一個才處理一個。不能發現的,就等用戶去發現。項目的實施情況就可想而知拉。

    在這種情況下,必須做到幾點:
    一、 從開發人員的角度出發,結合市場的角度確定項目的功能,動之以情,曉之以理,盡量使開發人員心服口服地開發某個功能。
    二、 由項目組討論確定每一項功能的開發耗時,以不是通過拍腦袋的方式確定耗時;
    三、 加強測試;
    四、 加強對開發人員責任心、成就感的教育。

    技術骨干擔任的項目經理,不可避免地存在著“技術崇拜”,盡可能采用新技術。即使是需求明確的功能,由于實現方式有多種路徑,一般都是從技術上采取最優的路徑,而不是從用戶操作方便的角度上選擇操作最方便、快捷的路徑,用戶必須嚴格按開發人員所預設的操作方式進行操作。說句老實話,用戶是不管你用什么技術的,先進或落后的技術都可以,只要能滿足用戶的需求即可。這種類似閉門造車生產出來的產品,自然就是操作不便,功能差強人意的。還有一種情況是,這種情況一般發生在項目后期,開發產品的情況較多,隨著開發的深入,總會發現缺少某些功能,或者某些功能不夠強大。項目經理對功能的增加、刪除、修改,不是通過集體討論確定或通過從市場前線人員中了解確定,而是通過憑空想象,拍腦袋來作出決定。特別是對于某些功能的添加,由于項目經理都無法把握用戶是否需要這個功能,需要這個功能的程度,因此是很難令開發人員把握此功能的目的。當然,既然大家都無法把握用戶是否會用這個功能,那自然是應付式開發。只要過了測試,過了項目經理這一關就OK拉。

    初當項目經理的人,經驗不足是必然的,這并不是構成產品、項目失敗的關鍵因素,心態才是主要的。新官上任三把火,而且還是懷著“感謝黨,感謝組織,感謝領導”,有著一顆報恩的心態當上項目經理,自然就事事追求完美,沒有缺陷。但是,理想和現實是永遠都有很大的差距的。學會取舍才是項目、產品成功的因素,也是項目經理走向成熟的關鍵。

    成熟的項目經理,應確保項目實施中業務參與的全面性、深度和權威性。

    在一、二十年前,也許您會經常聽到某位大俠單獨完成了某種創舉,成了人們崇拜的對象??山裉?,這種大俠,已經很難有生存空間了。取而代之的是,某軍團,又攻克了一座什么樣的堡壘。這樣,溝通,可以說已經變得無比的重要。在軟件業,溝通可以說是快速學習和掌握新知識,達到技術上的更高層次的最佳途徑。因此,無論是項目,管理都必須在以人為本的前提下進行,必須重視溝通。

    以人為本,指的不只是軟件開發人員這一部分。這里的人主要指的是一些與項目有利害關系的一些人,即項目干系人(stakeholders),一般包括客戶或者用戶、項目團隊、項公司的管理層等一些主要的利害關系者。 一個項目能否成功,很大程度上取決于能不能分清楚這些項目利害關系者各自對項目的影響,能不能利用好這些人力資源,溝通協調好他們之間的關系。

    溝通是掌握各方信息,進行項目決策和項目協調的基礎,也是項目管理的基本內容。項目經理最重要的工作之一就是溝通,通?;ㄔ谶@方面的時間應該占到全部工作的75%~90%。良好的交流才能獲取足夠的信息、發現潛在的問題、控制好項目的各個方面。盡早溝通、主動溝通就是其中的兩個原則??傊疁贤ㄊ且婚T很重要的學問,在項目管理中也有專門的溝通管理,因而在本文中我們就不再討論了。

    項目經理只有以人為本,重視溝通,才會避免出現以下的情況:客戶在檢查項目階段成果時,指出曾經要求的某個產品特性沒有包含在其中,并且抱怨說早就以口頭的方式反映給了項目組的成員,糟糕的是作為項目經理的你卻一無所知,而那位成員解釋說把這點忘記了;或者,你手下的程序員在設計評審時描述了他所負責的模塊架構,然而軟件開發出來后,你發現這和你所理解的結構大相徑庭......

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97