敏捷開發的價值觀與十二條原則
敏捷不是某一種方法論、過程或框架,更不是字面意義上的敏捷,而是一組價值觀與原則。
敏捷開發的核心理念:
- 敏捷開發的核心理念:敏捷開發的核心理念就是以最簡單有效的方式快速地達成目標,並在這個過程中及時地響應外界的變化,做出迅速的調整。
- 敏捷開發的第一條價值觀就是“ 以人為本”,強調“ 個體(人)” 及“ 個體” 間的溝通與協作在軟體開發過程中的重要性。這個順序不是偶然而為之的,敏捷開發將重視個體潛能的激發和團隊的高效協作作為其所推崇的第一價值觀。
- 敏捷開發的第二條價值觀就是“ 目標導向”。同其他眾多管理理論和模型一樣,敏捷開發認同目標導向是成功的關鍵,因為沒有目標也就無所謂成功。敏捷開發的價值觀中清楚地闡明,軟體開發的目標是“ 可工作的軟體”,而不是面面俱到的文件。而遺憾的是,很多軟體專案已經在紛繁的文件之中迷失了自己的目標。
- 敏捷開發的第三條價值觀就是“ 客戶為先”。雖然敏捷開發強調的第一價值觀是“ 以人為本”,但敏捷宣言的締造者們並沒有忘記客戶,相反他們真正的理解客戶的需求、懂得如何與客戶合作。敏捷價值觀裡強調的“ 客戶為先”即不是簡單地把客戶當作“ 上帝”、刻板的推崇“ 客戶至上”,客戶要求什麼、我們就做什麼;也不是把客戶當作“ 談判桌上的對手” 甚至“ 敵人”,去鬥智鬥勇。敏捷價值觀把客戶當成了合作者和夥伴,把自己的使命定位為“ “ 幫助客戶取得競爭優勢”。
- 敏捷開發的第四條價值觀就是“ 擁抱變化”。人們常說“ 世界上唯一不變的就是變化”,大多數人也相信事實確實如此。而以往很多的軟體專案卻忽視了這一點,或者更準確地說是他們不願意“ 正視”。他們總是試圖用詳盡的計劃去預先窮舉這些變化,然後又試圖通過嚴格遵循計劃來控制變化的發生,而結果往往是被不斷湧現的變化擊垮。敏捷開發價值觀中承認變化是軟體開發的一部分、並相信正是客戶在不斷變化其需求的過程中明晰了其真正的需要。因而敏捷開發歡迎變化、擁抱變化,並可坦然應對變化,正是這些變化為客戶和專案帶來了價值。
- 最後,還應記住敏捷宣言中的最後一句話:“ 儘管右項有其價值,我們更重視左項的價值”—敏捷宣言並未否定或貶損“ 右項” 的價值,在敏捷開發的價值觀中承認“ 流程和工具”、“ 詳盡的文件”、“ 合同談判” 以及“ 遵循計劃” 的重要性,只是兩相比較,“ 更重視左項的價值”。
敏捷開發的十二條原則:
1)我們最重要的目標,是通過持續不斷地及早交付有價值的軟體使客戶滿意。
2)欣然面對需求變化,即使在開發後期也一樣。為了客戶的競爭優勢,敏捷過程掌控變化。
3)經常地交付可工作的軟體,相隔幾星期或一兩個月,傾向於採取較短的週期。
4)業務人員和開發人員必須相互合作,專案中的每一天都不例外。
5)激發個體的鬥志,以他們為核心搭建專案。提供所需的環境和支援,輔以信任,從而達成目標。
6)不論團隊內外,傳遞資訊效果最好和效率最高的方式是面對面的交談。
7)可工作的軟體是進度的首要度量標準。
8)敏捷過程倡導可持續開發。責任人、開發人員和使用者要能夠共同維持其步調穩定延續。
9)堅持不懈地追求技術卓越和良好設計,敏捷能力由此增強。
10)以簡潔為本,它是極力減少不必要工作量的藝術。
11)最好的架構、需求和設計出自組織團隊。
12)團隊定期地反思如何能提高成效,並依此調整自身的舉止表現。
- 敏捷開發原則是對敏捷價值觀的解釋和實踐,它將敏捷的價值觀落實到具體的可操作的原則之上,遵循這十二條原則,是敏捷軟體開發專案得以成功的基石。
- 這十二條原則囊括了軟體專案管理的所有基本流程,而且這些流程足夠具體,它告訴我們專案管理的第一步就是要明確目標,而軟體專案的終極目標就是“ 不斷地及早交付有價值的軟體使客戶滿意”;它提示我們軟體工程的起始點是需求,而需求的固有特徵就是不斷變化,敏捷開發過程要響應變化;它強調“ 可工作的軟體是進度的首要度量標準”,因而需要以儘可能短的週期“ 經常地交付可工作的軟體”;它重視相關干係人的協調(“ 業務人員和開發人員必須相互合作”、“ 責任人、開發人員和使用者要能夠共同維持其步調穩定延續”),重視激發個人潛能(“ 激發個體的鬥志”),要求團隊使用最高效的溝通方式(“ 面對面的交談”);它推崇技術變革所具備的強大能量(“ 堅持不懈地追求技術卓越和良好設計”);它強調精益生產(“ 簡潔為本”),要求專案採用自組織團隊管理模式,並指出“ 定期總結反思” 是校準團隊行為、最終達成目標的有效途徑。