軟體的目標與項目計劃
07-24
在關係到軟體項目成功與否的眾多因素中,軟體的目標與項目計劃、成本估算、進度計劃、人員分配、軟體配置管理、風險管理、軟體質量管理和軟體工程文件規範等都是與項目管理直接相關的因素。由此可見,軟體研發項目管理的意義至關重要。 軟體項目管理是包括項目計劃、項目組織和控制的一系列活動。而軟體計劃就是對軟體開發過程的詳盡描述與安排。一、軟體開發項目的特點 了解軟體開發項目的特點對於項目的計劃制定和管理控制是非常必要的。 與其他類型項目的共同點:項目成功與否不僅取決於項目過程中所採用的技術方法工具,還取決於項目管理的水平,特別是計劃與控制的水平。 與其他類型項目的不同點: (1) 軟體產品和其他產品不同,軟體產品是一種「邏輯」產品,是無形的,沒有物理屬性的,看不見、摸不著、難以理解。 (2) 需求難以明確且頻繁變更:由於用戶的成熟度或責任心的原因,用戶開始無法給出明確的需求。在開發過程中,需求可能要經常修改,因此需要經常地修改程序與文檔。 (3) 難以在早期發現問題:需求不明確,加上後期修改可能沒有進行全局性的考慮,產生的問題難以從早期的文檔中直觀地發現,需要等系統設計出來後才會發現。 (4) 項目成員對文檔的重視不夠,符合用戶需求的高質量軟體,需要依賴於大量準確規範的文檔編輯工作,但項目組成員對它並不感興趣,很少有人願意認真去做,因而直接影響了軟體的質量。 (5) 勞動密集型+智力密集型:軟體開發過程需要大量高強度的腦力勞動,這些勞動非常細緻、高度複雜、容易出錯,質量難以用簡單的度量來衡量,使得軟體的正確性難以保證。對於不深入地掌握軟體工程知識或缺乏軟體開發實踐經驗的人員,是難以做好軟體開發項目管理工作的。二、項目計劃目的與作用 根據軟體能力成熟度模型(簡稱 CMM)集成 CMMI,軟體開發項目計劃的目的是:建立和維護定義項目活動的計劃。 項目計劃屬於 CMMI 的第二級,其過程域包括開發項目計劃、與相關人員交流、獲取對計劃的承諾、維護計劃。項目計劃為實施和監控項目活動提供了基線。 1. 項目計劃的目標 (1) 項目計劃的第一個目標:建立估計值,即建立和維護項目計劃因素的估計值。為此應該確定項目範圍,即通過建立高層工作分解結構來估計項目範圍;監理工作產品和任務屬性的規模與複雜度;確定項目的生命周期階段,以此來限定計劃範圍;基於估算的原理進行對工作產品和任務的項目工作量和成本的估算。 (2) 項目計劃的第二個目標:開發項目計劃文檔,即文檔化項目計劃、維護項目計劃,並以此作為項目管理的基線。為此應該建立和維護項目的預算和進度表;要識別和分析項目風險;確定如何採集和管理項目數據;確定實施計劃所需要的各種資源;確定項目實施所必需的知識和技能;確定各項任務或活動的承擔人;編寫項目計劃文檔。 (3) 項目計劃的第三個目標:獲得並維持所有項目干係人對項目的承諾。為此應當評審影響項目的所有計劃,使所有項目干係人理解項目承諾;必要時調整項目計劃以適應有效的和已經估計的資源;獲取所有項目干係人特別是項目任務或活動的承擔人對項目計劃的承諾。 項目計劃是項目實施的基礎。通過所有項目干係人認可的項目計劃形成文件,便於本企業高層領導、相關管理部門領導、相關參與部門領導、項目組成員、客戶、協作單位、分包單位等所有項目干係人之間的交流溝通。項目計劃是項目組為實現項目目標而科學地預測並確定項目生命周期的行動方案。任何項目計劃都是為了解決 3 個問題: ① 確定項目目標; ② 確定為了達成項目目標的各項行動的順序和時間; ③ 確定項目中每項行動所需要的資源。 所以制定項目計劃就是在明確項目目標的基礎上,確定項目行動方案,分配相關資源的項目綜合管理過程,就是通過對歷史的、當前的項目或組織內部的項目或組織外部的有關信息進行分析和評價,對項目生命周期過程中可能的發展進行評估、預測,對新項目實施工作進行的各項活動做出儘可能周密的安排,最終形成一個所有項目干係人認可的、約定項目各項活動、作為項目實施工作基礎的文件——項目計劃。項目計劃圍繞項目目標的完成系統地確定項目的任務、安排任務進度、編製完成任務所需的資源預算等,從而保證項目能夠在合理的工期內,用儘可能低的成本達到儘可能高的項目質量要求。在制定項目計划過程中必須明確 5 個基本問題:做什麼、如何做、何時做、誰去做、需要多少資源。 2. 項目計劃的作用 簡單地說,項目計劃可以起到如下作用: (1) 確定完成項目目標所需的各項任務範圍,落實責任,制定各項任務的時間表,明確各項任務所需的人力、物力、財力; (2) 確定項目的工作規範、遵循的標準,成為項目實施的依據和指南; (3) 明確項目組各成員及其工作責任範圍以及相應的職權,使項目組成員明確自己的工作目標、工作方法、工作途徑、工作期限要求; (4) 保證項目進行過程中項目組成員與項目干係人之間的交流、溝通與協作,使得項目各項工作協調一致,提高客戶滿意度; (5) 為項目的跟蹤控制提供基礎; (6) 項目計劃在項目中起到承上啟下的作用,計劃批准後應當作為項目的工作指南。三、項目計劃制定的原則 (1) 目的性:任何項目計劃的制定應當圍繞項目目標的實現展開。制訂計劃的第一步就是分析目標進而找出為了完成目標所要完成的所有任務。 (2) 系統相關性:項目計劃由一系列子計劃組成,如範圍計劃、人力資源計劃、進度計劃、資源計劃、質量管理計劃、風險管理計劃等。各個子計劃不是孤立存在的,彼此之間相對獨立,又緊密相關,應當形成一個有機的整體。構成項目計劃的任何子計劃的變化都會影響到其他子計劃的制定和執行,進而影響到項目計劃的正常實施。 (3) 經濟性:項目不僅要有較高的效率,而且要有較高的效益,因此計划過程是對多種選擇權衡、優化的過程。 (4) 動態性:由於項目環境一般處在變化之中,經常使計劃的實施偏離項目的基準計劃,因此項目計劃要隨著環境和條件的變化不斷調整和修改,以保證項目目標的完成。如何防止項目計劃多變,對出現的問題及時加以處理以保證進度按原計劃實現,在一定的意義上說甚至是更為重要的。防止項目計劃多變,就要改進計劃的編製工作,提高計劃的質量,這首先要求項目經理和項目計劃制定人員應當較好地掌握項目的環境條件,對各種條件進行深入的調查落實並做出有根據的預測,據以制定實施方案,適當留有餘地,以使編製的項目計劃切實而可行。其次就是要使這種計劃能夠得到貫徹執行,因為再好的計劃,如果不能認真執行,也不過是毫無意義的一紙空文。根據各方面的經驗,實行各種不同形式的責、權、利機制是保證計劃實現的關鍵。四、項目計劃的內容 項目計劃可以包含如下要素。 1. 項目範圍說明 項目範圍說明闡述進行這個項目的原因或意義,形成項目的基本框架,使項目所有者或項目管理者能夠系統地、邏輯地分析項目關鍵問題及項目形成中的相互作用要素,使項目干係人在項目開始實施前或項目相關文檔編寫以前,能夠就項目的基本內容和結構達成一致;項目範圍說明應當形成項目成果核對清單,作為項目評估的依據,在項目終止以後或項目最終報告完成以前進行評估,以此作為評價項目成敗的依據;範圍說明還可以作為項目整個生命周期監控和考核項目實施情況的基礎,以及項目其他相關計劃的基礎。 2. 項目進度計劃 進度計劃是說明項目中各項工作的開展順序、開始時間、完成時間及相互依賴銜接關係的計劃。通過進度計劃的編製,使項目實施形成一個有機的整體。進度計劃是進度控制和管理的依據,可以分為項目進度控制計劃和項目狀態報告計劃。在進度控制計劃中,要確定應該監督哪些工作、何時進行監督、監督負責人是誰,用什麼樣的方法收集和處理項目進度信息,怎樣按時檢查工作進展和採取什麼調整措施,並把這些控制工作所需的時間和人員、技術、物資資源等列入項目總計劃中。 3. 項目質量計劃 質量計劃針對具體待定的項目,安排質量監控人員及相關資源、規定使用哪些制度、規範、程序、標準。項目質量計劃應當包括保證與控制項目質量有關的所有活動。質量計劃的目的是確保項目的質量目標都能達到。根據 ISO 9001 要求和 PMBOK 2000,為實現質量目標,組織者應遵循以顧客為中心、領導作用、全員參與、過程方法、管理的系統方法、持續改進、基於事實的決策方法、互利的供方關係 8 項質量管理原則。 4. 項目資源計劃 有了項目範圍計劃和進度計劃後,資源計劃就是決定在項目中的每一項工作中用什麼樣的資源(人、材料、設備、信息和資金等),在各個階段使用多少資源。項目費用計劃包括資源計劃、費用估算和費用預算。 5. 項目溝通計劃 溝通計劃就是制定項目過程中項目干係人之間信息交流的內容、人員範圍、溝通方式、溝通時間或頻率等溝通要求的約定。 6. 風險對策計劃 風險對策計劃是為了降低項目風險的損害而分析風險、 制定風險應對策略方案的過程,包括識別風險、量化風險、編製風險應對策略方案等過程。 7. 項目採購計劃 項目採購計划過程就是識別哪些項目需求可通過從本企業外部採購產品或設備來得到滿足。如果是軟體開發工作的採購,也就是外包,應當同時制定對外包的進度監控和質量控制的計劃。 8. 變更控制、配置管理計劃 由於項目計劃無法保證一開始就預測得非常準確,在項目進行過程中也不能保證準確有力的控制,導致項目計劃與項目實際情況不符的情況經常發生,所以必須有效處理項目的變更。變更控制計劃主要是規定變更的步驟、程序,配置管理計劃就是確定項目的配置項和基線,控制配置項的變更,維護基線的完整性,向項目干係人提供配置項的準確狀態和當前配置數據。五、項目計劃編製過程 由於軟體開發的手工性、個體性特徵,軟體開發項目計劃不可能是一個靜態的計劃,在項目啟動時,可以先制定一個顆粒度相對比較粗的項目計劃,確定項目高層活動和預期里程碑。粗顆粒度的項目計劃需要不斷地更新迭代,根據項目的大小和性質以及項目的進展情況進行迭代和調整。迭代和調整的周期也是根據項目的情況進行制訂的,一般短到一周,長到 2 個月左右。經過不斷的計劃制訂、調整和修訂等工作,項目計劃從最初的粗顆粒度,到變得非常詳細。這樣的計劃將一直延續到項目結束,直到項目的成果出現。 制定計劃的過程就是一個對項目逐漸了解掌握的過程,通過認真地制定計劃,項目經理可以知道哪些要素是明確的,哪些要素是要逐漸明確的,通過漸近明細不斷完善項目計劃。階段計劃中包含的工作彙報和下一階段工作安排是掌握項目進度的依據,從階段計劃對照總體計劃,才能一目了然地看出工作的進展情況。制定計劃的過程,也是在進度、資源、範圍之間尋求一種平衡的過程。制定計劃的精髓不在於寫出一份好看的文檔,而在於運用您的智慧去應對各種問題和面臨風險並儘可能做出前瞻性的思考。一旦計劃被負責任地完成,他就可以給自己一個和管理層或客戶交流與協商的基礎,幫助你在項目過程中防範各種問題的出現,幫助你保證項目按時完成。 企業確定要開始某個項目時一般會下達一個立項的文件,暫且叫「項目立項文件」,主要內容是遵照合同或相關協議,項目的大致範圍、項目結束的截止時間和一些關鍵時間,指定項目經理和部分項目成員等。 接下來的項目計劃編寫一般要按照以下過程進行。 1. 成立項目團隊 相關部門收到經過審批後的「項目立項文件」和相關資料,正式按「項目立項文件」中指定的項目經理組織項目團隊,成員可以隨著項目的進展在不同時間加入項目團隊,也可以隨著分配的工作完成而退出項目團隊。但最好都能在項目啟動時參加項目啟動會議,了解總體目標、計劃,特別是自己的目標職責、加入時間等。 2. 項目開發準備 項目經理組織前期加入的項目團隊成員準備項目工作所需要的規範、工具、環境,如開發工具、源代碼管理工具、配置環境和資料庫環境等。前期加入的項目團隊成員主要由計劃經理、系統分析員等組成,但快要制定好的項目計劃一定要儘可能經過所有項目團隊成員和項目干係人之間的充分溝通。如果項目中存在一些關鍵的(指將影響項目成敗)技術風險,則在這一階段項目經理應組織人員進行預演,預演的結果應留下書面結論以備評審。 說明:項目計劃書必須在相應階段對項目目標、階段目標和各項任務進行精確的定義,就是要在相應階段進一步進行項目目標的細化工作,特別是在概要設計階段完成,詳細設計階段或編碼實現開始之前,應該對下一階段的目標任務進行細化,應當充分調查並掌握影響項目計劃的一切內部和外部影響因素;應當儘可能充分地分析項目工作分解結構,這樣不僅可以獲得項目的靜態結構,而且還能獲得項目各工作任務之間動態的工作流程;應當將項目目標、任務進行分解,制定詳細的實施方案。 3. 項目信息收集 項 目經理組織項目 團隊 成員 通 過分 析 接 收 的項目相關文檔 及 進一 步 與用戶 溝通等途徑,在規定的 時間內儘可能全面收集 項目 信息 。項目信息收集要 講究 充分的、有 效率 的溝通,並要達成共識。有些成員認為,電子郵件發來的文檔(計劃、需求、周計劃等)是在溝通不夠充分的情況下完成的,成員看過後有不了解或與自己的能力或意願不符的情況,但通 過電 子郵 件等方式溝通 的效率不高,這也 許是個習慣的問題,也 許和 某 個具 體 問題本身 是否 容易通過 電子 郵件 溝通清楚 有關。因此重要的 內容 需要開會進行 討 論,確保所有重要問題都得到理解,最終達成共識。討論會上達成共識的應當記錄成文字落實在具體的文檔中。 4. 編寫《軟體項目計劃書》 項目經理負責組織編寫《軟體項目計劃書》。《軟體項目計劃書》是項目策劃活動的核心輸出文檔,包括計劃書主體和以附件形式存在的其他相關計劃,如配置管理計劃等。《軟體項目計劃書》的編製參考《GB/T 8567-1988 計算機軟體產品開發文件編製指南》中項目開發計劃的要求。各企業在建立 ISO 9001 質量管理體系或 CMM 過程中也會建立相應的《軟體開發項目計劃書規範》。 編製項目計劃的過程應當分為以下幾個步驟: (1) 確定項目的應交付成果。這裡,項目的應交付成果不僅是指項目的最終產品,也包括項目的中間產品。例如通常情況下軟體開發項目的項目產品可以是:需求規格說明書、概要設計說明書、詳細設計說明書、資料庫設計說明書、項目階段計劃、項目階段報告、程序維護說明書、測試計劃、測試報告、程序代碼與程序文件、程序安裝文件、用戶手冊、驗收報告、項目總結報告等。 (2) 任務分解:從項目目標開始,從上到下,層層分解,確定實現項目目標必須要做的各項工作,並畫出完整的工作分解結構圖。軟體開發項目剛開始可能只能從階段的角度劃分,如需求分析工作、架構設計工作、編碼工作、測試工作等,當然規模較大時也可把需求、設計拆分成不同的任務。特別是在概要設計完成時可以對下一階段的目標任務進行橫向的細化。 (3) 在資源獨立的假設前提下確定各個任務之間的相互依賴關係,以確定各個任務開始和結束時間的先後順序,獲得項目各工作任務之間動態的工作流程。 (4) 確定每個任務所需的時間,即根據經驗或應用相關方法給任務確定需要耗費的時間; 確定每個任務所需的人力資源要求,如需要什麼技術、技能、知識、經驗和熟練程度等。 (5) 確定項目團隊成員可以支配的時間,即每個項目成員具體花在項目中的確切時間;確定每個項目團隊成員的角色構成、職責、相互關係和溝通方式。 (6) 確定管理工作,管理工作是貫穿項目生命周期的,如項目管理、項目會議、編寫階段報告。項目團隊成員之間的溝通時間、項目團隊成員和其他項目干係人之間的溝通時間也比較容易被忽視,而溝通時間也是比較不容易固定地量化和日程化。但這些工作在計劃中都應當充分地被考慮進去,使項目計劃更加合理,能更有效地減少因為計劃的不合理而導致的項目進度延期。 (7) 根據以上結果編製項目總體進度計劃,總體進度計劃應當體現任務名稱、責任人、開始時間、結束時間、應提交的可檢查的工作成果。 (8) 考慮項目的費用預算、可能的風險分析及其對策、需要公司內部或客戶或其他方面協調或支持的事宜。 5. 軟體項目計劃書評審、批准 項目計劃書評審、批準是為了使相關人員達成共識、減少不必要的錯誤,使項目計劃更合理更有效。 項目經理完成《軟體項目計劃書》後,首先組織項目團隊內部的項目團隊負責人、測試負責人、系統分析負責人、設計負責人、質量監督員等對項目計劃書進行評審,評審可採取電子或會議方式,並進行階段成果項目團隊內評閱記錄。應當要求所有相關人員在收到軟體項目計劃書後的一個約定時間內反饋對計劃書的意見。項目經理確保與所有人員就項目計劃書中所列內容達成一致。這種一致性是要求所有項目團隊成員對項目計劃的內容進行承諾,無法承諾或者說是無法達成一致的,要麼修改項目計划去適應某些項目團隊成員,要麼是由某些項目團隊成員採取妥協措施,去適應項目計劃的要求。 項目經理將已經達成一致的軟體項目計劃書提交項目高層分管領導或其授權人員進行審批,審批完成時間不能超過預先約定的時間。對於意義重大的項目,由過程式控制制部門如質量管理部和項目分管領導同時對《軟體項目計劃書》進行審批。 批准後的軟體項目計劃書作為項目活動開展的依據和本企業進行項目控制和檢查的依據,在必要時根據項目進展情況實施計劃變更。 項目質量監督員根據《軟體項目計劃書》和《軟體開發項目質量計劃書規範》編製軟體開發項目質量計劃。大型的項目應當編製單獨的《軟體開發項目質量計劃書》;規模較小的可以在《軟體項目計劃書》的某個章節說明「軟體開發項目質量計劃」,也可單獨編製類似「軟體開發項目質量控制表」的文檔。 配置管理員根據計劃書編製《項目配置管理計劃》。以項目工作計劃書中的階段成果為依據,根據配置管理計劃規範編製配置管理計劃,項目經理審批配置管理計劃,並對配置管理計劃的有效性負責。 項目策劃工作完畢,軟體項目計劃書通過評審。一般情況下,對軟體開發項目來說,工作轉入需求分析階段。六、項目計劃內容確定 項目計劃內容的確定一般要按照以下過程進行。 1. 確定項目概貌 合同項目以合同和招投標文件為依據,非合同項目以可行性研究報告或項目前期調研成果為依據,明確項目範圍和約束條件,並以同樣的依據,明確項目的交付成果,進一步明確項目的工作範圍和項目參與各方責任。 2. 確定項目團隊 確定項目團隊的組織結構和與項目開發相關的職能機構,包括管理、開發、測試、評審和驗收等。確定項目團隊人員及分工,與相關人員協商,確定項目團隊人員構成,如內部不能滿足人員需求,則提出人員支援申請。 3. 明確項目團隊內、外的協作溝通方法 明確與用戶單位的溝通方法。明確最終用戶、直接用戶及其所在本企業/部門名稱和聯繫電話。客戶更多的參與是項目成功的重要推動力量,加強在開發過程中與用戶方項目經理或配合人員的主動溝通,將有助於加強客戶在項目的參與程度。建議採用周報或月報的方式通告項目的進展情況和下一階段計劃,提出需要客戶協調或了解的問題。當項目團隊需要與外部單位協作開發時,應明確與協作單位的溝通方式,確定協作單位的名稱、負責人姓名、承擔的工作內容以及實施人的姓名、聯繫電話。 明確本企業內部協作開發的部門名稱、經理姓名、承擔的工作內容以及工作實施責任人的姓名、聯繫電話。 明確項目團隊溝通活動。項目團隊成員規模在 3 人以上的項目應該組織項目團隊周例會,項目團隊採用統一的交流系統建立項目團隊的交流空間。 4. 規劃開發環境和規範 說明系統開發的所採用的各種工具、開發環境、測試環境等,列出項目開發要遵守的開發技術規範和行業標準規範。對於本企業還沒有規範的開發技術,項目經理應組織人員制訂出在本項目中將遵守的規則。 5. 編製工作進度計劃 根據本企業規定和項目實際情況,確定項目的工作流程。編製項目的工作計劃,此計劃為高層計劃,各階段的工作時間安排要包括完成階段文檔成果、文檔成果提交評審及進行修改的時間,各階段結束的標誌是階段成果發布。在計劃中要求明確以下內容: (1) 工作任務劃分; (2) 顯示項目各階段或迭代的時間分配情況的時間線或甘特圖; (3) 確定主要里程碑、階段成果; (4) 要求用文字對項目工作計劃做出解釋。最終用一張時間表格來完整說明整個工作計劃。 對於迭代開發的項目,應編製出第一階段的階段計劃。階段內的任務分割以 2~5 天為合適,特殊任務的時間跨度在兩個星期內;在項目的進行過程中,項目經理編製雙周工作計劃,指導成員的具體工作。 6. 編製項目的監控計劃 說明進度控制、質量控制、版本控制和預算控制等。 7. 編製項目的風險計劃 分析項目過程中可能出現的風險以及相應的風險對策。對於大型項目,建議以附件方式編製,便於不斷更新。 8. 制定輔助工作計劃 根據項目需要,編製如培訓計劃、招聘計劃等。 9. 規劃開發支持工作 如供方管理計劃。 10. 規劃項目驗收 制定項目的驗收計劃,此項工作可以視需要進行裁減。 11. 規劃項目收尾與交接活動 制定項目的驗收、培訓和項目進入維護階段與技術支持部的交接工作
推薦閱讀:
推薦閱讀:
※遲到的18年計劃
※2017年學修計劃
※季莫申科:烏克蘭已有收回克里米亞的鬥爭計劃
※世衛組織表態:無計劃邀請台出席今年世衛大會|世衛組織|世衛大會|台灣
※優秀人才入境計劃