一、初識敏捷
什么是敏捷(Agile)?敏捷是思維方式。
傳統開發模型
央企,國企50%-60%需求分析。整體是由文檔控制的過程管理。
傳統軟件開發面臨的問題:
- 交付周期長:3-6個月甚至更長
- 溝通效果差:文檔化溝通不及時
- 按時發布低:技術債增多無法發版
- 團隊士氣弱:死亡行軍不關注結果
- 進度延期久:計劃和估算無根據
什么是敏捷?
敏捷是創造并響應變化,從而在動蕩的商業環境中創造利潤的能力。敏捷是平衡靈活性和穩定性的能力。(Jim Highsmith)
敏捷是一種思維方式:由價值觀定義,有原則指導,通過許多不同的實踐體現。(AHmed Sidky)
迭代開發
將一個大任務,分解成多次連續的開發。本質就是逐步改進。開發者先快速發布一個有效但不完美的最簡產品,然后不斷迭代。
每次迭代都包含分析、設計、編碼、測試、交付。不斷改進產品,添加新功能。通過頻繁的發布,以及跟蹤對前一次迭代的反饋,最終接近較為完善的產品。
增量開發
指的是軟件的每個版本,都會新增一個用戶可以感知的完整功能。
也就是說,按照新增加功能來劃分迭代。
敏捷開發
敏捷開發特性
精益思維、最小MVP:一個敏捷軟件的開發往往是在敏捷初期,是不會預見到幾個迭代之后的軟件需求的。
它往往是以最小可行性產品,MVP,去交付給客戶。
固定時間盒,價值導向:高價值優先,固定時間,增量開發。
擁抱變化,不怕變更:持續的交付,適應變化。
敏捷開發模型的優勢:
調查數據:敏捷應用的行業分布
調查數據:敏捷給組織帶來的好處
敏捷與傳統相比
二、敏捷概述
敏捷起源
21世紀,各種敏捷方法如雨后春筍般蓬勃發展。
自2001年起,"敏捷"一詞在軟件領域被賦予了新的含義。
2001年2月,由17位軟件開發領域的軟件顧問和思想的領導人組成的一組自稱為無政府組織的團體,聚焦在Snowbird Utah,他們成立了敏捷聯盟,并開始定義敏捷的軟件開發過程。
同年,《敏捷宣言》的正式發布,代表了21世紀互聯網時代軟件開發模式的一種先進理念和價值觀的正式建立。
敏捷宣言
我們一直在實踐中探尋更好的軟件開發方法,身體力行的同時也幫助他人,由此我們建立了如下價值觀。
敏捷思維
- 價值驅動
- 適應變化
- 自組織團隊
價值驅動:
抓住最核心產品價值、不追求大而全
團隊通過提供最小可行產品,通過不斷迭代,學習和汲取有價值的客戶反饋,并在這個最小化可行產品上持續快速迭代,直到產品達到一個相對穩定的階段,直至達到最終想要的樣子。
有所不為,懂得取舍
轉變思維,三角倒置
盡早交付,即使反饋