Agile 不是在要求做得比較快, Agile 是希望能夠有因應改變的能力.
 
我想你們可以從敏捷宣言中可以看到, 它描述了敏捷的價值觀, 以及敏捷要遵守的原則
藉著親自並協助他人進行軟體開發,我們正致力於發掘更優良的軟體開發方法。透過這樣的努力,我們已建立以下價值觀:
 
個人與互動 重於 流程與工具
可用的軟體 重於 詳盡的文件
與客戶合作 重於 合約協商 
 回應變化 重於 遵循計劃 
 
也就是說,雖然右側項目有其價值,
但我們更重視左側項目。
 
 
我相信在上面沒有那句話的意思, 是說敏捷就是要做的快.
 
那為什麼大家會誤解敏捷就是做得比較快呢? 我想其中一個重要的原因, 就是名字取得不好. 大家很容易聯想 Agile = 快. 尤其是工具商, 媒體和老闆.
 
LeSS 的作者 Craig Larman 提到, Agile 這個名字取得不好, 容易讓人誤解, 應該改成 adaptive 是比較正確的
As "agile" has become meaningless jargon for anything, will avoid it, and use "adaptive” 
 
另外, 很多人也常常討論這是不是 Agile, 或者這是不是 Scrum?
 
基本上, 只要合乎敏捷宣言的價值觀以及原則, 你就可以說他是敏捷方法. 因此, 你才會看到 Scrum, XP, Kanban, FDD, DSDM, Adaptive Software Development, Crystal 等等, 這些方法都是 agile method. 
 
 
因此, 是不是 agile method, 在於它的精神, 只要符合敏捷宣言, 都可以說他是敏捷.
 
雖然有些人從來沒用 scrum/XP 方法來開發軟體, 雖然他那張嘴講得頭頭是道, 但只要他顯現出來的作法符合敏捷精神, 某種程度上, 他是 agile 的.
 
 
此外, 也有很多人在談這是不是 Scurm. Scrum 是一個軟體開發的框架 (Framework). 他只有跟你說要做什麼(what), 並沒有說怎麼做 (how). 
 
所以只要有做他所說的, 你就是在 run Scrum. 所以也有人戲稱, 只要會開會(planning meeting, daily scrum,….), 就會 Scrum.
 
例如: Scrum 說要有 product backlog, 但沒說 product backlog 要用什麼來寫, 你要用 user story, use case, SRS. 這都無所謂, 只要之後你容易拆解, 可以在一個 sprint 內完成, 方便討論, 我想用什麼都無所謂, 只是 agile community 比較多人在使用 user story.
 
 
那什麼東西是 Scrum Framework 的一部分呢? Scrum Guide 說了算, Scrum Guide 就是 Scrum 發明人所寫的文件. 只要 Scrum Guide 上面有寫的, 就算是 Scrum 的一部分. 
 
所以 story point, turndown chart, user story 等等, 這些都不是 Scrum, 只是在敏捷圈圈的人愛用他們. 所以爭有沒有用 story point 就敏捷不敏捷, 意義不是很大.
 
但是, 就算某些做法不在 Scrum 裡面, 用了難道就不好嗎?
 
另外, Scrum 裡面所有的東西, 就都一定是好的, 沒有任何缺點嗎?
 
Scrum 要解決的是如何讓開發過程很有效率, 他藉由迭代, 快速回饋, 快速調整. 他是一個以經驗為主的作法. 
 
但是如果一開始 product backlog 裡面的東西就是錯的呢? 
 
有些人會說, 沒問題啊, 一個或是幾個迭代後, 就會知道是錯的. 你說得對, 但是你也花了開發的資源, 做出了部分東西 (waterall 會做出全部喔), 這是不是也有點浪費呢? 
 
這有就是為什麼會有 Lean Startup, MVP, Growth, Design Sprint 等等東西的出現. 要做出賺錢的產品, 不是只要讓開發過程很有效率, 還有很多地方很重要. 很多時候你要合起來用, 在適當時機, 用出對的方法.
 
 
功夫, 兩個字, 一橫一豎. 對的, 站著, 錯的, 倒下. 只有站著的才有資格說話.
 
爭什麼東西是不是 agile/scrum 不重要, 爭用什麼就是王道也非是重點. 有幫助的就是好用, 能夠讓公司賺錢才是好
 
 
 
 
 
 
 
 

    全站熱搜

    kojenchieh 發表在 痞客邦 留言(0) 人氣()