中興通訊某產品大規模敏捷轉型實踐

本產品從2014年開始正式推行敏捷轉型,到2016年實現產品級敏捷,大概用了兩年時間。本文是根據我在中興通訊這兩年的經驗做的總結,見識比較膚淺,且大部分是靠回憶寫下來的,免不了存在一些不一致的地方。

一、     敏捷轉型方案

1     項目概況

  • 產品用途:中國移動IPTN承載網絡傳輸設備

  • 項目團隊:開發120人+測試30人

  • 產品需求數(Feature):約500條

  • 用戶故事數(Userstory):約3000條

  • 新開發單板:10塊

  • 新增修改代碼:約300W行

  • 測試用例數:自動化7000+手工3000

  • 研發週期(立項到設計定型):約1年

2     轉型思路

  • 研發過程遵循公司HPPD研發過程框架,結合CMMI過程域,推廣敏捷實踐

  • 敏捷推進工作遵循從團隊級敏捷向項目級敏捷、產品級敏捷演進的思路

    • 團隊級敏捷

      • 定位於軟件開發團隊內部,團隊7-15人,涉及軟件開發與系統測試部

      • 敏捷實踐範圍侷限在團隊範圍,團隊間實踐內容和能力水平差異性較大,團隊間協同工作能力弱

    • 項目級敏捷

      • 定位於PDT內研發組工作,以研發項目爲載體,涉及規劃部、軟件開發部、系統測試部、中試部等多個角色和團隊

      • 敏捷實踐的範圍拓展到整個研發項目層面,適用於強項目組織的敏捷開發團隊,弱化或取消了部門

      • 追求多角色、團隊協同工作能力,以提升項目研發質量和效率爲目的

    • 產品級敏捷

      • 定位於整個PDT團隊和HPPD產品研發全流程

      • 敏捷實踐範圍涉及到PDT團隊各個領域

      • 以市場需求驅動、高效內部成本和風險控制爲主線、以客戶價值實現爲中心的產品研發過程

3     組織結構調整

  • 改變以前的矩陣式,每個團隊都由SM+PO+Team組成,形成特性團隊

  • SM:從開發經理、測試經理、SE或其他業務骨幹中產生

  • PO:一般是熟悉業務的技術骨幹,如SE

  • Team:含開發(軟件、邏輯、微碼)、測試

4        SM與PO的職責

  • SM職責:

    • 引導各項Scrum活動

    • 與團隊一起向PO承諾迭代的輸出物

    • 跟蹤迭代內的任務進展,帶領團隊按時完成迭代任務目標

    • 管理與其他團隊的依賴,團隊的外部協調、對外接口

    • 幫助團隊移除工作中障礙

    • 和團隊一起做績效考覈,聽取團隊的聲音,尊重團隊意見

    • 關注團隊能力提升,包括團隊成員的業務技能和軟技能

  • PO職責:

    • 維護Backlog,及時根據競爭對手、市場變化和客戶反饋調整列表

    • 需求不明確時與產品級PO溝通

    • 從客戶的使用場景中挖掘出對其最有價值的特性,並及時傳達到團隊

    • 負責回答團隊關於測試場景的問題,讓測試場景儘可能地與客戶使用場景一致

    • PO參加每日立會,回答業務問題,但不干預管理工作

    • 參加需求梳理會,負責回答團隊關於澄清需求的問題,確定userstory驗收標準

    • 參加計劃會,和團隊共同確定每個團隊迭代輸出的內容

    • 參加評審會,在團隊內驗收工作產品,最好請到真實用戶來驗收

    • 參加回顧會,蒐集對產品方面的改進意見

5     敏捷框架

  • 團隊級:系統方案完成到系統測試結束,主要是特性團隊

  • 項目級:產品需求包確定到驗證階段結束,特性團隊+測試團隊

  • 產品級:整個產品開發週期(運營與維護階段前),特性團隊+測試團隊+硬件組+中試組+生產組+電源+工藝結構

6     敏捷方案

 

  • 應用項目:所有軟件、軟硬件系統項目

  • 立項標準:

    • 明確關鍵需求

    • 明確發佈迭代週期或版本發佈里程碑

  • 項目組成:強項目組織的敏捷開發團隊,弱化或取消了部門

  • 交付條件:團隊級敏捷滿足系統測試準出條件(成果鑑定),項目級敏捷滿足驗證測試準出條件(設計定型),產品級敏捷滿足小批量生產驗證準出(生產定型)

7     敏捷模型

  • 把產品的三個層級:產品級、項目級、團隊級的活動整合在一起。

二、     敏捷轉型實踐

1     每日站會

  • 每天早上8:45準時開始,按迭代輪流組織

  • 團隊輪流發言,站在看板前面,手上拿着故事卡講

  • SM收集需要在項目SOS站會上溝通的問題

2     SOS

  • 角色

    • 各特性團隊SM、QA、敏捷教練必須參加,PM視情況進行旁聽和補充

  • 溝通內容

    • 上次會議結束到現在,我們組做了什麼?

    • 這次會議以後,我們組主要任務是什麼?

    • 我們遇到了什麼困難,期望什麼樣的協助?

    • 我們需要跨組解決的問題有哪些?

  • 輸出

    • 待解決的問題列表和當前狀態更新

    • 好的建議和方法記錄

  • 不做什麼

    • 不在會上具體解決問題

      • 無法快速定位的問題,確定跟進人和參與者,會後專題討論,項目增加一張故事卡跟蹤

      • 複雜的技術和業務相關問題,提交給項目組,統一安排架構組討論解決

  • 其他

    • 每人1分鐘,總時間控制在20-30分鐘

    • 鼓勵組間協作,鼓勵跨組溝通

3     需求澄清/梳理會

  • 需求是可以分層次的,就像計劃可以分層次一樣

  • Epic/Feature/User Story是用於區分需求顆粒度的標籤

  • 項目級PO與團隊級PO一起分析Feature

  • 一起確定Feature的優先級、工作量、責任團隊、驗收準則

  • 項目級PO確定下一迭代的Backlog

  • 團隊PO將Feature拆分成US

4     迭代計劃會

  • PO在會前將Feature拆分US,確定驗收準則

  • PO講解US,團隊估算US工作量

  • 團隊認領US,並拆分出Task

  • PO確定迭代內完成的Spring Backlog

5     迭代回顧會

  • 原則:

    • 每個人對自己的工作都已全力以赴,都充分考慮了當前的情況,施展了自己的技能,調用了可調用的資源。

聚焦

散焦

探索

而不是辯護

對話

而不是爭論

交流

而不是爭吵

理解

而不是防備

  • 議程:

    • PO驗收團隊任務

      • PO與團隊一起驗收SprintBacklog中的US,驗收通過的關閉US

      • 未完成的移出本迭代,並判斷在後續哪個迭代完成,阻塞問題移到阻塞區

    • 團隊回顧總結

      • 團隊成員在便籤紙上列出本迭代做的好的、需要改進的問題

      • SM將問題分類

      • 團隊成員投票表決出三個需要保持的,三個需要改進的

      • 團隊討論出三個需要改進的問題的改進措施

6     持續集成

  • 入庫前的走查

    • 入庫前,先完成靜態工具檢查,通過後由結對走查人走查代碼,走查通過後才合入代碼。

    • 代碼合入日誌嚴格按照模板填寫:特性編號、影響分析、建議測試方法、修改人、走查人等信息。

  • 每日架構組審查

    • 架構組制定代碼走查統一模板

    • 每日17:00-17:30,架構師抽查業務組當天提交的代碼,發現違反規則的提出整改意見,並錄入到相關業務組的Sprint Backlog中

    • 架構組每月月底對各架構師代碼審查發現的問題進行分析彙總,對項目發佈月度報告。

  • CI持續集成:

    • 每天晚上12點觸發Pclint、Klockwork、行覆蓋率、複雜度等檢測工具、全量構建、自動化冒煙測試,早上7點自動推送結果,空餘時間運行全量自動化測試

7     分層測試

  • 測試分層

    • Story層,開發自測

    • Feature層,業務組負責自測、聯調,專業測試組負責系統測試

    • Epic層,專業測試組負責(方案測試)

  • 測試策略制定

    • 版本整體測試策略由版本經理和測試經理一起制定,包括版本計劃、測試時間、測試規劃,SM下發測試任務

  • 新功能測試用例

    • 開發自測用例、聯調用例由PO牽頭,輸出場景,測試工程師編寫用例,邀請規劃SE參與評審

    • 系統測試用例,由專業測試組牽頭,邀請PO\工程\規劃\TSE參與討論工程場景和用例制定

  • 測試流程

    • 開發自測(自動化+手工)>聯調測試>自動化冒煙測試>專業組系統測試(自動化+手工)>中試部驗證》

8     DOD:

  • DOD:完成的定義,基於“隨時可向用戶發佈”的目標,制定的衡量團隊工作是否已經完成的定義,由團隊和PO協商並達成一致。

  • DOD的好處:

    • 共同協商的完成定義,是團隊的自我承諾

    • 清晰和明確的完成定義保證每次迭代是高質量的

    • DOD的關鍵點:

    • 團隊自協商

    • 基於交付對象

    • 不斷改進

  • DOD分類:

    • 每個環節都可以定義一個DOD,比如:需求DOD、開發DOD、CI DOD、測試DOD、計劃會DOD……

9     度量

  • 度你所做,爲優而量!每個活動都可以定義相應的度量指標

  • 儘量自動化度量,並展示

     

10 COP:

  • COP 實踐社區

    • COP的工作協議由COP成員討論得出

    • COP的運作要透明化,工作協議、活動紀要、產出物等要及時公佈

    • COP倡導以面對面溝通爲主,其他溝通方式爲輔

    • COP通過成員的定期回顧不斷的完善其運作機制

  • COP的角色

    • 組長:對應COP的負責人,負責推動社區的發展和進步

    • 專家:COP內獲得大家認可的,COP不是被組織任命,而是被大家推舉的,成爲COP專家一是靠自身的技術影響力,二靠對COP的貢獻

    • 參與者:對相應技術領域感興趣的同事

  • COP的運作方式

    • COP活動在固定時間舉行,活動前,參與者把打算討論的議題和建議發給COP組長,或者組長主動收集

    • COP組可以創建活動日曆,向全員公開

    • 員工在COP的貢獻積累爲“貢獻點數”,在績效考覈時參考

       

       

 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章