理順軟件開發各個環節-9(開發管理-開發計劃管理)

5 開發管理

  開發管理,是對開發團隊開發活動的管理,開發活動佔據整個研發工做量的50~70%,有的甚至更高,是研發活動的核心。所以,理順開發管理工做,提升開發的效率,提高開發的工做質量,是開發管理者所追求的,也是見仁見智,這裏把個人理解寫出來,權當拋磚引玉。程序員

5.1開發的主體活動

  開發活動的範圍很廣,主體活動包括但不限於以下:編程

  • 開發計劃管理;
  • 軟件需求分析;
  • 整體設計;
  • 子系統和模塊的概要設計;
  • UI&UE交互設計;
  • 接口設計及文檔開發;
  • 詳細設計和編程開發;
  • 單元測試;
  • 聯調測試;
  • 缺陷診斷與修復;
  • 系統上線支持;
  • 評審、代碼審查和項目覆盤;
  • 用戶文檔開發;
  • 等等..

  具體要結合開發團隊的實際狀況,進行適當的裁剪。單元測試

  注1:此處將用戶需求調研和產品需求開發歸於產品部門,不歸屬開發團隊。若是爲定製開發的軟件項目,大多數歸於開發團隊。測試

  注2:測試工做歸於測試團隊,不在此列。測試工做量能夠按開發工做量的50%估計。編碼

5.2開發計劃管理

  軟件開發,是一羣人(開發團隊)在一個時間階段內進行開發活動的過程。因爲涉及人力資源、時間節點,以及任務目標,爲了不無序、低效和混亂,須要有開發計劃管理。
但制定開發計劃,是很是傷神的事情。通常按下列步驟進行:設計

  1)開發任務分解;接口

  2)評估工做量;資源

  3)肯定工序;開發

  4)將工做安排給合適的人員;文檔

  5)檢查約束條件,在開發時間、人力資源和需求集合三者之間協調。

5.2.1開發任務分解

  開發任務分解,是開發計劃的起點。計劃的可行性和有效性,首先依賴於開發任務分解。

  開發任務分解,即分解獲得開發任務集合的過程,有下列關鍵點:

  1)完整性,即開發任務是否覆蓋整個開發活動;

  2)任務的粒度粗細程度。

  開發任務分解,既與開發流程涉及的各個節點有關,如軟件需求分析、整體設計、編程實現、單元測試和聯調測試、用戶文檔編寫等;也與軟件的需求項的數量和開發工做量有關。

  有時候只有產品需求,就必須給出開發計劃。此時也只能進行粗粒度的任務分解,工做量估計須要經驗,還要留有餘量,這種計劃通常是項目報價時採用。畢竟不少商業決策都是在信息相對不完整時就必須進行的,如定製開發軟件的報價,就高度依賴於行業應用的開發經驗。

  而作了軟件需求分析後,肯定了軟件的規模,以及須要劃分幾個子系統以及每一個子系統的模塊組成,此時任務的分解粒度能夠比較細化。

  在公司內部,不妨容許開發計劃迭代,先給出大體的計劃,而後分階段細化計劃。

  在產品需求肯定時,輸出粗粒度的開發計劃。在軟件需求分析後,再行細化和修正。或者按MVP迭代或敏捷開發的Sprint迭代方式,給出每一個迭代週期的開發計劃。

  若是工做任務分解比較細,如每一個工做任務的工做量在0.5天到3天之間,開發成員的工做狀況的觀察點就多了,對控制項目進度風險和質量風險都有好處,這個粒度不妨稱爲「可管理任務量級」。但這對計劃制定帶來更大的挑戰,要求進入開發實施前,工做任務分解粒度達到「可管理任務量級」。

5.2.2工做量測算

  開發任務大多數爲智力能力類型的,如分析、設計、評審審閱、編程開發、單元測試、聯調測試、問題診斷等,也有一些會議類的,如討論會、評審會、項目覆盤會議等。
對於智力能力類型的任務,只能根據經驗來測算工做量。

  若是有績效考覈制度,就須要將工做量評估作到儘可能客觀。這個儘可能客觀的方法,就是多人評估方法。

  針對編程開發類任務,在部門創建專家組(高級程序員),評價任務工做量時,抽出2個高級,加上team leader,再臨時召集2箇中級,做爲工做量評估小組。

針對一批任務,先有team leader講解任務內容,而後你們各自寫出工做量(以代碼開發任務以中級程序員能力爲基準),以小時爲單位,而後你們亮出結果,若是最高和最低相差較大,則須要闡述理由,你們以爲理由充分,就投票決定工做量;若是相差不大,取中位數的工做量便可。評估後的工做量,做爲標準工做量,無論誰來完成該任務,其標準工做量是不變的。

  對於編程開發類任務,除了程序編碼,還應考慮單元測試的時間。

  針對系統分析設計類任務,由2個高級,加上team leader,來評估。

5.2.3工序安排

  任務的工序安排,即肯定某個任務的前置任務和後置任務,哪些任務能夠並行開展。

  這要求計劃編制者對任務的前後次序很是清楚,而且要重點關注高優先級的任務,和容易形成瓶頸的任務,若是這些任務延誤,會形成嚴重影響。

  工序安排,實際是運用運籌學的方法,提升並行能力。


5.2.4人員安排

  粗的開發計劃,只須要對每一個任務肯定人員資質水平要求便可,如某個任務要求系統分析員、高級程序員或中級程序員。

  但在項目實施前,全部的開發任務需指定具體的開發團隊成員,一人或多人。

  做爲開發小組Team Leader,比較清楚成員的能力水平,對業務的熟悉程度,以及出於人員培訓和後備的考慮等,安排合適的成員來負責具體的任務。這裏就考驗開發小組Team Leader的管理水平了。

5.2.5 平衡計劃的約束條件

  開發計劃有約束條件,須要在開發時間、人力資源和需求集合三者之間平衡。

  若是開發時間有限制,即項目交付時間點有限制,就須要人力資源和需求集合來平衡。若是時間緊,就要求或者更多的人力資源,或者更少的需求項。更多的人力資源,並非指更多的人,而是有效人力資源,在項目後期加入人員,因爲對項目的不熟悉,效果每每不盡人意。所以,在計劃階段,就須要清楚人力資源的需求狀況,考慮到人員到位並不能一廂情願,所以須要持續評估風險,並及時採起對策。

  至此,若是肯定計劃的開始日期D0,實際上能夠給出開發計劃的甘特圖了。

相關文章
相關標籤/搜索