Agile (敏捷) 的 6 個心法

近些年被力推的軟體開發流程莫過於 敏捷軟體開發 (Agile Software Development),但是對於大多數人而言,這些步驟、流程、術語,簡直是天方夜譚,聽都沒聽過、鴨子聽雷,有聽沒有懂。

前幾天我讀到《The Agile Samurai: How Agile Masters Deliver Great Software》的第一章,看到一些簡單卻又切入要點的 敏捷 (Agile) 說明,也是整個方法的核心精神:

每週做點有價值的東西出來 (Deliver Something of Value Every Week)

怎麼做呢?以下有 6 個要點,請參考服用:

1. 將大問題拆分成多個小問題 (break big problems down into smaller ones)

一個禮拜的時間算長或算短?就看你要解決的問題或專案的大小。通常而言,預計會超過一個禮拜的專案,最好是把又大、又難、又複雜的任務切分為更小、更簡單、更易於管理的小任務。

 agile-samurai-chpter01-01

2. 專注在真正重要的事情上,忘了其他的吧 (focus on the really important stuff and forget everything else)

軟體開發的過程中當然需要有計畫書、記錄、時程表,但如果這些東西僅僅是為了交差完事,那還不如不要做。更精實地檢視你每週的工作內容,放棄那些不能為最終成果加值的部分。

你知道的,沒有人背大背包攻頂。

3. 確保交付的成果有作用 (make sure that what you are delivering works)

為什麼要每週都做點有價值的東西出來?就是為了能夠儘早並常常測試,再不斷進行測試改善,該拿掉的拿掉、該加上的加上,這種每日不斷測試的方法就是一種生活方式。

4. 尋求回饋 (go looking for feedback)

定期停下來徵詢客戶的意見,看看目標是否依然正確,否則蒙著頭自己硬幹,做出來的東西偏離客戶目標,那真是一場雙輸的災難。

回饋就像是濃霧中的探照燈,有了它,既使看的距離不遠也還能知道方向;少了它,就是摔進山溝裡了。

5. 必要時改變計畫時程 (change course when necessary)

專案進行中總有意外,事情不是每一件都照著你所寫的劇本走。如果開了一個專案,規劃了任務與時程,但是執行時只盲目地按著原先的規劃做,沒有彈性,不能隨機應變,到最後未能達成目標,那麼所堅持的一切都白費功夫。所以:

When reality messes with your plan, you change your plan – not reality.
當現實攪亂了你原本的計畫,你要改變的是計畫,而不是現實。

6. 成為值得信賴的人 (become accountable)

每週都能做出一些有價值的東西,你將贏得客戶的信賴。為了做到這一點,你可以從這裡開始:

  • 擔起品質好壞的責任
  • 擔起時程快慢的責任
  • 設定期望
  • 需要花錢時就當作是在花自己的錢 (會心痛,就會珍惜)

這是一種訓練,更是一種態度

不是所有人都喜歡這種做事的方法。想一想,你和你的團隊每週都要做一點有價值的東西出來,不只是幾張圖片、PowerPoint 簡報或 Excel 工作表而已,這是有壓力的。

但是如果能夠將你的工作成果視覺化,常常和客戶或重要關係人 (Stakeholder) 聯絡討論,不斷地修正所產出的結果,那麼 Agile (敏捷) 將會為你帶來莫大幫助。

如果你不在軟體工程這個領域,也不打緊,相信我:

Agile (敏捷) 是一種訓練,更是一種態度。

每個人都能從中學到有用的方法。就從今天就開始你的 Agile (敏捷) 練習曲吧!

發表迴響