iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0

聽過迭代式開發(Iterative Development)和增量式開發(Incremental Development)嗎?兩者的差異是什麼?敏捷軟體開發是哪一種?

要回答這個問題,不妨使用下圖這個我在講迭代式與增量式的開發時,一直拿來使用的經典教材。


Iterative and Incremental Product Development (Credit: Ricardo Sazima)

迭代式開發,就像是在畫一幅畫一樣,會先打草稿,上底色,最後的修飾成更豐潤的顏色與線條。就像是我先把所有我要的功能都做出純文字版,然後開始用簡單 CSS 上色、加上 JS 增加互動,然後一次又一次的增強功能,但每次都把所有功能都做到相同程度,最後一起釋出。

增量式開發,就像是我選定畫作的某一部分,一次將這部分畫好才開始畫其他的。有點像是我只先開發我要的功能中的某個部分,但我會把他開發到完美,再去開發其他的部分。

如果是純粹的迭代式開發,雖然我會看到整個成果慢慢的變好,卻難在一開始就能用完整的核心功開始賺錢、展現價值;如果是純粹的增量式開發,那又會變成一次要求太完美,結果產品只有少數功能可以用,難以推出。

比較好的開發方式應該是兩者兼用,在拓展整個產品的全貌後,針對核心功能與流程開始繼續迭代式開發,然後做到一定程度後,在開始往其他的功能展開迭代。

甚至有些功能我到最後根本不用做,因為在做下去價值已經低於成本了。甚至核心功能也不一定要迭代完美,而該去評估成本與未來收益的曲線。這就是敏捷軟體開發應該要有的思維,透過這樣增量與迭代的交替,讓產品開發在商業上有更多彈性與選擇。


上一篇
有需要再開發,而不是想要
下一篇
產品階段性規劃
系列文
我想找 12 歲的費曼聊聊敏捷與軟體開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言