概念篇(3):敏捷開發

作為一名准產品新汪,雖然沒有十足乾貨,但希望記下苦海行舟之點滴,以求共勉!

一、對於產品人的意義

敏捷開發是一種開發方法。其思想契合於目前移動互聯網快速開發上線的需求。作為確定產品方向和開發目標的產品經理,了解敏捷開發流程,可以合理的分解需求和任務,合理指導和配合開發人員計劃的制定和完成。掌握這種思想和方法,也可以在需求分析中更好的把握和分解需求。

二、敏捷開發

敏捷開發以用戶的需求進化為核心,採用迭代循序漸進的方法進行軟體開發。在敏捷開發中,軟體項目在構建初期被切分成多個子項目,各個子項目的成果都經過測試,具備可視可集成可運行使用的特徵。換言之,就是把一個大項目分為多個相互聯繫,但也可獨立運行的小項目,並分別完成,在此過程中軟體一直處於可使用狀態。

為什麼說是以人為核心?

我們大部分人都學過瀑布開發模型,它是以文檔為驅動的,為什麼呢?因為在瀑布的整個開發過程中,要寫大量的文檔,把需求文檔寫出來後,開發人員都是根據文檔進行開發的,一切以文檔為依據;而敏捷開發它只寫有必要的文檔,或盡量少寫文檔,敏捷開發注重的是人與人之間,面對面的交流,所以它強調以人為核心

什麼是迭代?

迭代是指把一個複雜且開發周期很長的開發任務,分解為很多小周期可完成的任務,這樣的一個周期就是一次迭代的過程;同時每一次迭代都可以生產或開發出一個可以交付的軟體產品。

具體方式

敏捷是一種指導思想或開發方式,但是沒有明確告訴我們到底採用什麼樣的流程進行開發,而ScrumXP就是敏捷開發的具體方式,在實際項目中可以採用Scrum方式也可以採用XP方式;Scrum和XP的區別主要為,Scrum偏重於過程,XP則偏重於實踐,但是實際中,兩者是結合一起應用的。

三、Scrum

1.什麼是Scrum?

Scrum的英文是橄欖球運動的專業術語,表示「爭球」的動作。通過運用該流程,使團隊高效的工作。

Scrum 是一個用於開發和維持複雜產品的框架 ,是一個增量的、迭代的開發過程。在這個框架中,整個開發過程由若干個短的迭代周期組成,一個短的迭代周期稱為一個Sprint,每個Sprint的建議長度是2到4周(互聯網產品研發可以使用1周的Sprint)。在Scrum中,使用產品Backlog來管理產品的需求,產品backlog是一個按照商業價值排序的需求列表,列表條目的體現形式通常為用戶故事。Scrum團隊總是先開發對客戶具有較高價值的需求。在Sprint中,Scrum團隊從產品Backlog中挑選最高優先順序的需求進行開發。挑選的需求在Sprint計劃會議上經過討論、分析和估算得到相應的任務列表,我們稱它為Sprint backlog。在每個迭代結束時,Scrum團隊將遞交潛在可交付的產品增量。 Scrum起源於軟體開發項目,但它適用於任何複雜的或是創新性的項目。

2.Scrum中的角色

  • Scrum Master —— 項目負責人、項目經理;團隊的領導和推動者,負責提升工作效率

  • Team —— 開發人員、測試人員、美工設計、DBA等全職能性團隊;負責交付產品並對質量負責

  • Product Owner —— 產品負責人、產品經理、運營人員;從業務角度驅動項目,傳播剷平的明確願景,並定義其主要特性

  • User —— 最終用戶、運營人員、系統使用人員;告知期望,提出請求

  • Manager —— 管理層、投資人;搭建良好的環境,組織結構和指導原則

  • Customer —— 客戶、系統使用人員、運營人員;提出產品需求的人,從外部購買軟體開發能力;內部產品的話,負責批准項目預算的人。不太理解這一角色,感覺是具有資源、資金決定權的人員。

3.Scrum中的三個工件/產出物

  • Product Backlog —— Backlog 待開發項、積壓的任務;所有需要交付的內容,更具價值順序排列

  • Sprint Backlog —— Sprint本意為「衝刺」,止跌帶周期,長度通常是一至六周;定義團隊接受的工作量,在整個Sprint過程中保持不變

  • Sprint Burn-down Chart —— Sprint燃盡圖,顯示累計剩餘工作量,反應工作完成狀況的趨勢圖

3.其他術語

  • User Story、Task —— 用戶故事、任務;一個用戶故事的大小和複雜度不要超過一個Sprint,一個Task不要超過8小時,需要合理進行分解

  • 障礙Backlog —— 問題列表,積壓的待處理事務;Scrum Master需要確保所有的障礙Backlog中的問題都已分配並可以得到解決

4.其他事項

  • 建立通用會議規則,保證會議的質量和輸出

  • 團隊建設,最佳人數控制在「5~9」人

  • 每日立會(Daily Standup Meeting),建議下班前開始,每天15分鐘,同樣時間,同樣地點

  • 任務板,Backlog、To Do、Doing、Done

  • 燃盡圖,動態調整任務量、鍛煉團隊人員的自我估算時間

  • Sprint規劃會議、評審會議、反思會議

四、XP

1.解析極限編程

XP(eXtreme Programing)是一種輕量(敏捷)、高效、低風險、柔性、可預測、科學而充滿樂趣的軟體開發方式。XP由價值觀、原則、實踐和行為四個部分組成,他們彼此相互依賴、關聯,並通過行為貫穿於整個生命期。

2.四大價值觀

XP的核心是其總結的溝通(Communication)簡單(Simplicity)反饋(Feedback)勇氣(Courage)四大價值觀,它們是XP的基礎,也是XP的靈魂。此外還擴展了第五個價值觀:謙遜(Modesty)

3.5個原則

  • 快速反饋

  • 簡單性假設,只為本次迭代考慮,不去想未來可能需要什麼,號召大家出色完成今天的任務

  • 逐步修改,任何問題都應該通過一系列能夠帶來差異的微小改動來解決

  • 提倡更改,盡量為下一次修改做好準備

  • 優質工作,工作質量不可打折扣,通常採用測試先行的編碼方式來提供支持

4.13個最佳實踐

  1. 計劃遊戲,「客戶負責業務決策,開發團隊負責技術決策」是計劃遊戲獲得成功的前提條件

  2. 小型發布,秉承「持續集成,小步快走」的哲學

  3. 隱喻,用於尋求共識、發明共享辭彙、創新的武器、描述體系結構四個方面

  4. 簡單設計,並不是要忽略設計,而是認為設計不應該在編碼之前一次性完成

  5. 測試先行/測試驅動開發,引入「自動化測試工具」

  6. 重構

  7. 結對編程

  8. 集體代碼所有制

  9. 持續集成,是小型發布、重構、結對編程、集體代碼所有制等最佳實踐的基本支撐條件,適當的引入每日集成工具

  10. 每周工作40小時/可持續的速度

  11. 現場客戶,最重要的需要將客戶請到開發現場

  12. 編碼標準

  13. 配合是關鍵

參考閱讀:

敏捷開發_百度百科

敏捷開發之Scrum掃盲篇 - 遠哥 - 博客園

敏捷開發之Scrum - NowOrNever - CSDN博客

敏捷開發之XP - NowOrNever - CSDN博客

Scrum敏捷開發實踐 - NowOrNever - CSDN博客

P.S. *Cover Photo by Alejandro Escamilla on Unsplash 本系列由 @西禪 原創發布,轉載請註明出處,謝謝。

推薦閱讀:

TAG:產品經理 | 移動互聯網產品經理 | 敏捷項目管理 |