1. 程式人生 > >敏捷開發管理在我司的實踐

敏捷開發管理在我司的實踐

我們研發團隊(產品、研發、測試)規模30多,網際網路電商,快速成長中。
就個人經驗來看,技術主管的管理能力絕對達到一定水平,團隊研發管理井井有條,很有效率(基於已有積累,很快速的一個月上線新產品,快速迭代完成產品需求)。下面就結合我所見所聞,結合SCRUM的理論,結合我們公司來進行描述,一邊反觀一邊學習先進的管理的理念和配套工具、流程規範。
目前採用的是Visual Studio Team Foundation Server,作為scrum的工具。

Scrum 是一個用於開發和維持複雜產品的框架 ,是一個增量的、迭代的開發過程。在這個框架中,整個開發過程由若干個短的迭代週期組成,一個短的迭代週期稱為一個Sprint,每個Sprint的建議長度是2到4周(網際網路產品研發可以使用1周的Sprint)。

在Scrum中,使用產品Backlog來管理產品的需求,產品backlog是一個按照商業價值排序的需求列表,列表條目的體現形式通常為使用者故事。Scrum團隊總是先開發對客戶具有較高價值的需求。在Sprint中,Scrum團隊從產品Backlog中挑選最高優先順序的需求進行開發。挑選的需求在Sprint計劃會議上經過討論、分析和估算得到相應的任務列表,我們稱它為Sprint backlog。在每個迭代結束時,Scrum團隊將遞交潛在可交付的產品增量。 Scrum起源於軟體開發專案,但它適用於任何複雜的或是創新性的專案。

Scrum流程如下圖:

Scrum流程

Scrum框架包括3個角色、3個工件、5個事件、5個價值、4個支柱

3個角色

Scrum團隊中包括三個角色,他們分別是:

  1. 產品負責人
  2. 開發團隊
  3. Scrum Master

我司有專職產品2名,兼職產品2名(架構和Scrum Master兼)。
開發團隊人數28(全員),分為的數個行政管理單元:開發一組、開發二組、開發三組、測試組、前端組。就人員配置看,每組開發組人員2-6人規模不等,是由最開始的一個組分裂成的(人員規模擴大)。
Scrum Master,數年電商和技術管理經驗,srum理念的推動者。

3個工件

  1. 產品Backlog(Product Backlog)
  2. SprintBacklog
  3. 產品增量(Increment)
  4. 產品作為產品Backlog的生產者,對產品負責,使用sftp方式對外交付原型設計,做產品和測試依據,迭代。 SprintBacklog,按周定義衝刺,衝刺內容為產品Backlog的拆分項,通常按照:原型設計、UI設計、ERP設計及review、程式碼實現、測試、釋出來進行。

5個事件

  • Sprint(Sprint本身是一個事件,包括瞭如下4個事件)
  • Sprint計劃會議(Sprint Planning Meeting)
  • 每日站會(Daily Scrum Meeting)
  • Sprint評審會議(Sprint Review Meeting)
  • Sprint回顧會議(Sprint Retrospective Meeting)
  • 我公司並沒有遵循該原則,變通為周例會,小組leader彙報,進展情況在看板中更新。其實專案小組中是可以進行站會的,這是一個可以改進點。

    5個價值

  • 承諾 – 願意對目標做出承諾
  • 專注– 把你的心思和能力都用到你承諾的工作上去
  • 開放– Scrum 把專案中的一切開放給每個人看
  • 尊重– 每個人都有他獨特的背景和經驗
  • 勇氣– 有勇氣做出承諾,履行承諾,接受別人的尊重
  • 在我司主要體現在:
    1、KPI的考核上。主要原則:積壓工作會列入每月的考核,需要完成,若不能完成需給出合理理由,靈活控制。
    2、周例會看板及看板許可權的開放;
    3、平等對話。
    4、開放的知識庫。
    5、相互協助。

    4個支柱

  • 迭代開發
  • 增量交付
  • 自組織團隊
  • 高優先順序的需求驅動
  • 我司對迭代的運用較為深化,主要表現在:
    1、產品原型設計是快速生產的,所以允許修改和完善,等於在一個產品迭代週期內,原型是會被小優化迭代的,不限於開發階段、測試階段、上線後。
    2、程式碼研發和測試本身就是一個迭代。

    增量交付方面:
    1、研發組內,我主導的持續釋出,研發持續交付程式碼到測試,測試反饋直到符合釋出條件。
    2、公司級內,某個產品的第一期迭代上線交付,第N期上線交付。
    自組織團地方面:
    1、我們採用的矩陣方式進行人員管理和配置。簡單說,按職能分小組成為一個行政體質上的管理單元,小組長負責成員考核,但是在開發任務迭代中,則是由不同小組抽調的人員組成專案組來完成工作。針對具體任務主要基調是前端抽調和測試抽調+某開發小組(人員較為固定)。

    不學習不知道,原來管理還是很多門道。如果我作為一個scrum master角色,需要學習的會有很多內容。我是從公司創立初期就進入,見證了scrum由最初團隊成員不理解、忽略,在scrum master不斷的宣傳、督促下,研發團隊的日常運作和微軟Scrum管理工具TFS融合起來,對技術管理者的管理能力,服!有幸協助master對TFS的自定義模版進行配置,所以延伸瞭解了微軟在Scrum配置管理的一些內容,作為測試對整個管理結構進行梳理,提高。