項目計劃技巧對于現今的軟件開發人員來說是必需的。這里有一些幫助您有效地計劃下一個項目的建議。
認識到信心來自規劃的過程,而不是計劃本身。
創建項目計劃會迫使您早在編寫代碼之前考慮如何構建您的系統——減少項目的風險,因為您已經考慮了各種策略和方法并且已經選擇了有意義的一項。您的目的不應該只是不花氣力產生一個計劃;它應該是一個實際可行的計劃,您可以根據它來成功管理您的項目。
軟件過程推動計劃的開發。
每個軟件過程都有一個不同的集合,它包括組織團隊的活動方法以及規劃項目常用的技術。由于這個原因,基于 Rational Unified Process (RUP)的項目規劃不同于OOSP項目的規劃,而OOSP項目的規劃也不同于eXtreme Programming (XP) 項目的規劃。不同的過程有不同的計劃。
從粗粒度的計劃開始。
在項目將要開始時,應該制定一個粗粒度的、確定項目高級活動和預期里程碑的計劃。粗粒度的計劃將組織成迭代——根據項目的大小和性質,每次迭代通常在三周到八周之間發生(四周到六周為更佳)。其中一些迭代將集中在項目初期,而很多迭代將集中在整個應用的功能部分開發,還有一些迭代集中在將您的系統轉變成產品。
實施者應該是計劃人員。
創建項目計劃的佳人員是負責實施該計劃的人員。當規劃由一個人創建而由另一個人實施時,如果項目不能按時完成或超出預算,他們不太會相信計劃,而很有可能會責備它。也是說,參與項目的每個人都應該投入到項目計劃的開發和進展中。
不要忘記“不該忘記的事。”
計劃不僅要反映需求設計、建模、編程和測試的“真實”工作,而且還應該反映輔助活動(然而仍是重要的),它包括:休假和法定假日、培訓和教育、項目管理活動(如規劃和人員管理)、開銷(如系統當機時間、會議和回復電子郵件)、體系結構定義、測試之后的系統返工、系統交付、與重用相關的活動(如普遍化 )。
將任何設想和約束編入文檔。
規劃時您總要作一些假設,如能夠及時獲得應用程序服務器的新發行版,或可以得到熟悉您正在應用的技術和技巧的開發人員。同時,您將在一些約束下工作,如影響計劃的強制截止期限或資源限制。將這些假設和約束編入文檔,這樣,當您實施項目的任何時候更新計劃時,都可以記起您先前做出的一些“不尋常”決定。
認識到不同的資源意味著不同的計劃。
十名有經驗的開發人員組成的團隊創造出的成效要遠遠多于十名初學者組成的團隊所創造的成效。要想更加實際的話,您的計劃必須反映項目可使用的資源的真實情況。
創建現實的計劃。
項目組必須相信其項目的目的、估價和時間表。要做到這點,您必須真實地規劃,避免規劃超出您能理解的范圍。僅當您打算研究未知事項時,才能容忍無知。
只規劃有價值的事。
IBM DeveloperWorks 網站提供了許多可應用于您項目的佳實踐。然而,根據項目的性質,不是所有這些技術都將適合于您的獨特情況。要將這些佳實踐簡單地看作是您放置在“項目管理工具箱”中的工具,您可以根據需要適當使用這些工具。
適當使用項目管理工具。
一些項目管理工具,如 Microsoft Project,提供了重要功能, 如Gantt圖表(活動時間表)的開發、規劃與實際結果的比較、PERT 圖表(網絡圖表)的開發、任務的定義、任務之間相關性的定義、對任務的資源分配和資源平衡。所有這些事情似乎象是一個好主意,并且它們通常是好主意——但它們還需要許多精力來創建和維護,而且很少為項目組提供實際價值。的確,它讓一些項目管理人員感到富有成效。的確,高級管理喜歡看見您有一個計劃。但是,沒有一行代碼是由所有這個活動產生的。規劃是有價值的活動;但投入大量的時間來創建規劃圖表通常不是有價值的活動。