先學 Scrum還是 Kanban?

先學寫程式還是先學測試?

對於初學者或新人而言由測試開始是再好不過的了。

一旦寫程式的功力夠了,製造缺陷的機率自然會下降些,這個時候再來寫程式,才不會害己害人。

原因很簡單;因為缺陷是程式沒寫好所造成的,所以要學寫好程式,先學如何測試別人的程式,先看懂別人的程式,再來嘗試寫好程式,似乎會好一些!

.

先學 Scrum還是 Kanban?

大部份的時候;你可能完全沒有選擇的餘地,這可不是老天能安排的,而是看老闆的安排。

從屬性上來看:

Scrum 容易探討未知,處理複雜專案,拿來開發新東西威力無比。

Kanban 是教我們如何自我檢討,可以迅速消除浪費,而得到好的效能。

如果你是開發團隊,當然是先從Kanban 開始。先檢討好團隊的基本動作,整頓好了再來開始作新的東西,從事開發的動作,自然少浪費。這是精實Lean 的好處。

(有太多開發團隊,只曉得一意往前衝刺,忽略了自己在開發上的浪費,這會造成很難走得久遠,尤其是Startup的團隊尤其如是。)

如果你是維護團隊,當然是先從Kanban 開始。視覺化是最大的亮點,團隊可以看見工作上的維護流程是一件相當有價值的事,針對個人亦是如此,人們常常因為養成習慣了,就一直持續做同樣的事情,很少會有機會回過頭來檢討,哪裡做得浪費了應該改進。看板方法的第一步: 視覺化。正是團隊可以拿來持續改進的基礎。這一點對維護工做更顯得珍貴。

如果你是測試團隊,當然是先從Kanban 開始。看的見以後才可以減少猜測的比例。測試團隊在擬定測試計畫之前,一定要對待測的產品或程式有足夠的了解,才可能開出實用的測試案例,不至於浪費大量的測試資源。或做了過多的重複性測試。

.

(你可能覺得奇怪,為什麼都是 Kanban Method 先行呢? 其實原因很簡單,因為它"單純“,不是簡單喔! 它沒有想像上的簡單,因為它可以演進得很有深度,但是它的目的很單純,就是追求效能。不像 Scrum 的目的,是要來應付複雜的專案開作業,基本的方向就完全不一樣的)

.

將看板方法融入Scrum的開發過程才是上策

看板方法是一種流程控制,他不是一種具有完備基礎的方法學,雖然他的潛在發展相當可觀,但目前他仍只是一種提供我們產出高效能的流程控制法而已。他缺少需求描述、沒有完備的會議規畫、少了團隊職責分配,少了很多很多軟體開發上該有的措施,這一點讓他看起來十分空泛,但就是這個特性也讓他十分適合融入其它開法方法中,尤其是 Scrum。

看板方法之父 David J. Anderson 是在Microsoft 公司推行敏捷開發法 Scrum 的時候發明看板方法的。他原本的目的只是要求能夠在最少阻力之下順利在組職中推行敏捷式的開發法而已。卻由於他熟悉限制理論的運作而開創了看板方法Kanban Method。做出了對敏捷開發的精實Lean 一支的重大貢獻。也就是這樣的典故,讓看板方法Kanban Method可以十分容易的融入到Scrum的開發過程。

著名的《 Essential Scrum 》 的作者Kenneth S. Rubin(它是2013年Amazon 敏捷理論最暢銷書),書中就大量的採用 WIP(Work-In-Process)的觀念,實際的運用在工作看板上面。讓Scrum在開發流程上減少了許多的浪費現象。

 .

※ 看板方法先行

因為它可以減少組職在推行敏捷上的阻力,它能讓工程師以最好的節奏持續進行開發工作。又能將精實觀念帶入團隊運作。

※ 融入Scrum的開發過程

因為看板方法的流程控制方式是用來提升Scrum運行迭代開發時的效能。讓 Scrum 能真正用來克服複雜的軟體程式開發過程。

.

Scrum 的目的在解決複雜的軟體開發作業

許多人誤把Scrum 當成加速軟體開發的銀子彈。這是錯的! 他的目的不在加速開發(加速開發工作是開發工具的廣告詞),它的目的是在解決複雜的軟體開發作業,讓它提高成功率。在協助團隊能夠提供給客戶真正要的產品,且讓他在市場上具有實際的競爭力。這一點也正好是看板方法所缺少的。

開發團隊千萬別因為實施了看板方法而誤以為需要把 Scrum 拋棄了,這是一種錯誤的想法,讓他們相輔相成才能有更大的效益。下一回就來談"運用看板方法的十個不應該放棄 Scrum的理由"。

.

測試難還是寫程式難

讓我們回到一開始的主題,到底是測試難還是寫程式難? 其實正確的說法應該是寫出正確無缺陷的程式難! 實際上程式設計人員在寫出程式之後,也必須透過測試,才知道他是否能正確運行。因此"寫跟測"實質上是一體的二面,一樣重要。

至於Scrum 與 Kanban Method 之間,則都是通往敏捷開發的路徑。已經在使用 Scrum 作開發工作的人士,學習 Kanban Method 可以讓他們進入精實的領域,有所依據的持續追求更好的效能。先學會Kanban Method 再跨足 Scrum 的人呢? 則可以看到敏捷開發在處理複雜問題上的具體方法,真正懂得去追求效能之外的正確性與方向。

先學 Scrum還是 Kanban? 二者之間並沒有衝突存在,端看你現在最需要的是那一樣,那一樣就先來吧!

發表留言