大家都知道 agile 是利用疊代 (iteration) 的方式, 逐步交付價值給客戶, 以早期獲得回饋, 來快速調整產品方向.
道理很簡單, 可是做起來似乎差異很大. 怎麼說呢, 讓我們來看看最常使用到的蒙娜麗莎的圖形.
在這個圖形中, 它包含了兩種開發想法, 一種是 incremental (上面的部分), 一種是 iteration (下面的部分), 看起來都很合理, 但是對我來說, 下圖才是 agile 想要的結果.
在上圖的想法, 以軟體開發的角度來解釋, 你就是先做一些模組, 然後再做另一些模組, 因此不到最後關頭, 你是無法暸解到系統的全貌.
在下圖中, 一開始就讓你知道全貌是什麼, 隨著疊代地進行, 你會越來越清楚.
你會說, 我們無法做到下圖的狀況, 因為有很多底層的 infrastructure, 無法在短時間就準備好, 沒有準備好 end to end 的流程就有可能跑不太出來.
這樣的說法, 我同意. 如果一開始你要做火箭, 再怎麼簡單基礎設施都要花很多時間. 因此我們再來看另一張常見的圖. 這張是 Henrik 來說明 iteration 的.
上面部分和上一張圖想表達的意義相同, 但是在下面的部分, 這張圖就更有意義了. 你一開始要做的是滑板, 接下來是腳踏車, 然後是摩托車, 最後是汽車.
這代表什麼呢? 雖然同樣都是藉由每次的發佈, 來了解客戶要什麼, 然後再來調整方向. 但是最大的不同, 他每次都有交付出有價值的東西, 也就是說他每次都做出不同的產品, 滑板車, 腳踏車, 機車, 和汽車等等. 這些都可以對客戶有價值的, 都是可以被使用的.
此外, 因為我一開始是做滑板車, 我底層的 infrastructure 就沒有這麼複雜, 這麼難做. 大家也會比較有把握可以處理, 所以也提高了你能夠在較短的疊代中做出來.
經過這樣的解說, 你應該知道好的疊代, 要交付出怎樣的價值了吧. 希望之後不要做出怪怪的東西出來了.
留言列表