2016年11月15日 星期二

scrum vs deadline

scrum 是由 Ken Schwaber 與 Jeff Sutherland 發明的,而在他們寫的 scrum guide 裡面,並沒有提到 deadline 該怎麼處理,所以我用這篇來說一下小弟我對 deadline 在 scrum 裡面的想法。

1. Deadline 一定會存在啊,廢話。

假如你把自己拉到公司的經營者或是大長官的身份來看,你一定沒辦法參與開發團隊的大小事情,但是對於投資人、股東、客戶或是使用者,你對他們有一份責任,你會需要知道什麼時候之前,我能看到什麼功能或是什麼 bug 被解掉了。因為 time-to-market 是很重要的啊~


所以,就有了 deadline。

2. scrum 的 potentially shippable increment

scrum 希望在每個 sprint 結束的時候,都能交付出 potentially shippable,然後下個 sprint,再從這個 sprint 的 potentially shippable 往上長大,直到 PO (Product Owner) 覺得夠好了,就 ship it、上線了。

所以很多人就覺得 scrum 沒有 deadline 啊。

這是錯的。

對於一個成熟的 scrum 開發團隊或是軟體公司、組織來說,一定有 deadline,同樣的,第一個 sprint 的 potentially shippable 加上第二個 sprint 的 potentially shippable、加上第三個 sprint 的 potentially shippable… 直到 deadline 到了,就算還沒做完,PO 也只能 ship it、上線啦~~

但是因為每個每個 sprint 都有交付一些小小的東西,所以在 deadline 到的時候,開發團隊與 PO 可以確定價值高的 item 都被做掉了,而剩下的是一些可有可無的小東西。


3. MVP (Minimum Viable Product)
最小可行產品,其實我覺得這個東西真的很有爭議,甚至有點被濫用了。長官或管理者覺得的 MVP 都有一種包山包海的傾向,而真的工程師作出來的 MVP 就很陽春,爛爛的。

真正的 MVP 是可以解決使用者某一個小小的問題,或是完成一個小小的事情,記得在上CSPO的課的時候,Daniel 用丁字褲來形容一個 MVP 的概念,真的說得很好,可是啊,穿上丁字褲的恥度也是個問題,每個人的恥度不同啊。

我比較喜歡的是,MVP的概念不變,但是我們要儘速累加 MVP,做出 MMP — Minimum Marketable Product,這需要行銷人員參與到 scrum team 的開發過程裡面,不容易啊,但是這樣才能讓大家一起前進,不要工程師這一群人做 MVP 做了一大堆,做得很爽,可是前面的行銷人員推不出去、業務賣不出去,那其實也沒有 value。

(個人覺得) 錯誤的處理 deadline 的方法:

1. Water-scrum-fall
有的人覺得這是轉型 agile 的中間階段,無法避免。對我個人而言,這就是 scrum-but,這就是自己發明的 scrum,我很厭惡這東西,或許轉型敏捷真的或經過這階段,但我會希望這階段能短就短,因為他真的太噁心了。

2. 用很長的 sprint 做出所謂的 MVP。
這裡講的很長的 sprint 指的是 3, 4個禮拜、甚至更長。
這其實有邏輯上的問題。MVP 假如真的是丁字褲,怎會需要很長的sprint來做呢?反之,用三四個禮拜做出來的東西,還會是 MVP 嗎?

不過有人會舉手說,sprint 長度本來就是 1 ~ 4 個星期啊,用 4 個星期當作一個 sprint 有什麼不對?

沒有不對,但在 4個星期的 sprint 來說,我覺得 scrum master 要督促團隊(與PO),一起做出好幾個 MVP 來搜集 feedback,然後最後交付出不是 MVP 的 potentially shippable。

3. 用一個 sprint 做事。

承上,用 3-week sprint 做事可不可以?那 4-week sprint 呢?都可以麻,那兩個月一個 sprint 呢?半年一個 sprint 呢?

sprint 的概念就是盡量在短時間內交付出東西,搜集 feedback,再依據當時的情勢做判斷與 PBI 的排序,趕快讓開發團隊攻擊市場,是一種三發點放,“噠噠噠”、“噠噠噠”,然後邊開火邊移動的概念。假如想要開發團隊像是火箭砲一發過去,砰!!,就希望打死敵人,那就... 不敏捷了。


反正啊,我認同 MVP 的概念,但他常常被誤用,被不同角色與利益團體來正名自己的需求,這部分我就不喜歡了。而處理 deadline 就應該用 MVP 來盡快累積出一個可以行銷的、可以賣得出去的東西,在 deadline 之前,確定大部分有價值的事情都被做完了。

這是好事,也是每個人心裡面應該有的觀念。