Note

幹!「敏捷」的意思就是「快速」。這句話竟然是從工程師口中說出來的!

Agile 的原文語意是「靈活、善於應變」,而不是「快速」。這是對應《敏捷宣言》的其中一條:回應變化重於遵循計劃。(Responding to change over following a plan.)

另外根據敏捷宣言的 12 項準則,其中的「持續交付」和「穩定步調」,需要工程團隊「持續追求優越的技術與優良的設計」,減少技術債,降低流程浪費,才能夠擁有「可持續的開發」。有了「穩定步調」,團隊就會有穩定的歷史數據來證明計畫的可行性,也就是可預測性。有了可預測性的數據才能穩定自信的跟客戶(利害關係人)談條件。而不是畫押一個日期,然後押注在團隊的不穩定上面。

至於敏捷到底會不會讓團隊變快,我們從約束理論和精實方法這些更偏向第一原理的方法來思考。要讓團隊速度穩定、可預測、可量化,然後經由「定期自省」,來找到瓶頸與浪費,並實行適當的解決方案。這樣做的確可以讓團隊交付速度變快,但這只是敏捷的副產物,敏捷的重點仍然在「回應變化的能力」。

Note

注意!交付週期變短,跟傳統意義上的速度變快不一樣。詳見約束理論

敏捷並不是像儀式一樣跑個流程就會生效的魔法。如果沒有投資在最一開始的團隊穩定性,什麼都不會發生。如果沒有自省會議,什麼都不會發生。如果沒有找到瓶頸與可改善的方案,也是什麼都不會發生。

Quote

從那一刻起,我學到的軟體專案其實是一場馬拉松比賽,不是衝刺(sprint),也不是一連串的衝刺。為了獲勝,你必須調整自己的步伐。如果你全速奔跑、加速越過障礙物,你很快就會在抵達終點之前精疲力盡。

因此,你跑步的步伐必須能夠長時間維持。你必須以穩定的步調奔跑。如果以你超過穩定步調的速度奔跑,在抵達終點之前,你就必須慢下來和休息,這樣你的平均速度就會比你的穩定步調還要慢。接近終點時,如果你還保有一點力氣,你可以衝刺,但在那之前請不要這麼做。

管理人員可能會要求你跑得比你應該跑得更快,請不要遵循這樣的命令。你有義務節省你的資源,確保你能撐到最後。

—— 《Clean Agile》

References