對比敏捷方法與工程方法之間的差異,能幫助我們更好地理解【敏捷開發(fā)】:
敏捷型方法是“面向人的”而非“面向過程的”。
工程型方法的目標(biāo)是定義一個過程,不管什么人使用這個過程,都能得到大致相同的結(jié)果;而敏捷型方法則認(rèn)為,沒有任何過程能代替開發(fā)組的技能,過程所起的作用是對開發(fā)組的工作提供支持。
作為雪鳥會議最重要的產(chǎn)物,“敏捷軟件開發(fā)宣言”(Manifesto for Agile Software Development,常被稱為“敏捷宣言”)從一開始就建立在對比的基礎(chǔ)上。
讓我們追根溯源,從源頭理解【敏捷開發(fā)】
敏捷宣言的全文如下:
顯然,這里的四個“高于”,以及“更好的軟件開發(fā)方法”,對比的參照物都是傳統(tǒng)的軟件工程方法。
敏捷在中國傳播的過程中,第二組對比“工作的軟件高于詳盡的文檔”效果最直觀,也最容易被接納。
很多企業(yè)長期苦于軟件質(zhì)量不佳、交付進(jìn)度無法保障、客戶需求把握不準(zhǔn)等問題,而傳統(tǒng)的軟件工程方法要求的文檔對于這些問題幫助往往并不明顯。
然而一旦在項目進(jìn)展過程中能獲得可工作的軟件,尤其是,如果用可工作的軟件向客戶征求反饋,那么客戶改變或增加需求的可能性就會不可避免地提高。
敏捷中國史話 熊節(jié)著 軟件工程領(lǐng)域敏捷軟件開發(fā)書 DevOps實踐指南 敏捷軟件史項目管理¥39.5
購買
客戶經(jīng)常自己并不完全清楚軟件應(yīng)該具備什么功能以及應(yīng)該如何運作。當(dāng)他們看到并試用真實的軟件時,模糊的想法會變得更加清晰,新的想法會被催生出來,他們就會要求改變或增加需求。
這些變化對于軟件本身是好事,但對于開發(fā)軟件的企業(yè)則未必,因為變化幾乎必然會帶來工作量的增加。
敏捷宣言的起草者們清晰地認(rèn)識到了這個問題,他們倡導(dǎo)的價值觀是避免以甲方乙方的姿態(tài)摳合同細(xì)節(jié)和糾結(jié)于復(fù)雜的變更管理流程,建立包含技術(shù)和業(yè)務(wù)的一體團(tuán)隊,超越單個項目、單個合同的極限,在長期的合作中建立共贏關(guān)系。這就是“客戶合作高于合同談判”的含義。
同時,開發(fā)軟件的團(tuán)隊自身需要構(gòu)建的能力也有所不同。傳統(tǒng)軟件工程以嚴(yán)格遵循預(yù)定計劃為目標(biāo),由此延伸出了一整套能力、實踐和工具。一旦認(rèn)識到需求的變化是常態(tài)而非異常,計劃的頻繁調(diào)整也就不可避免,此時傳統(tǒng)軟件工程的能力、實踐和工具反而可能成為阻礙。
以項目管理中常用的工具甘特圖為例,其中的計劃排期做得越細(xì)密,需求變化時調(diào)整起來就會越麻煩。因此,如果軟件團(tuán)隊希望在可工作的軟件基礎(chǔ)上與客戶建立合作而非談判的關(guān)系,就必須具備快速調(diào)整響應(yīng)變化的能力。敏捷宣言的第四組對比“響應(yīng)變化高于遵循計劃”,很大程度上是對軟件團(tuán)隊的能力要求。
在敏捷宣言的起草者們看來,這種響應(yīng)變化的能力固然可以借助合適的流程和工具有所加強(qiáng),但最重要的還是一線軟件開發(fā)者自身的能力和意愿。團(tuán)隊的能力最終取決于團(tuán)隊中每個人的能力以及人與人之間豐富而微妙的互動,流程和工具只能輔助,無法替代優(yōu)秀的個人與默契的團(tuán)隊。
“個體和互動高于流程和工具”這一組價值觀對比或許是敏捷宣言中最不直觀、最難理解的一組,卻也是敏捷的倡導(dǎo)者們認(rèn)同最深、時時念茲在茲的一組。
內(nèi)容摘自《敏捷中國史話》,作者 @熊節(jié)
《敏捷中國史話》用生動、翔實的語言,輔以情景描述,循序漸進(jìn)地講解了敏捷軟件開發(fā)在中國的發(fā)展歷程。從敏捷的發(fā)展背景,到世紀(jì)之交的中國軟件業(yè)的發(fā)展?fàn)顩r、敏捷的傳入、敏捷的低谷以及敏捷實踐者為敏捷發(fā)展所做的艱苦奮斗,還介紹了敏捷在通信行業(yè)和互聯(lián)網(wǎng)企業(yè)的實施狀況、敏捷軟件開發(fā)的發(fā)展和Scrum的流行。
本書既適合廣大的敏捷方法的愛好者閱讀,也適合對軟件開發(fā)方法發(fā)展歷程和對中國敏捷技術(shù)普及歷史感興趣的人員閱讀。