臺灣微軟開發平臺技術經理徐鈞安也在集英信誠資深合夥顧問李智樺的分享中展示自己開發手機App的例子,將工作流程視覺化可以清楚知道每一項工作的進度,當應用在團隊開發時,可以清楚掌握和管理每一個人的工作進度。

集英信誠資深合夥顧問李智樺在微軟2014年TechDays大會上分享他在過去輔導大型企業敏捷專案的經驗,在專案中結合看板方法(Kanban Method)解決工作調度或管理的問題。

李智樺表示,看板方法是一套簡單的流程控制(Flow Control),除了可以應用在敏捷開發流程上,也可以結合傳統的開發流程,且看板方法是一種精實(Lean)的精神,也就是不浪費的精神。

李智樺也說,團隊在開發的過程中最大的浪費就是製造了很多臭蟲(Bug),而且還樂於除錯,但卻毫無生產力。要提升團隊開發的效率就是要從減少臭蟲開始,而非練就一身解決臭蟲的方法。

而開發團隊提升工作效率的方法就是要攤開目前的工作流程,然後檢討流程中有哪些過多的半成品(WIP)存在。舉例來說,在編寫程式的時候,可能會在一個Function中再寫一個Function,去呼叫時會回傳(Return),但是萬一回傳的值是錯的該怎麼辦?所以通常會寫一段偵錯的程式碼。

不過,李智樺表示,這樣的方式並不好,理想的方式是先在一個範圍的程式碼中寫下註解(Comment),再繼續編寫程式,不要讓邏輯中斷,直到邏輯思維完整後,再搜尋哪一段程式需要檢查。而這兩種方式的差別在於,對測試人員來說,有註解的地方很容易可以找到臭蟲,但是程式碼邏輯思維不連續的地方有隱藏臭蟲得要花很大的力氣才抓得出來。

李智樺也說,敏捷開發不是學完一種敏捷方法就可以擁有的,是透過不斷追求所換來的成效。

另外,他也特別強調看板方法和Scrum的觀念,很多人說,看板方法可能會擊敗Scrum,或是看板方法和Scrum可以結合為Scrumban,但是李智樺認為,這些說法和觀念簡直一塌糊塗,即使是非敏捷開發的專案也可以使用看板方法,所以看板方法和Scrum之間並沒有衝突。

成功敏捷化的秘訣

看板方法由應做的工作事項(To Do)、進行中的工作項目(On Progress)、回饋(Feedback)和完成(Done)所組成。而任務(Task)可以透過拖拉的方式在上述的4個狀態中移動。

另外,多工會影響團隊的工作效率,所以在進行中的工作項目要越少越好,也就是半成品的數量要越少越好。而完成的任務除了擺放至完成的狀態外,團隊也要檢討是否執行得有效率,經過討論讓工作更精華,且獲取經驗,所以完成的任務要在檢討過後才能刪除。

而看板方法的目的是在系統中製造無障礙的流動,盡可能縮短生產周期,並且規定兩件事,一是畫出工作流程圖,但不是企業規定的流程,而是真正開發的流程,明確地按照應做的工作事項、進行中的工作項目、回饋和完成來畫出工作流程。二是,減少半成品,例如,半成品只限制為1,就表示只能進行一項工作,但是回饋可以隨時增加。

另外,李智樺表示,要做到成功的敏捷化,首先要專注於質量,每個會議一開始的前3分鐘到5分鐘討論,把臭蟲列出來,然後修正品質,提升品質永遠都不浪費。

再來要減少進行中的工作,也就是減少半成品的數量,當一個團隊在龐大的壓力下,要求大家做任何工作也不會執行,所以要給團隊盈餘的時間,也要限制半成品數量,生產太多半成品對工作進度沒有幫助。

還有頻繁交付,李智樺特別強調,一定要做到這件事,如果沒有小質量頻繁交付,永遠不知道團隊做一次正式交付需要多少時間,一旦頻繁交付後,就可以知道團隊所能發揮的效能。

頻繁交付後,就可以根據交付速率來平衡需求(Demand),了解團隊需要多少時間來交付,以及團隊可以負擔多少需求量。在了解團隊的力量後,就可以安排優先順序。而在知道優先順序和問題後,找出異質點,消除變異性的根源,提升可預測性。

李智樺表示,要消除不可預測的部分才可以預測得準,越有把握則預測越準確。他可以把敏捷的方法教得很好,但是企業能不能持續下去,並且持續地追求效能,才是重點。

看板方法不斷強調減少半成品的數量,來提升團隊的效率和效能。以麥當勞得來速(Drive-Through)作業為例,麥當勞得來速有3個窗口,第1個窗口需花費20秒下訂單,第2個窗口花費30秒付款,第3個窗口花費40秒取餐,消費者用90秒就可以取得餐點。

而這裡的半成品就是指麥當勞得來速窗口的車輛,如果限制一次只有一輛車,也就是一個半成品,會得到WIP等於1,循環時間(Cycle Time)為90秒,兩者相除得到生產效率(Throughput Rate)約為0.0111,但是如果WIP為3時,一輛車需要120秒才能拿到餐點離開,生產效率為0.025,當WIP在4以上,每輛車拿到餐點的時間就會拉長,就會造成一種浪費,不過麥當勞可以趁第4輛車等待的時間推銷一些商品,對整個生產效率沒有影響,還可以增加效能。

李智樺表示,看板方法就是要追求最大的產能,所以生產效率越高越好,但是相對地,循環時間會越長,可是在開發過程中,循環時間越短越好,表示效能越高。

麥當勞例子中的原理來自於利特爾法則(Little's Law)「產出時間(Lead Time)=存貨數量×生產節拍」,也就是「生產效率(Throughput Rate)=半成品數量(WIP)÷開發周期時間(Cycle Time)」。

李智樺表示,善用盈餘時間,不讓工程師過度勞累,也不浪費生產效率,工程師也有時間可以學習,或是幫助其他人。例如,日本的星巴克櫃檯人員就採用這種方式工作。

看板方法的3個步驟

看板方法要從檢視企業的工作流程有問題以及浪費的地方開始,且看板方法具有明確的功效,能夠提升效能,在企業內推廣時阻力又小。看板方法提供企業不斷地在品質和製程上尋求改進,以提升品質,來增加可預測性。

而Scrum則是一個比較完整的開發流程架構,可以作為一種方法運用在管理自己的工作流程上,但是看板方法是一個改變管理方針的途徑,也是一種控制流程的方法,讓開發團隊不浪費,當管理者發現不浪費的時候,團隊發揮的效能就提高很多,所以看板方法並不是軟體開發法、專案管理、生命周期、流程等,純粹是控制工作流程的方法。

而看板方法有3個步驟,包含工作流程視覺化(Visualize Workflow)、限制半成品數量(Limit Work-In-Process),以及管理流程的暢度(Measure and Manage Flow)。

工作流程視覺化就是讓包含工作種類、資源分配、瓶頸等工作狀態公開在大家面前,而視覺化工作流程時,實體看板和電子看板都要用,電子看板可以讓多人同時查看,並且可以隨時更新,實體看板則是可以讓大家集合起來討論。

李智樺表示,團隊中的菜鳥也要知道工作流程中碰到的瓶頸,如果一個團隊每個人都很清楚流程卡關和有問題的地方,團隊就可以互相協助解決有問題的流程,而團隊的效能也就會展現出來,大家不斷有盈餘的時間去學習、上課或協助其他員工。

限制半成品數量就是不要開發太多沒有用,或是暫時用不上的功能,如果累積太多半成品就是在浪費時間。要在系統最脆弱的地方加以設限,一旦這裡速度變慢,整個系統就會被拖垮,因此必須在瓶頸地方的上游限制半成品的數量,避免整個系統的流動速度減慢。且透過限制半成品的數量,讓整個團隊成員專心處理一件事情,循環時間才會減少。

管理流程的暢度就是每天檢討管理流程,不斷地改善流程的流暢度,以得到最高的生產效率和最好的循環時間。團隊要確定每個功能都能盡快做完,如果流程進展速度下降就會有問題,並且要避免多工的情況發生。

李智樺表示,任何不增加價值的工作都是浪費。個人看板不僅提升個人工作效能,也是管理個人生活和工作流程的工具,還要想辦法做自己,自己一定有想做和不想做的事情,列出來後排序,當排序時才會發現工作的優先順序。如果沒有良好的管理,始終不知道工作事項在自己心目中的排序。


Advertisement

更多 iThome相關內容