軟體專案研發流程該怎麼規範

【空山新雨】發表於2019-07-10

在軟體專案研發管理過程中,是否經常出現這樣的場景:開發人員不知道什麼時候轉測;專案經理拿個Excel文件群裡一發,某任務前天就應該完成的,怎麼現在還沒開始搞;前端問這部分UI是誰在做,什麼時候能做完;測試說線上這個bug又是誰改出來的,這次沒轉測這模組……等等。整個協作感覺一團亂麻,團隊內部充滿了甩鍋與抱怨的氛圍。軟體專案的研發流程該怎麼規範,讓團隊成員都能目標明確,步調一致,讓產品迭代充滿節奏感。本文基於筆者專案研發管理經驗整理,希望起到拋磚引玉的作用,探討高效團隊的協作流程模式。

1. 協作流程圖

協作流程圖

基本原則:

  1. 所有問題可跟蹤 (需求、Bug、優化)
  2. 所有工作透明化 (工作量、進展、Block因素)

2. 各階段內容詳解

2.1. 需求收集確認

本階段主要是與產品經理相關的活動內容:

  1. 產品經理在每次版本開始之前定期收集各方需求,包括客戶反饋、領導意見(對很多中小企業來說,老闆就是最大的“使用者”)、市場調查及技術團隊需求等來源,輸出需求列表
  2. 在版本開始之前召開版本計劃會議,參與者包括專案經理、產品經理,及專案核心成員,按優先順序梳理需求列表,輸出下次版本的初步任務列表(之所以說初步,是因為該列表後面可能根據評審情況進行調整)
  3. 產品經理基於初步任務列表完成詳細需求文件,組織團隊成員——包括相關UI、開發、測試,召開 需求評審會議,輸出評審意見及修正完成時間
  4. 產品經理針對需求評審會議中團隊提出的意見建議,在修正完成時間內及時修正需求文件,並及時通知團隊相關成員,輸出確定的需求文件

注:可在需求評審會議後,進行任務的初步認領分配與時間估算,初步確定轉測、上線時間節點

2.2. 設計開發

  1. 專案經理根據需求文件完成任務拆解,並在任務管理系統中建立對應任務單,指定經辦人
  2. 各經辦人認領任務後,根據自身任務的期限,及時與依賴方溝通,確定依賴任務的完成時間,以免影響自身任務進度,存在問題及時向專案經理反饋。
  3. UI設計完成後,相關開發人員與產品經理需對UI設計進行確認,如果涉及內容較多,可組織UI評審會議(由產品經理或專案經理權衡組織)
  4. 涉及流程的開發任務需要有必要的設計,技術相關負責人負責對設計review,沒有review的設計不能開發;任務開發完成需要進行程式碼review
  5. 專案經理定期組織專案例會(緊急版本建議每天一次,較長期版本建議一週一次或兩次),持續跟進任務進度與問題,並及時協調處理,以保障進度預期
  6. 在預定轉測時間節點前一天,開發人員編寫轉測文件,描述本次版本調整內容(附上任務列表)及注意事項,並通知專案相關人員(釘釘群或郵件)

2.3. 測試

  1. 需求評審會議後,測試人員需對各功能模組編寫測試用例文件,並在轉測前組織測試評審會議,對各功能各環節進行復核與查漏補缺
  2. 一次版本任務可根據情況分批測試,並確定每輪轉測的內容與時間節點;分批測試完成後,需在上線前進行整合測試,注意預留一定的時間用於問題修復
  3. 測試完成,需要將測試結論通報專案相關人員(釘釘群或郵件),包括遺留問題與是否達到上線要求結論

注:產品經理可在轉測後對開發實現進行驗收,以確定開發是否符合需求實際,以便及時進行調整

2.4. 上線

  1. 上線人員需在上線前編寫上線方案文件,記錄此次上線內容,並對此次上線操作進行推演,對所涉及的所有操作按步驟進行記錄,如資料庫操作,程式碼merge,jenkins構建等;對可能存在的問題進行備註及對應的處理方案,並提交技術相關負責人review
  2. 專案經理結合測試結論及其它各方面情況,決策是否上線,並將意見通知到專案相關人員(釘釘群或郵件)
  3. 上線人員按照上線方案文件記錄的步驟,依次完成上線操作(上線操作最好至少由兩人完成,一人操作,一人檢視,避免出錯)
  4. 上線完成後,測試人員與產品經理對此次上線進行線上驗證,確保線上功能流程無問題
  5. 驗證無誤後,由專案經理或其他指定負責人將上線通知釋出至利益相關者,包括專案團隊所有成員及相關合作方,說明上線時間、上線內容、影響因素、注意事項等(即時通訊群或郵件)

2.5. 覆盤

  1. 版本結束後,專案經理根據情況對上個週期組織覆盤總結會,總結存在的問題與原因,及後續規避的辦法,總結積累的經驗等

以上各階段並不是完全序列推進的,相互之間存在一些穿插,比如下一版本需求的收集整理與當前版本的開發是並行推進的,開發與測試也可以以分階段轉測的形式並行推進,等等。

3. 一些常用工具

  1. jira 用於專案任務管理,其中Agile外掛可方便檢視整體任務皮膚,對任務狀態一目瞭然,需要求團隊成員養成及時更新狀態的習慣
  2. confluence 文件管理,用於各類文件的集中化維護,以上所述的如需求文件、開發設計文件、轉測文件、上線文件等均可使用confluence以專案空間的形式集中化管理。
  3. gitlab 程式碼管理
  4. jenkins 專案部署構建工具
  5. nexus 搭建maven私有庫

4. 總結

團隊工作講求步調與節奏,好的流程與規範可以讓一個水平一般的人也能充分發揮其作用,從而讓團隊整體穩步前進,高效產出。而不好的流程,或根本不重視流程的團隊,卻往往一盤散沙,甩鍋與抱怨充斥,戰鬥力低下。本文以相對較粗粒度對軟體專案的基本流程管理做了介紹,更細節的內容可能需要團隊根據內部具體情況進行相應處理與對待。連結: https://pan.baidu.com/s/1WBHsIWoquKTQHJ6IaSql3Q 是筆者基於以前團隊敏捷專案管理及一些具體問題的思考分享PPT,供參考。提取碼:awya



我的個人部落格地址:http://blog.jboost.cn
我的微信公眾號:jboost-ksxy (一個不只有技術乾貨的公眾號,歡迎關注,及時獲取更新內容)
——————————————————————————————————————————
微信公眾號

相關文章