今天要聊的就是 The Stacey Matrix,因為找不到 Stacey 較正式的譯名,所以就先用矩陣軸線為今天命題了。
The Stacey Matrix,原圖概念來自於 Ralph D. Stacey,並經由 Christiaan Verwjs 調整。
昨天聊到了庫尼文框架能夠協助判斷處境,那 The Stacey Matrix 就是協助判斷要使用怎樣類型的開發方法去應對。
在上圖中,橫軸代表的需求的明確程度,縱軸則代表著技術的掌握程度。若兩個面向都是明確的,那就對應到昨日庫尼文框架的 Clear,若是某個面向有些不明確,但是能夠探詢的範圍,就對應到 Complicate,若是未知的狀態超過某個程度,那就會有許多變數與以外,那就會屬於 Complex 的儲慶,若是這兩個面向都所知甚少、難以得知,那就會屬於 CHaotic。
而在 Clear 或 Simple 階段時,因為一切都很明確,對應昨天的圖,其實就是尋找最佳實踐。這時候只要找到一個最有效率的開發方法即可。
過去我可能會跟夥伴說這時候就是瀑布流適用的情境,但我現在不會只這麼說,因為我認為測試是可以提早發生的,除非我對該技術的掌握度已經到了連品質都能穩定的程度。
也並不是說 Scrum 或 Agile 不適合用在此處,而是要能其中一些敏捷開發方法的事件是為了探索未知,在這個情境下,就會顯得多餘。但是能夠透過迭代的方式去提早交付價值與風險管理,也會是好事。
在 Complicate 與 Complex 情境下,就相對更適合敏捷軟體開發方法,因為這些方法都更能幫助探索未知,且協助我們在未知中去調整,避免走錯方向造成過多的浪費。
而在 Chaotic 中,就比較適合 Kanban 方法,因為我沒有時間去做一個短期如 Sprint 的規劃,就算規劃了可能也會很快地被取代掉。這情境下,更在意的是行動與事情的流動,以及因得知變化和得到更多已知時快速的調整優先序。Kanban 提供的視覺化能更快協助意識與調整,而能藉此找出瓶頸並修正,正是在這個情境下所需要的。