常用的敏捷實踐包含:精益呕屎、看板、Scrum敬察、XP極限編程秀睛、水晶、DSDM動態(tài)系統(tǒng)開發(fā)莲祸、FDD功能驅動開發(fā)蹂安、AUP敏捷統(tǒng)一過程、OpenUP锐帜。
《敏捷實踐指南》將敏捷方法和看板方法是為精益方法的子集田盈。因為他們都符合精益思想的具體實例,都反映了“關注價值”缴阎、“小批量”允瞧、“消除浪費”。
精益軟件開發(fā)LSD
Scrum 參見我的另一篇文章蛮拔,ACP--Scrum
極限編程
極限編程 (XP)是一種基于頻繁交付周期的軟件開發(fā)方法述暂。該名稱基于這樣一個理念:將特定最佳實踐提煉到最純粹和最簡單的形式,然后在整個項目周期內持續(xù)運用該實踐建炫。
核心思想:鼓勵從最簡單的解決方式入手再通過不斷重構達到更好的結果畦韭,主張“不對將來可能的需求上投入精力”,這么做的好處肛跌,設計與代碼上的簡化可以提高交流的質量艺配。
價值:溝通、簡單衍慎、反饋转唉、勇氣、尊重
溝通:追求有效的溝通而非無意義的會議西饵。強調項目組成員酝掩、客戶之間有效地、及時溝通眷柔,打破信息孤島期虾,確保信息的暢通原朝。
簡單/簡潔:實現(xiàn)最賤的可行方案。應該盡快保持代碼的簡單镶苞,只要能滿足工作需要即可喳坠,有利于代碼的重構和優(yōu)化,確保頻發(fā)的發(fā)布功能茂蚓。
反饋:通過對當前系統(tǒng)狀態(tài)進行不斷的反饋武翎,達到迅速溝通毕籽、編碼劫笙、測試溉躲、發(fā)布的目的。
勇氣:勇于放棄和重構牍白,這點太難了脊凰。
尊重:尊重每一位成員,從人性的角度為項目組成員考慮茂腥,確保項目的質量和交期狸涌。
敏捷編程的開發(fā)過程核心活動:“需求→測試→編碼→設計過程中,因此對工作環(huán)境最岗、需求分析帕胆、設計、編程般渡、測試懒豹、發(fā)布等提出了新的思路、要求和挑戰(zhàn)驯用。
看板方法
水晶方法
水晶是一種方法論家族歼捐。水晶方法論旨在根據(jù)項目規(guī)模(項目中涉及的人員數(shù)量)以及項目的關鍵性來量化并提供方法嚴格程度選擇。
FDD(特征驅動開發(fā))
特征驅動開發(fā)(FDD-Feature Driven Development)方法是敏捷軟件開發(fā)過程中的一種晨汹,是由Jeff de Luca 、Eric Lefebvre贷盲、Peter Coad共同開發(fā)的淘这。它強調特性驅動,快速迭代巩剖,即能保證快速開發(fā)铝穷,又能保證適當文檔和質量,非常適合中小型團隊開發(fā)管理佳魔。
它提出的每個功能開發(fā)時間不超過兩周曙聂,為每個用例user case限定了粒度,具有良好可執(zhí)行性鞠鲜,也可以對項目的開發(fā)進程進行精確及時地監(jiān)控宁脊。它抓住了軟件開發(fā)的核心問題領域断国,即正確和及時地構造軟件。FDD還打破了傳統(tǒng)的將領域和業(yè)務專家/分析師與設計者和實現(xiàn)者隔離開來的壁壘榆苞。分析師被從抽象的工作中解脫出來稳衬,直接參與到開發(fā)人員和用戶所從事的系統(tǒng)構造工作中。
角色:項目經理坐漏、開發(fā)經理薄疚、首席編程人員、類負責人赊琳、領域專家街夭,由團隊成員分別擔任。
FDD最佳實踐
? 持續(xù)集成Continuous Integration.
? 對領域(業(yè)務)對象建模Domain Object Modeling.
? 按特性開發(fā)Developing By Feature.
? 類的所有者Individual Class ownership.
? 按特性組織團隊Feature Teams.
? 源代碼控制Source Control.
? 匯報/結果可見性Reporting/Visibility of results
DSDM動態(tài)系統(tǒng)開發(fā)方法
一種敏捷項目交付框架躏筏,強調制約因素驅動交付而著稱板丽。DSDM的基本觀點是:任何事情都不可能一次性圓滿完成,應該用20%的時間完成80%的有用功能寸士,以適合商業(yè)目的為準檐什。
DSDM的基本原則:
1.活動用戶必須參與。
2.必須授權DSDM團隊進行決策弱卡。
3.注重頻繁交付產品乃正。
4.判斷產品是否可接受的一個基本標準是符合業(yè)務目的。
5.對準確的業(yè)務解決方案需要采用循環(huán)和增量開發(fā)婶博。
6.開發(fā)期間的所有更改都是可逆的瓮具。
7.基本要求是高層次的并區(qū)分優(yōu)先級(以在低優(yōu)先級的項目上獲得一定的靈活性)。
8.在整個生命周期集成測試凡人。
9.在所有參與者之間采用協(xié)作和合作方法名党。
AUP敏捷統(tǒng)一過程
捷統(tǒng)一過程 (AgileUP)是軟件項目中統(tǒng)一過程 (UP)的分支。與緊前統(tǒng)一過程相比挠轴,該過程具有加速周期和輕量級的過程传睹。其目的在于在七個主要因素之間執(zhí)行更多迭代的周期,并在正式交付之前納入相關反饋岸晦。
該方法應用了敏捷技術欧啤,包括?測試驅動開發(fā)(TDD),?敏捷模型驅動開發(fā)(AMDD)启上,?敏捷變更管理和?數(shù)據(jù)庫重構邢隧,以提高生產率。
AUP的哲學
敏捷UP基于以下原則:
1.員工知道他們在做什么冈在。人們不會閱讀詳細的過程文檔倒慧,但會不時需要一些高級指導和/或培訓。
2.簡單性。使用很少的頁面(而不是數(shù)千個頁面)來簡潔地描述所有內容纫谅。
3.敏捷性炫贤。敏捷UP遵循敏捷聯(lián)盟的價值觀和原則 。
4.專注于高價值的活動系宜。重點是實際計數(shù)的活動照激,而不是項目上可能發(fā)生的所有可能事情。
5.工具獨立性盹牧。
OpenUP
四項核心原則:
1.平衡俩垃,在競爭優(yōu)先級以及最大化干系人利益之間,建立平衡 汰寓。
2.協(xié)作口柳,協(xié)作以協(xié)調利益,以及保證理解一致有滑。
3.關注跃闹,從開始起,就將注意力放在軟件架構上毛好,以減輕風險望艺,并組織軟件開發(fā)。
4.演化肌访,持續(xù)演進并且不斷獲得反饋找默。
生命周期:OpenUP的迭代開發(fā)流程分布并且貫穿在幾個階段中:啟始(Inception)、精化(Elaboration)吼驶、構建(Construction)和移交(Transition)階段惩激。
1.啟始階段: 確保項目目標和范圍已經明確。
2.精化階段:開發(fā)整體架構框架蟹演,確保架構已經穩(wěn)定风钻。
3.構建階段:從摸索到可部署產品的開發(fā),轉向功能模塊的開發(fā)酒请。?
4.移交階段:確保軟件被最終用戶接受骡技。