天天看點

用Kanban-Ace架構改進Scrum

\

關鍵點

\\

Scrum已經幾乎成了靈活的同義詞;雖然Scrum相當有用,但它仍有弱點和有待改善的空間。Kanban-Ace架構可以幫助它克服這些弱點。

\\

Kanban-Ace架構接受Scrum,并幫助團隊提高他們的靈活水準。這些改進通過以下做法完成:

\\

  • Akashi Bridge:這是一種新的工具,它可以在Kanban-Ace闆的背景下使用每一個Scrum事件,包括Sprint、Sprint計劃、每日站立短會、Sprint重整和回顧等。\\t
  • Kanban-Ace闆:它内置Akashi Bridge,大大提高了軟體開發的各個方面可視化程度,讓團隊可以識别趨勢,提高自身的靈活度。\\t
  • 精益思想:它是Kanban-Ace精益DNA的一部分。精益思想使團隊減少浪費,并優化Kanban-Ace事件和過程以滿足團隊的需要。\

\\

Scrum是一種廣泛使用的靈活架構,它已被證明對許多公司和機構都非常有用。然而,正如Fred Brooks的名言所說的那樣,在資訊技術上沒有“銀彈”,盡管Scrum有其好的部分,但有時我們靈活專業人員卻因為各種原因而不得不與Scrum的某些方面進行鬥争。在進一步展開本文的陳述之前,我要清楚地說明我喜歡Scrum。從2008年起,我就一直使用它。我甚至拿到了ScrumMaster的認證。而且,我發現Scrum有兩個概念特别有價值:受保護的疊代或Sprint,也有人正式代表使用者,那就是産品經理。

\\

然而,我個人對于靈活和精益的了解超越了單一的方法或架構,獲益于幾個靈感來源的智慧結晶,比如:Kanban、極限程式設計,精益開發,以及一些其它方法中的精華,來以更好的方式來實作靈活。是以,我開始建立一種方法,它基于精益和靈活的影響,Kanban是主要的統一力量,在2013年,Kanban-Ace方法已經在我們的網站上公布。

\\

然而直到現在,還沒有一本書整理Kanban-Ace方法的價值、原則和技術。原因是,在Agilelion公司裡,我們專注于通過錄制好了的視訊進行線上教學,同時也進行現場授課。何其幸運,Kanban-Ace方法能夠被世界各地的人們所使用,在這三年裡得到了人們大量的回報資訊,這些回報近的來自美國和加拿大,遠的來自德國、瑞士和澳洲。

\\

從我們的學生身上和我的職業咨詢實踐中,我注意到Scrum是無處不在的,它幾乎成為靈活的同義詞;雖然Scrum是衆多靈活方法之中的一種方法,不可否認的是,它是最廣泛使用的一種方法。而且,作為受認證的ScrumMaster專家,我在乎Scrum,并想向來了解Kanban-Ace的人展示,他們如何能在保留幾個他們喜歡的Scrum關鍵優勢的同時,提高他們的靈活性。

\\

Kanban-Ace現在是一個架構,而不是一種方法。原因是,架構的建立是為了适應一個特定的域,我們打算把Kanban-Ace擴充到以下一些新的領域:對Scrum的全面支援、輕量級靈活提升和産品創新工具。

\\

這篇文章隻是對第一個關鍵領域會發生什麼事情的預覽:對Scrum的全面支援。然而,我們不能在這裡停下腳步,我們要改進Scrum并使Kanban-Ace架構成為你的靈活工具集的一個有價值的補充,但在我們開始之前,我們需要給你介紹一下Kanban的相關背景知識。

\\

Kanban簡史

\\

要了解Kanban今天的地位,必須知道它的過去情況。制造Kanban,有時用小寫“kanban”直接指的是豐田公司組織跨工廠和部門工作的制造技術,這種技術和其他幾種技術構成了豐田生産系統(Toyota Production System,TPS)。TPS開始于1945年。到了1978年,大野耐一在日本出版的書是一個重要的裡程碑。感謝Norman Bodek的努力,十年後這本書的英文版出版,使得它可以在西方世界傳播。

\\

知識工作Kanban或首字母大寫的Kanban指的是圍繞應用TPS理念、限制理論、精益開發和其他相關資源的改變和創新,以便重點管理和改善人類創造力相關的領域,特别強調以軟體開發、資訊工程、營銷和管理為重點。知識工作Kanban是最早的靈活和精益的方法,是我們各種Kanban類型的創立者。從現在開始,我們所有提到的Kanban都是指這種特殊類型的Kanban。

\\

Kanban的起源

\\

2009年,Corey Ladas在他的關于Kanban的書《Scrumban:論Kanban系統的精益軟體開發》(Scrumban - Essays on Kanban Systems for Lean Software Development)中首次介紹了Kanban。随後,在2010年,David Anderson的書《Kanban:為了你的科技企業的成功演進》(Kanban: Successful Evolutionary Change for Your Technology Business)也是這一方法的一個關鍵推動力。在這本書裡,David Anderson提出了他最初的将Kanban作為精益靈活方法的想法。

\\

Kanban早期的曆史與靈活運動的發展密切相關,Corey和David都有很強的軟體開發和資訊技術背景。在早期,Kanban依然是一種靈活和精益方法,它出自于Donald Reinertsen, Mary和Tom Poppendieck的早期精益相關著作。

\\

Kanban方法

\\

大約在2013年,David Anderson決定生成一個自己版本的Kanban,他稱之為不同方向的Kanban方法(The Kanban Method),與所有其他的靈活方法都不同,把重點放在“進化改進”和改善管理方式上。在向着這個方向努力的過程中他多次聲明,Kanban方法不是靈活,盡管它可能實作靈活。這個時候,許多早期的Kanban成員都開始決定走一條不同的路徑,就是保持靈活,并且保持和資訊技術及軟體開發的緊密聯系:經典Kanban。

\\

經典Kanban

\\

經典Kanban代表Kanban的最初精益和靈活方法。經典Kanban充分地展現了靈活宣言,并維護着與軟體開發、資訊技術、DevOps和産品開發的緊密關系。

\\

現在,經典Kanban非常活躍,蓬勃成長。它的主要代表人物有Corey Ladas、Al Shalloway、Henrik Kniberg和我自己。Corey 通過Scrumban和精益Kanban代表經典Kanban。Al Shalloway通過關注團隊的精益Kanban,最近是Leanban來代表經典Kanban。Henrik Kniberg通過他的書尤其是《精益開發實戰》(Lean from the Trenches)代表經典Kanban,他的作品來源于他在Spotify和樂高的實踐。在這個聲譽卓著的名單裡,我很不好意思地想加入我們的Kanban-Ace方法和這篇文章探讨的Kanban-Ace架構。值得一提的是兩個簡約版的Kanban方法:第一個是Jim Benson和Tonianne DeMaria的個人Kanban;另一個是我們自己的開放Kanban,它是Kanban-Ace的核心。

\\

談及經典Kanban,我想澄清一個觀點。Scrumban不是Kanban和Scrum的混合産物,而是一種源于Scrum的、包含Kanban的方法,以下是Corey對這一點的解釋:

\\

\

對于一個有經驗的靈活團隊來說,Scrum在作為一個起點,并讓團隊不斷進化變得更精益這方面非常有用。我一直認為,我是為這樣的閱聽人寫作的,這種進化是一種“Scrumban”過程,并且我以此命名此書:《Corey Ladas,Scrumban:關于精益軟體開發的Kanban系統的一些看法》。

\

\\

Scrum的優缺點

\\

毫無疑問,豐富的書籍、ScrumMaster、教育訓練和成功的故事是Scrum的最大優勢。該架構已成為靈活的基礎,在資訊技術、軟體開發、市場營銷和産品開發領域,許多人對它甚是熟悉。

\\

在我看來,除了成功和認可,另外這兩個關鍵的優勢是:

\\

  • 受保護的疊代或Sprint的概念。\\t
  • 指導産品研發的兩個關鍵角色的創立:産品經理和ScrumMaster。\

然而,Scrum并非沒有缺點,也不是沒有可提高的空間。最近通過Agilelion研究所,我們用調查的形式收集了一些關于這個話題的回報意見。原創文章中有我們研究結果的詳細報告,但我還是想用下面的圖表總結我們的研究結果:

\\

如圖所示,使用者看到Scrum有四個弱點:

\\

  1. 規劃與估計 40%\\t
  2. 擴充困難和死闆的角色28%\\t
  3. 大量的會議13%\\t
  4. 缺乏技術實踐 11%\
用Kanban-Ace架構改進Scrum

\\

要把上述清單的每一項問題都解決,需要寫幾本書才能完成。是以,我選擇講述Kanban-Ace架構會如何改善上述領域中出現的問題,好讓ScrumMasters、産品經理、研發人員和管理者輕松一些。

\\

Kanban-Ace架構:為Scrum實踐者所寫的簡介

\\

我不打算對Kanban-Ace架構的每一個值、實踐和技術一一做解釋,我想要給你們簡單講講我們能給Scrum帶來的主要好處。

\\

如果你對Kanban-Ace架構的全面探讨感興趣,包括理論、價值、原則和技術,我強烈推薦你去Agilelion學院。在那裡,我們為你提供線上和現場教育訓練和認證。

\\

Kanban-Ace架構提供了一系列的工具和技術來解決Scrum在Kanban領域的薄弱環節,但仍保持着每天你習慣使用的Scrum的關鍵要素。我們提供的這個系列的工具和技術叫做Akashi。在我們詳細探讨這一能使我們把Scrum的精華和Kanban-Ace相結合的技術之前,我們必須了解Kanban-Ace是如何通過它的主要優勢來運作的——将工作可視化。

\\

了解Kanban-Ace對于Scrum的主要優勢:可視化的整體和局部

\\

Scrum使用任務闆去展示在特定的疊代或Sprint期間内的進展。Sprint可能長達一到四個星期,每個任務闆通常有3列:将要做的事情、正在做的事情、已經完成的事情。為了讓大家可以看到它們看上去是什麼樣子的,我推薦大家看看靈活教練John Yorke的這篇好文章。

\\

與Scrum不同,Kanban-Ace不是可視化一個Sprint,而是可視化從構思到賺錢的産生産品的全部努力。這個工作量很大,它意味着Kanban-Ace闆可以看到軟體開發生命周期的整個森林、産品開發的全生命周期、或者說任何業務系統,經過不同的階段來實作價值,如雇傭人員、實作銷售和設計新産品。然而,在這篇文章中,我們将集中在軟體方面。本質上,我的解釋意味着Kanban-Ace可以清楚地看到整體(森林),并且可以在任何時間了解我們的軟體團隊發生的事情。

\\

而這并沒有結束,除了你付出的努力的全景圖,你還可以得到局部細節(樹)的縮放圖。Kanban-Ace闆有一系列的列,以表示你軟體開發過程中關鍵步驟的階段,它能夠清晰的顯示瓶頸,并顯示在任何時間你團隊裡的每一個人的位置。為了更好地了解這個關鍵的優勢:看樹的細節,我想先解釋Kanban-Ace闆如何運作,是以,請讓我們一起看看圖1所示的闆。

\\

用Kanban-Ace架構改進Scrum

\\

圖形Kanban-Ace闆從左到右流動。這是一種持續流,即接近實時,是以你可以看到你的團隊在任何時刻的位置。

\\

在這個小Kanban-Ace闆上你可以看到,在最左邊的欄中,一系列不同工作量的工作項在待定列裡,被稱之為未處理的事情。在它旁邊,你可以看到準備隊列欄,這意味着故事、曆史故事、特征、最小可行的釋出,最小可行産品(MVP)或準備好可以開始做的任務。下一列是主要工作進行的地方。在這裡,我把它稱之為工作之河。這一次,它隻是一個寬列,但在實踐中,它通常被分為你想跟蹤的工作階段,并使之可見。最後,我們有TV欄,這可不是指平時看電視的欄目!它實際上代表Trust(信任)或Verify(驗證)的英文單詞首字母,因為在向世界釋出之前,通常需要做這兩件事情。當然,一旦我們做完了全部事情,我們有真正的完成事項欄;許多朋友親昵的稱其為DONE DONE列;-)

\\

現在,請注意下面圖2,你會看到一個真實的軟體開發Kanban-Ace闆,我們一起來仔細研究它。首先,你将注意到,團隊已經将他們的軟體開發生命周期詳細規劃為從左到右的八列:積壓、優先積壓、正在進行的開發、已完成的開發、進行中的品質保證、已完成的品質保證、部署和已完成。

\\

用Kanban-Ace架構改進Scrum

\\

現在讓我們看看到底在Kanban-Ace闆發生了什麼。這一次,讓我們從右讀到左,因為傳遞的價值總是在闆的右端。首先,我們可以看到,團隊已經把故事A傳遞到生産了;故事W剛剛完成,現在它準備由一個系統管理者進行部署。在團隊的測試部分有兩個故事,一個剛剛經過品質保證QA(故事B)和另一個正在占用在兩位品質保證分析師時間(T1和T2),這是故事E,我們可以有把握地推斷,這是一個更複雜的故事。現在在開發方面,我們可以看到,團隊現在正在為四個故事忙得團團轉。一個是剛剛傳遞給已完成開發列(故事Y),是以當品質保證團隊有能力時,他們将把故事Y安排為下一項的工作。在此期間,開發團隊已經有停滞不前的問題出現了,故事C已經停止推進。這時,需要ScrumMaster,Kanban-Ace教練或靈活項目經理幹預,采取相應的措施來消除停滞,盡可能地推動團隊前進,進一步完成研發。到目前,并沒有浪費時間,兩位研發人員都在忙着故事D,使用者體驗設計師忙着為故事H設計界面。在團隊的優先積壓方面,産品經理、産品負責人正在和一位關鍵的研發人員一起努力将所需要的細節加入故事G,以便做好下一步開發的準備。我們也在故事G進行相似的工作。在故事G中,我們注意到開發人員三在開發團隊把故事G納入他們的研發列之前,為它增加了一些細節。最後,積壓列顯示了六個故事在等待,一旦他們完成了整個過程,所有的努力都不會被白費,産品将完全實作和公之于衆。

\\

現在,你能明白我之前說到Kanban-Ace版能讓你看到你的軟體開發生命周期森林和樹的意思了。隻需幾分鐘或幾秒鐘,你可以從字面上看到整個産品怎麼樣,或在指定的一天裡産品處于什麼階段。

\\

此外,要記住,那些列并不是雕刻在石頭上一成不變的東西。團隊可以一起決定如何将變化引入闆,以改善過程,或改善以它所代表的系統的可見性。例如,他們可能為代碼審查、代碼合并、UAT、使用者示範等等引入額外的列。

\\

現在還有一點需要大家注意,就是Kanban-Ace闆也有在制品限制,表現為WIP。它們在上述的闆上是以你所看見的一些列的頂端的數字表示。WIP限制使團隊着重于一個可行的系列故事,讓他們在同一時間做許多的事情的努力不會白費。在隊列後面的堅實理論說明,甚至心理學也表明,專注于更少的事情,實際上可以讓你和你的團隊在更少的時間内送出更多的事情。少便是多!然而,Kanban-Ace架構認為WIP限制是可選項,但強烈推薦使用它。我們首先強調減少基礎的原則,這意味着減少你努力。對于開發團隊把WIP限制成1是無用的,如果這個1是一個巨型的功能,減少基礎原則基本說明了這一點:讓你的努力成為顆粒狀,并盡可能的小,而一旦你使之變小,盡可能一次做盡可能少的工作,你就能集中精力努力。一旦體積變小了,限制在制品是容易的!

\\

為Scrum引入Kanban-Ace Akashi Bridge

\\

Akashi裡面的想法從一開始就是Kanban-Ace的一部分。但現在Kanban-Ace 架構增加了與Scrum一起工作的系統方法,以便讓它們互相磨合,并作為一個統一的整體。

\\

Akashi是以日本的明石大橋(Akashi bridge)命名的。這是世界上最長的懸索橋,連接配接神戶市和淡路市。我取這個名字是因為 Kanban-Ace和Scrum都有來自日本的共同的精益傳承。注意,這座橋有兩座主橋墩來統一整體結構,Kanban-Ace明石大橋也是一樣。 在Kanban-Ace Akashi Bridge裡,這兩個主橋墩就是Scrum和Kanban-Ace!

\\

用Kanban-Ace架構改進Scrum

\\

在以下圖4中,你可以看到完整的Kanban-Ace Akashi Bridge。讓我一步步地解釋它是如何工作的。讓我們從頂部開始,那裡有4個主要支柱或列,将橋梁分為各個部分。首先,在橋的最左邊部分,你可以看到待定支柱,它包含有産品積壓部分。其次是Scrum橋墩。第三是Kanban-Ace橋墩,最後是真正完成。

\\

用Kanban-Ace架構改進Scrum

\\

Akashi Bridge兩個主橋墩使Scrum從業人員可以借助Kanban-Ace,去看一眼整體和局部(森林和樹)的工作,并能輕易地在處理持續流和Kanban-Ace的每一事件的同時,保留Scrum對他們有價值的關鍵事件。

\\

Scrum橋墩是一個小型Kanban-Ace闆,它顯示與Scrum事件相關的所有活動。在Scrum橋墩的最左邊的部分,你可以看到事件的積壓,包括團隊認為需要提供完整版本的Scrum儀式或産品的預計。當儀式開始時,題為“活動日”的下一節将被使用。例如,在闆的下面,你可以看到第二次Sprint計劃(2PL)事件是定于今天進行的,就像每日站立短會(ST.)一樣。Scrum橋墩還向我們展示,因為使用了Akashi Bridge,第一次Sprint充分完成,Sprint計劃、審查和回顧已經在過去完成了(分别在1PL、1RV 和1RT)。

\\

在同一時間,我們非常便利地、能夠幾乎實時地檢視整個團隊為Kanban-Ace橋墩所做的努力,是以你可以看到森林和樹木。Kanban-Ace橋墩本身就是一個完整的Kanban-Ace闆!讓我們研究一下團隊在Akashi Bridge的位置。讓我們從最右邊的列開始,看看目前為止團隊已經完成了什麼任務:故事1到4已經完全完成,故事5剛剛通過了品質保證,故事9和8現在在品質保證過程中。故事10,11和6是最近由開發團隊實施,他們現在正在研究開發的故事7、12和13,最後,一旦開發團隊完成目前的工作,他們将準備從積壓的故事14和15開始,推進開發。

\\

但等等,這不是全部!因為我們有Scrum橋墩,我們也知道,Sprint1傳遞四個故事,Sprint2有完成整塊闆的挑戰;而且可能沒辦法實作這些事情,因為它們隻能發生在他們設法完全完成故事4之前。對ScrumMaster、産品經理、Kanban-Ace教練和團隊檢查和适應為Sprint2即将舉行的Sprint規劃會議來說,這是非常有價值的資訊。

\\

本文的下一個話題我們将不再讨論Akashi Bridge,我們将探讨Kanban-Ace給所有靈活實踐者帶來的好處。

\\

Kanban-Ace為Scrum團隊帶來的額外好處

\\

我在這篇文章中已經解釋過,決定采用Kanban-Ace架構的Scrum團隊能夠保持其關鍵作用和事件,同時獲得Kanban-Ace的全部各種工具,比如:能檢視整體,又能放大檢視他們工作細節的能力;在一個持續流領域計劃和執行的能力;他們習慣使用的關鍵Scrum事件;以及更多早已成為我們Kanban-Ace課堂構成部分的好處。我想提醒你注意我們之前介紹過的明石大橋的額外優勢中的兩點:

\\

A. Kanban Ace的優勢:精益思維

\\

作為精益-靈活方法,Kanban-Ace充分包含了精益思想和它的一個核心原則:減少浪費。這一原則對Kanban-Ace Scrum團隊的影響是什麼?主要影響是質疑事件或儀式的價值,曾經事件和儀式被團隊認為是浪費。讓我用一個例子來進行解釋:一個開發一個蘋果手機應用程式的團隊,需要幾天的時間對他們的應用程式做重大的改變,是以他們認為每天開一次每日站立短會是一種浪費,因而他們選擇每周開兩次站立短會,而不是五次。這不僅會給他們赢得更多額外的時間,但它也将提高團隊的士氣,因為沒有人特别喜歡在會議上浪費時間,人們将隻參加一個真正有用的會議,比如釋出之後的回顧會議。是以Kanban-Ace敦促你減少浪費,減少會議時間,相應應對團隊溝通和節約的需求。我仍要提醒你,減少浪費是一個重要原則,但不要迷戀它。不同于機器,人需要放松和休息來發揮他們的最佳才幹。

\\

精益思想也引導你去思考整個系統以及你在整個系統中的位置如何影響整個價值流的價值創造。其中一個結果是當有一個Sprint(意思是受保護的疊代)對整體業務或部門是有意義時,做出選擇。通常當處理産品開發Sprint時非常有意義,但你做運維的時候,資訊技術的基礎設施或任何其他技術領域需要一天幾次釋出,這時去除Sprint和選擇标準的包含持續釋出的Kanban-Ace闆會更好!是以,檢查和适應,如果它符合你的需求,使用較少Sprint的持續流!

\\

B.Kanban-Ace的優勢:我們的知識庫

\\

Kanban-Ace為Scrum實踐者提供了許多重要的原則、價值觀和技術,他們現在都是包含在我們的知識庫中的。我想強調其中的幾個:

\\

  • 最小的可操作的規劃。它創造出有用的靈活計劃,可以指導版本的傳遞,或最小可行産品(MVPs)的創作。\\t
  • 按需釋出。Kanban-Ace闆包括按需釋出,隻要你準備好了就可以部署它們;無論是一周幾次,或者一天許多次。Sprint是可選的,可以隻在需要時使用。Kanban-Ace歡迎持續內建,持續釋出并與資訊工程基礎設施、營運和DevOps一起運作。\\t
  • Kanban-Ace齒輪。這是一種工具,教我們如何檢查整個價值鍊和工作流,以帶來徹底的改善,使過程、工具和團隊可以達到新的性能水準。這不是每天進步一點點的改善(Kaizen),或小的持續改進,而是突破性的改善(Kaikaku)或革命性的變化。\\t
  • 角色的實用主義。今天Kanban-Ace承認如果一個組織選擇了一個角色,組織就肯定需要它。我們不反對這些角色,或要求公司嚴格地采用新的角色,我們要從現在擁有的角色開始,從中改善。Akashi Bridge就已經采用了同一種理念,以此迎合Scrum角色。\\t
  • 價值觀。Scrum花了十多年時間,最終明确地接受了價值觀作為架構的一部分的,但這仍然是好消息。然而,我們很高興地說,其實從第一天起,Kanban-Ace已經接受了保護團隊和傳遞軟體的價值觀!這些價值觀有:勇氣、專注、合作和尊重人。\

最後,我想提一下,我正忙着寫Kanban-Ace架構的書,這本書将在2017年出版發行。在這本書裡,我打算介紹很多有用的創新,比如ACE故事點、輕量級擴充和SAFe支援。如果你想與我保持聯系,并在第一時間知道這本書什麼時候出版,請與我聯系。

\\

最後,我想引用我非常欽佩的人的一句話做總結。艾薩克•牛頓爵士說:“我們建造了太多的牆,卻沒有足夠的橋梁。”

\\

用Kanban-Ace架構改進Scrum

Joseph Hurtado是Kanban-Ace架構和開放Kanban的作者,他也是Agilelion學院創始人。專業上,他被認證為SAFe SPC 4(靈活教練)、Kanban-Ace教練和Scrum CSM。他熱衷于軟體和産品開發的人性和技術方面,他上司的團隊在各種行業提供技術解決方案。他的靈活方法使工作愉快,提供出色的軟體,同時保持團隊士氣高漲和身體健康。在技術之外,他的興趣是攝影,藝術和哲學。你可以在LinkedIn、Twitter和網站上找到他。

\\\\

閱讀英文原文:Improving Scrum with the Kanban-Ace Framework