理解敏捷的價值觀和原則

東溪陳姓少年發表於2020-05-24

敏捷宣言

敏捷宣言也稱敏捷軟體開發宣言,軟體開發業的先輩們對以下四則價值觀達成了一致:

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

注:下面是這份宣言的完整內容:

我們一直在實踐中探尋更好的軟體開發方法,身體力行的同時也幫助他人。
由此我們建立了如下價值觀。
個體和互動 高於 流程和工具
可工作的軟體 高於 詳盡的文件
客戶協作 高於 合同談判
響應變化 高於 遵循計劃
也就是說,雖然右項有其價值,但是我們更重視左項的價值。

個體和互動高於流程和工具

盲目的遵循流程會讓人走入誤區,好的工具有時會讓人更快速的犯錯誤。軟體世界中存在很多優秀的實踐經驗,但並不是所有的這些實踐都適合專案的當前情況。這個原則團隊中的所有成員應該都要心裡有數。他們需要理解團隊在一起的工作方式,明白每個人的工作會對其他人造成怎樣的影響。當我們打算在團隊中實施一項流程或工具時,即使在邏輯上和理性上看上去很合理,你還需要做的是(推銷流程和技術)讓大家明白這麼做的理由,知道團隊到底在為此做什麼。如果不能讓團隊很好的理解你的目的或初衷,那麼在他們看來你只是在發號施令。

可工作的軟體高於詳盡的文件

在一個軟體專案中,有太多的事情可以文件化。很多團隊都會決定採用詳盡的文件,事無鉅細地全部記下來。也不考慮以後會不會有人來閱讀。敏捷團隊更注重可工作的軟體,即可以給公司帶來價值的軟體(公司可出售或運營的軟體,幫助員工高效工作的軟體等等)。

所謂的價值:專案能交付的價值能節省的成本 > 開發軟體本身的成本

雖然如此,文件還是要寫的很多種類的文件還是很有用的。好文件能幫助團隊理解問題,與使用者溝通,以及避免將錯誤的需求開發進軟體中。這種文件消耗的成本與後期文件給團隊節省的時間和精力相比是划算的。另一方面,關注可工作的軟體可以確保團隊沒有偏離正軌,如果文件能清晰地表明可工作軟體的方向,那麼這種文件對專案就是有貢獻的。團隊通常可以採用一些將文件嵌入軟體內部的實踐,比如TDD(測試驅動開發),關於TDD大家可以檢視這裡

客戶協作高於合同談判

當公司的組織架構是按照職能來劃分的時候,即程式設計師,測試人員,產品經理以及運營人員等產品相關的其他人員在不同的部門的時候。那麼他們的工作就像是互相遵照合約合作,不同部門團隊之間都會把服務級別協議放在臺面上討論。這樣做也許會降低風險,減少與老闆上級之間的矛盾,因為你可以憑藉一紙之文來指責其他團隊影響了軟體的交付,從而助長所謂的”甩鍋文化“。當公司的目標是給公司外的使用者交付軟體時這種方式只會適得其反。

敏捷團隊落實這項價值觀的一項實踐是在團隊中安置一名產品所有者,他可能不會參與具體的開發,但是他會參加會議,貢獻想法,最重要的是所有人都把最終的產品當作是自己的東西。

響應變化高於遵循計劃

專案管理中通常流行”怎麼計劃怎麼來“,遺憾的是如果計劃有誤,那麼構建出來的產品就是錯誤的產品。團隊需要不斷的發現變化,適應變化並且最後能快速的響應變化。制定計劃的人抗拒變化是很常見的事情,因為改變計劃需要消耗精力。

”任務板“是一項良好的實踐,可以幫助團隊做出響應變化的正確決策。

敏捷團隊通常會使用任務板來展示任務並跟蹤進度。他們會把任務或者使用者故事寫在索引卡片上面,然後根據專案的進展移動這些卡片。很多團隊還會在任務板上畫圖跟蹤進度。這樣做可以讓大家跟上進展,讓計劃不斷地實時地更新。

我們要意識到計劃是會變的,交付軟體產品比嚴格遵守計劃更重要。

沒有具體的實踐,原則是貧瘠的;但如果缺乏原則,實踐是沒有生命,沒有個性,沒有勇氣的。

敏捷軟體開發的12條原則

交付專案

1.最優先要做的是儘早、持續地交付有價值的軟體,讓客戶滿意。

2.欣然面對需求的變化,即使是在開發後期。敏捷過程利用變化為客戶維持競爭優勢。

3.頻繁交付可工作的軟體,從數週到數月,交付週期越短越好。

溝通與合作

4.在團隊內外,面對面交談是最有效、也是最高效的溝通方式。

5.在整個專案過程中,業務人員和開發人員必須每天都在一起工作。

6.以受激勵的個體為核心構建專案,為他們提供環境和支援,相信他們可以把工作做好。

專案實施-推進專案

7.可工作的軟體是衡量進度的首要標準。

8.敏捷過程倡導可持續開發。贊助商、開發人員和使用者要能夠共同、長期維持其步調,穩定向前。

9.堅持不懈地追求技術卓越和設計優越,以此增強敏捷的能力。

專案和團隊的持續改進

10.簡單是盡最大可能減少不必要工作的藝術,是敏捷的根本。

11.最好的架構、需求和設計來自自組織的團隊。

12.團隊定期反思如何提升效率,並依此調整。


總結

本文主要講述了敏捷開發中的價值觀和原則。正如文章那句話(沒有具體的實踐,原則是貧瘠的;但如果缺乏原則,實踐是沒有生命,沒有個性,沒有勇氣的。)所描述的。圍繞著敏捷開發的價值觀和原則,我們發展出了很多有效的實踐,Scrum、XP極限程式設計、看板方法、精益思維等等。有一個很大的誤區是時常在行業內有許多人認為某一項實踐就代表著敏捷開發。但是正如本文所描述的敏捷開發提供了他的價值觀和原則,敏捷開發並沒有一個強制的配套的實踐,甚至某些優秀的團隊並沒有遵循已有的敏捷相關實踐,只是在專案進行的過程中遵循的敏捷的價值觀和原則,僅僅如此,他們所做的也被稱的上敏捷開發。即敏捷的獨特之處在於從價值觀和原則出發。


關注筆者公眾號,推送各類原創/優質技術文章 ⬇️

WechatIMG6

相關文章