也談敏捷軟件開發


目錄

1.敏捷簡介

      1.1 敏捷宣言

      1.2 XP實踐洋蔥圖

      1.3 SCRUM的過程圖

2.實施和管理敏捷項目

      2.1 組建敏捷項目團隊

      2.2 項目啟動—搭建項目環境

      2.3 項目啟動-准備及制訂Product Backlog

      2.4 用戶故事 User Story

      2.5 划分迭代和開工會議

      2.6 敏捷中的迭代實施過程

      2.7 敏捷項目中程序員的一天

      2.8 每日晨會(站立式會議)

      2.9 迭代評估和回顧會議

      2.10 測試和測試如何參與敏捷項目

3.小結

1.敏捷簡介

1.1 敏捷宣言

  • 個體和交互 勝過 過程和工具
  • 可以工作的軟件 勝過 面面俱到的文檔
  • 客戶合作 勝過 合同談判
  • 響應變化 勝過 遵循計划

1.2 XP實踐洋蔥圖

image

1.3 SCRUM的過程圖

image

2.實施和管理敏捷項目

2.1 組建敏捷項目團隊

敏捷項目團隊由三種角色組成
1、Product Owner—由系統分析人員擔任。負責收集和描述待開發產品的信息,並轉換成待開發列表。解釋和描述每一項任務的要求,項目開發過程中關注每個Story是否實現,解釋其要求細節。
2、開發團隊成員-由來自開發、測試、資料共同組成的多功能團隊,負責構建產品。
3、Scrum Master-由熟悉敏捷的成員,負責幫助和指導團隊按照敏捷方式操作。

除此之外,還有一個項目經理,負責整個團隊的管理。

2.2 項目啟動—搭建項目環境
1、搭建持續集成環境
      敏捷項目需要維護一套唯一的持續集成環境,能夠實現自動的從配置庫獲取代碼、編譯、靜態檢查和測試。
持續集成環境搭建,可采用IC持續集成系統,聯系軟件工程部進行技術支持。
持續集成至少做到每天固定執行一次,也可根據配置庫代碼變化觸發執行。
2、搭建開發環境
      包含項目的編譯等環境的配置等
3、搭建測試環境
      尤其是自動化測試的環境,能夠為持續集成系統調用執行

2.3 項目啟動-准備及制訂Product Backlog

  • Product Owner分析待開發需求任務列表,形成產品Product Backlog,並按照商業價值排序。
  • Product Backlog是產品唯一的待開發任務列表(如示例),是對開發任務的初步簡要描述,並附帶工作量的初步估計。Backlog既可以包含新增需求、功能,也可以包含待解決的問題等(有點類似傳統的AR列表)
  • Product Backlog隨項目進行,根據外部環境的變化,可能會不斷調整,但是已經在迭代內實施的任務項將不受影響。
  • Product Backlog通常使用User Story形式分析描述。

image

2.4 用戶故事 User Story

  • User Story- User Story是站在外部的用戶角度來描述系統所具有的功能/特性,並且此功能/特性能為客戶感知。
  • User和Story的識別:
    用戶Users-使用到待開發系統的任何角色(包含人、也包含其他軟件或程序),一般可以采用頭腦風暴形式識別所有的Users.
  • Story識別及描述:
    As a <Role>,I want <function>,so that<reason>
    做為一個<XXX角色>,我希望<YYY功能>,以便<解決什么問題/原因>
    User Story通常是最小的用戶感知粒度。
    注意:
    1、項目所有成員都可參與分析制作User Story(含開發、測試人員,資料人員也從使用資料的對象分析,形成資料User Story),這時候並不需要太多的系統實現內部細節。
    2、User Story分析結果記錄在《User Story模板》中,雖然敏捷可以記錄在白板、卡片等形式上,但在公司內部實施的特定環境下,用文檔記錄還是比較好的。

2.5 划分迭代和開工會議

敏捷計划和開工會議包含:
1、Product Owner向開發團隊介紹待開發任務Product Backlog,討論各項需求任務的目標和背景,提供所有成員深入理解需求的機會。
2、開發團隊集體從Product Backlog根據優先級,選擇任務,初步划分迭代,設定迭代周期(迭代周期通常是固定周期,比如1-4周都是常見的迭代周期)。划分迭代時,通常從Backlog的優先級開始,結合需要的工作量進行划分。
3、完成迭代划分后,啟動第一次迭代的分析工作,分解成任務,形成本迭代的Sprint Backlog. Backlog列舉任務的大小不同,可能分解為一到多個任務項Task.各Task也可以用User Story形式進行描述。這時候會涉及到部分的實現細節。

2.6 敏捷中的迭代實施過程

image

2.7 敏捷項目中程序員的一天

image

2.8 每日晨會(站立式會議)

  • 15分鍾的站立式會議,通常在早上進行。
  • 每個成員介紹三個事情:
    從上次會議結束后,完成了哪些工作?
    到下次會議前,將准備完成哪些工作?
    工作中還存在哪些障礙?
  • Product Owner和所有項目成員必須參與會議。
  • 每日晨會后,項目經理負責更新每項任務的進展情況。

2.9 迭代評估和回顧會議

  • 在每次迭代結束時,進行迭代評估,團隊展示他們所構造出的產品。
  • 參加人員:所有項目成員,以及項目的客戶。
  • 不需要准備PPT膠片材料,只需要如實的展示工作進展即可。
  • 同時回顧當前做得好的和不足的,以便在下一個迭代中改進。
  • 通常,迭代評估緊接召開下一個迭代的計划會議。

2.10 測試和測試如何參與敏捷項目

image

3.小結

    本文簡單介紹了敏捷開發的基本概念,詳細介紹了在敏捷開發中使用的優秀實踐,這些實踐在實際開發中對提高開發效率保障項目質量有明顯的效果。此外本人使用敏捷約2年時間,在實施敏捷的時候遇到各種各樣的問題,這些困難有:項目情況特殊,客戶不配合;團隊技術、積極性層次差異;成員工作習慣不接受敏捷;工作壓力變大,讓人抵觸。這些困難在各個公司相信都有或多或少出現,但敏捷其實是一種思路,並不是一種規范,不是所有的實踐都用上才叫敏捷,所以可以根據公司的實際情況來制定符合公司情況的敏捷流程,最終目的還是提高工作效率,並更好的適應需求變化,提高項目質量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM