關鍵字:軟件開發 項目管理
大多數的軟件項目都是失敗的。實際上,Standish group 報告表明,80% 以上的項目都是不成功的,或者是因為超過預算或延期未完或缺失功能,或者幾種因素都有。此外,30% 的軟件項目執行得十分糟糕以至于在完成之前就被取消了。根據我們的經驗,即便使用了諸如 Java、J2EE、XML 及 Web 服務的現代技術,軟件項目都無一例外的應驗了這條規律。本文概述了有助于提高軟件開發項目成功率的最重要的十點因素。Standish Group 等業界領頭羊也為軟件項目提供了重要的成功因素文檔。 項目成功的因素
1. 招募技術熟練、經驗豐富的人員 — 現在的環境要比以往的任何時候都要復雜。
像WebSphere? Studio 這樣的工具是很有用的,但在經驗不足的員工手里結果往往最多不過得到普普通通的成效,大多數時候還是失敗,這是因為他們不懂什么是好的項目管理以及應用新技術的最佳實踐。優秀的項目經理和項目架構師或技術指導將結成項目的領導力量。他們決定了這個項目將如何開展,并且對項目最終是否成功有著巨大的影響。如果您擁有這樣的人員,對待他們要好,而且要非常好。項目經理和技術指導有必要面試其他小組成員并決定誰可以加入這個小組。小組的其余成員同樣需要具有平均水平以上的技能和經驗。表現不好的人需要不斷去關注,但他們通?偸恰斑_不到要求”。最終,他們總是會拖小組的后腿,使得項目進展緩慢。然而,這并不意味著小組中不能有任何初級水平的人員。通常,這種成員如果獲得機會就會受到更大激勵,會盡力把事情做到最好。例如,在一個 20 人的小組里,可能有 2 個領導,6 個高級人員,9 個中級人員和 3 個初級人員。這樣 20 人的小組可以再細分為 4 或 5 個小組,每個組有一個組長。IBM Software Services 和 IBM Global Services(IGS)有經驗豐富的項目經理、項目架構師、技術指導和顧問,他們可以為您的項目提供幫助。
2. 應用前沿的、但非極端前沿的技術
《財富》雜志 500 強中的許多公司已經在軟件項目中成功地應用了成熟技術(如 J2EE 和 WebSphere 產品系列),這些項目對公司的商業經營模式產生了巨大的影響。在某些情況下,應用前沿技術是有必要的,這有助于幫助您在競爭中獲得顯著的優勢。但是,這樣一種策略是需要承擔風險的,在這種情況下更重要的是擁有優秀的項目人員。由于幾乎沒有人具有這類前沿技術方面的經驗,所以獲取外部專家的幫助同樣重要。項目若采用極端前沿的技術或還未測試通過的技術就必須自行考慮研究計劃。這也許對新興技術中的概念進行早期驗證會有所幫助。然而,與使用更成熟技術的項目相比,要用相同的方法或以相同的成本來交付基于這樣一種技術的項目是不現實的。
3. 運用正確的開發流程 — 現代軟件項目的特性要求使用一種螺旋式的開發流程(如 Rational 統一流程(Rational Unified Process,RUP))、某種反復式 IGS 方法甚或是靈活方法(如極端編程(eXtreme Programming))。
螺旋式的開發流程具有多個開發階段,可以逐步地降低項目風險。在每個階段結束時都需要決定繼續還是停止。在初期階段,原型可以用來供小組研究新技術,也可以用來研究用戶界面。舉例來說,RUP 方法定義了每個階段的角色、任務和構件,這些在項目小組在考慮項目相關事宜時起到提示作用。對任何項目而言,最重要的一點并不是用哪一個流程,而是流程應用得有多好。項目經理和技術指導需要重視并懂得如何根據碰到的問題調整流程,以及如何應用最佳實踐來執行流程。流程為需要做什么提供了指導和提示。另一方面,偏離流程原則太遠也會導致災難性的結果。相關文章軟件開發項目的最佳實踐中有詳細的內容。
4. 提供適當的工具 — 任何的軟件項目都需要有適合的工具來幫助小組提高生產力。
這些工具包括適當的硬件設備以及設計、編程、和測試工具。工具成本的合理性解釋起來相對比較簡單。例如,假設像 WebSphere Studio Application Developer 這樣一個 IDE 環境可以節約一個程序員一個星期 5 個小時的時間,平均下來,這個程序員對公司而言成本為 50美元/小時。很容易看出,這樣的投資回報(return on investment,ROI)是值得的。同樣的道理,要保證小組使用最新的和最快的 PC 用于開發,還要為質量保證、用戶確認和部署測試提供適當的測試環境。進行應用新工具或新技術的培訓對于完全發揮這些工具或技術的優勢是必需的。IBM 擁有一個巨大的培訓資源庫,包括在線及課堂課程。IBM Software Services 和 IGS 的顧問還可以提供專題討論、咨詢和現場培訓。
5. 應用源文檔控制管理
在項目一開始就要應用源文檔控制管理(SCM)系統。不僅是源代碼,所有的文檔都要實施 SCM 系統的版本控制。這使得小組可以回顧項目的歷史記錄,并獲取項目早期版本的所有相關文檔,如用例、體系結構和設計文檔、以及測試腳本和測試計劃。我推薦您使用企業級的 SCM 產品,如 Rational ClearCase/ClearQuest。
6. 應用有效的評估方法
多數項目在執行時都會超出預期的時間的 25% 到 100%,但也有一些項目比較準時,與進度相差的時間不到 10%。如果不能準確地估算進度,就沒有辦法有效地進行計劃。但是,在項目的初期階段所估算出的用時和工作量是非常模糊的。這些估算包含了許多偶然性并且可能使估算的值要翻上一倍。軟件開發是一個逐步求精的過程,估算也是如此。隨著項目的向前進展,估算也會更加精確。在項目結束時即可獲知項目實際的用時和工作量。多數軟件工程師往往會估計不足,項目的成本自然就很可能有所增加。當估算進度時,注意不要過多地壓縮進度。小組如果不能按照緊湊的進度執行,最終很可能與預期進度相差很遠。
7. 將工作細化為小的目標
延伸閱讀
文章來源于領測軟件測試網 http://www.k11sc111.com/