敏捷開發簡介

1. 何爲敏捷

敏捷是基於一種不確定性較高,未來環境難以預測的背景下產生的一種管理理念,這種理念並不意味着應該丟棄傳統的管理方法中的一些方法而是應該以快速傳遞價值給客戶爲目標進行管理,只要某個方法能加速我的價值傳遞就應該使用。

敏捷宣言

  • 個體和互動高於流程和工具
  • 工作的軟件高於詳細的文檔
  • 客戶合作高於合同談判
  • 響應變化高於遵循計劃

以上價值觀並不是右邊不重要,而是認爲左邊更重要。

十二原則

客戶爲主:我們的最高目標是,通過儘早和持續地交付有價值的軟件來滿足客戶。

擁抱變化:歡迎對需求提出變更——即使是在項目開發後期。要善於利用需求變更,幫助客戶獲得競爭優勢。

短迭代交付:要不斷交付可用的軟件,週期從幾周到幾個月不等,且越短越好

業務參與:項目過程中,業務人員與開發人員必須在一起工作。

以爲人本:要善於激勵項目人員,給他們以所需要的環境和支持,並相信他們能夠完成任務。

面對面溝通:無論是團隊內還是團隊間,最有效的溝通方法是面對面的交談。

成功導向:可用的軟件是衡量進度的主要指標。

保持節奏:敏捷過程提倡可持續的開發。項目方、開發人員和用戶應該能夠保持恆久穩定的進展速度。

追求卓越:對技術的精益求精以及對設計的不斷完善將提升敏捷性。

簡單務實:要做到簡潔,即盡最大可能減少不必要的工作。這是一門藝術。

團隊自組織:最佳的架構、需求和設計出自於自組織的團隊。

持續改進:團隊要定期反省如何能夠做到更有效,並相應地調整團隊的行爲

2. 敏捷生命週期

預測型——類似傳統的瀑布型

迭代型與增量型

敏捷型

四種生命週期的區別

3. 敏捷團隊

自組織

大量個體基於簡單規則的互相作用,無需中央調控,能夠涌現出整體上的新秩序

組建高績效團隊

致力於共同的目標,併爲了實現績效 目標自主承擔共同的責任

主要特點

具備合適技能和積極性的人員

承諾和有效授權

建立信任

勝於其他團隊並超過預期

保持可持續的速度去交付高質量軟件

一致性和可預見的速度

具備技術水平和商業知識

主要特徵

參與式領導力

有效的決策

開放和清晰的溝通

價值多樣性

相互信任

管理衝突

清除目標

明確定義角色和職責

協調關係

積極的氛圍

敏捷教練——僕人式(服務式)領導

特點

   以身作則,樂於成爲僕人,以服務來領導

   傾聽並支持團隊做出決策

   理解他人,具備同理心

   鼓勵並支持每個個體的個人發展

   勸說,而非使用權利

   主動尋求幫助他人,並信守承諾

   在跟隨者中建立信任

   提前思考未來,超越每日實現

職責

   教育相關方法,使其瞭解爲什麼要敏捷以及如何敏捷

   通過指導、鼓勵和幫助團隊提供支持

   通過技術項目管理活動

   慶祝團隊成功

   爲團隊與外部團隊合作提供支持,並起到橋樑作用

   創造互相欣賞的積極氛圍,建立加強合作的良好意願

敏捷團隊激勵

馬斯洛需求理論

   金字塔五層:生理需求、安全需求、愛與歸屬 的需求、自尊需求、自我實現需求。只有低層次滿足了纔會產生高一層級的需要

赫茲伯格雙因素理論

   激勵因素:來自工作條件本身,能帶來滿意、成就,例如:重視、成就、個人成長

   保健因素:是必須的但是不能給予激勵,缺少它會導致不滿意,例如:地位、工作安全、薪水等

   敏捷項目團隊需要保健因素去建立最低水平的團隊績效。同樣,激勵因素決定團隊是否能實現高績效

大衛動機理論

   追求成就

主要激勵因素 應類型人的特徵
成就

設定和完成挑戰性目標的強烈願望

願意承擔可能的風險去完成目標

願意收到來自進展和成就的反饋

社交

喜歡有集體歸屬感

想要被喜歡

喜歡協作競爭

不喜歡高風險或不確定性

權力

 喜歡權力和影響他人

 享受競爭和勝利

 享受地位和重視

4. 敏捷實踐

 精益軟件開發(LSD)

  解決影響生產過程中的問題

   過度:對於僱員和過程施加不必要的額外壓力

   違規:不切實際的需求導致過程中的不均勻

   浪費:非增值活動或過程

  精益 7 原則

 極限編程(XP)

一種基於頻繁交付週期的軟件開發方法,一種開發哲學,基於以下五大價值觀

驗收測試驅動開發(ATDD)

   Discuss:討論

   Distill:提取

   Develop:開發

   Demo:示範

測試驅動開發(ADD)

   編寫測試代碼

   覈對和確認測試

   編寫產品代碼,j接着採用測試

   重構產品代碼

Scrum

Scrum流行的原因

   Scrum提供簡單和可證明的結果

   它包含其他敏捷工程技術

   它強調小型團隊和團隊授權

   歡迎需求的變更

   它允許單一來源的優先項目工作開展

   Scrum會議包括日常狀態會議

   提供團隊在衝刺階段一個潛在的可交付增量承諾

  三大角色

產品負責人——告訴團隊要做什麼,做功能的先後順序是怎樣的,需求有變動時該如何處理

Scrum Master——引導團隊建立團隊規則,維護團隊和指導團隊外部成員遵守團隊規則,移除團隊障礙

開發團隊——執行衝刺,包括:每日檢視和調整、梳理產品列表、衝刺規劃、檢視和調整產品與過程

 三大工件

產品待辦列表:一份涵蓋產品中已知所需每項內容的有序列表,它是產品需求變動的唯一來源

衝刺待辦列表:一組爲當前Sprint選出的產品待辦列表項,同時加上交付產品增量和實現Sprint目標的計劃

產品增量:一個Sprint完成的所有產品待辦列表的總和,以及之前所有Sprint所產生的增量的價值總和

五大會議

產品待辦事項梳理——爲即將到來的衝刺做準備,並對事項進行分解和估算

衝刺計劃會議——如何完成交付所需的工作

每日站立會議——檢查衝刺目標的進度,並檢視完成衝刺待辦列表的工作進度趨勢

衝刺評審會議——產品負責人說明待辦項列表的完成和未完成;開發團隊討論衝刺期間做得好的、碰到的問題及解決方法

衝刺回顧會議——Scrum團隊檢視自身並創建下一個Sprint改進計劃的機會

Scrum實施流程

 

5. 敏捷工具

用戶畫像

  PERSONA七要素

   P代表基本性(Primary):指該用戶角色是否基於對真實用戶的情景訪談;

   E代表同理性(Empathy):指用戶角色中包含姓名、照片和產品相關的描述,該用戶角色是否引同理心;

   R代表真實性(Realistic):指對那些每天與顧客打交道的人來說,用戶角色是否看起來像真實人物;

   S代表獨特性(Singular):每個用戶是否是獨特的,彼此很少有相似性;

   O代表目標性(Objectives):該用戶角色是否包含與產品相關的高層次目標,是否包含關鍵詞來描述該目標;

   N代表數量性(Number):用戶角色的數量是否足夠少,以便設計團隊能記住每個用戶角色的姓名,以及其中的一個主要用戶角色;

   A代表應用性(Applicable):設計團隊是否能使用用戶角色作爲一種實用工具進行設計決策

  可以用來克服項目成員在產品開發過程中的若干難題

   需求分析階段:確定產品功能以及用戶行爲的優先級,輔助場景設計,讓產品更爲聚焦。

   產品設計階段:協助與項目成員以及利益相關者進行溝通交流,就設計意見達成共識和承諾。提高設計效率。

   用戶調研階段:許多其他的用戶研究環節對於用戶的招募以及研究內容確定都需要依據persona。

   產品策略階段:明確市場推廣方向、預估市場規模,更準確地爲產品做決策以及定位市場

用戶故事

三要素

   角色:誰要使用這個功能

   活動:需要完成什麼樣的功能

   業價值:爲什麼需要這個功能,能帶來什麼價值

3C原則

   卡片(Card):用戶故事一般寫在曉得記事本卡片上

   交談(Convertsation):用戶故事背後的細節來源於和客戶或產品負責人的交流溝通

   確認(Confirmation):通過驗收測試用戶的故事被正確完成

六個特性-INVEST

   獨立性(Independent)— 要儘可能的讓一個用戶故事獨立於其他的用戶故事。

   可協商性(Negotiable)— 一個用戶故事的內容要是可以協商的,用戶故事不是合同。一個用戶故事卡片上只是對用戶故事的一個簡短的描述,不包括太多的細節。具體的細節在溝通階段產出。一個用戶故事卡帶有了太多的細節,實際上限制了和用戶的溝通。

   有價值(Valuable)— 每個故事必須對客戶具有價值(無論是用戶還是購買方)。

   可以估算性(Estimable)—開發團隊需要去估計一個用戶故事以便確定優先級,工作量,安排計劃。

   短小(Small)— 一個好的故事在工作量上要儘量短小,最好不要超過10個理想人/天的工作量,至少要確保的是在一個迭代或Sprint中能夠完成。

   可測試性(Testable)—一個用戶故事要是可以測試的,以便於確認它是可以完成的

確定用戶故事優先級

   相對優先級=價值/工作量 估算每個故事的價值和工作量,計算相對優先級。

   莫斯科(MoSCoW)規則

     必須有(Must have):基本功能

    應該有(Should have):很重要但是短期內有替代方案的功能,如果沒有時間約束,此類功能是強制性的

    可以有(Could have):沒有時間就可以在發佈中不予考慮的功能

    這次不會有(Won't have this time)

   卡諾Kano模型:有時候基礎型需求部分實現就可以了,儘可能多的完成期望型需求,確定少量興奮型需求。

估算——對交付計劃產品所需要的成本、進度、投入或者技能進行的預測

  敏捷估算基礎

   估算讓團隊可以瞭解項目規格,計算ROI和IRR,形成項目執行許可的基礎。

   敏捷團隊基於產品負責人的投入來估算需求,Scrum Master進行保守估算。

   敏捷估算在整個項目期間進行。在項目逐步完善中更多信息出現,團隊定期評估新需求。

   團隊使用計劃撲克或者親和估算等技術來確定需求估算。

  準確性和精確性

   敏捷估算致力於準確性而非精確性,因爲實現精確性讓估算過程拉長並且昂貴

   故事點:描述一個用戶故事及其相關努力總體規模的測量單元

    特點

    分配故事點需要考慮的

    故事點估算的步驟

  估算規模敏捷評估旨在合理預測估算,不追求精確

   兩種非線性規模常用於估算

   寬帶德爾菲

    寬帶德爾菲的步驟

    計劃撲克

 

發佈了15 篇原創文章 · 獲贊 8 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章