カミナシ エンジニアブログ

株式会社カミナシのエンジニアが色々書くブログです

流れを自由自在に操りアジリティを高める「かんばん」方法論

流れを自由自在に操りアジリティを高める「かんばん」方法論

こんにちは。健康診断の肺活量診断で看護師さんに「もっといける!もっといけるぞ!そうだ、どんどんだせ!いけー!」と応援されたけど、前回の記録を更新できなかった daipresents です。次も同じとこで受けよう。

カミナシの開発プロセスは、プロダクトごとのチーム(サービスチームと呼んでいます)ごとに自分たちで考えて定義しています。そして、技術スタックもプロダクトごとにだいたい揃っていて、開発するプロダクトも「ノンデスクワーカー向けSaaS」ですので、それほど大きく違いが生まれてない現状があります。

この数年、社内のプロセスをなんとなく遠目で見ていると、かんばん方法論に近いことをしているチームが増えてきたように感じています。

その影響か、かんばんに対する質問もいただくようになってきたので今回は、このかんばん方法論について、簡単に解説したいと思っています。

かんばんとは何か?

「かんばん」とは、デイビッド・J・アンダーソン氏がまとめた方法論で、日本だと単なる「タスク管理のホワイトボード」と誤解されがちですが、本質は「継続的な改善(カイゼン)とフローの最適化」になります。

昔作ったツールとしてのかんばんの事例 ‐ 参考:Rakuten, Inc. - 投稿者自身による著作物, CC 表示-継承 3.0, https://commons.wikimedia.org/w/index.php?curid=27068213による

つまり、「かんばん」には、方法論としての「かんばん」と、ツールとしての「かんばん(リアルかんばん、タスクボード、かんばんボードなどと呼ばれるやつ」があります。

かんばんは、海外で開発された方法論なので「Kanban」や「カンバン」と訳されることが多いのですが、ここでは「かんばん」としています。

かんばんの基本原則

かんばんは、4つの基本原則からなりたっています。

  1. Start with what you do now(まずは今やっていることから始める)
    1. 現在の役割やプロセスを否定せず、そのままの状態で視覚化します。
  2. Agree to pursue evolutionary change(漸進的な変化を追求することに合意する)
    1. 劇的な大改革ではなく、小さく継続的な改善(Evolutionary Change)を好みます。
  3. Respect current roles, responsibilities & job titles(現在の役割・責任・役職を尊重する)
    1. Scrumのように「スクラムマスター」などの新しい役職を強制しません。
  4. Encourage acts of leadership at all levels(あらゆるレベルでのリーダーシップを奨励する)
    1. 現場の誰もが改善を提案できる文化を作ります。

ここでは「スクラムとかんばんどっちが優れているか?」という話をするつもりはないのですが(それぞれ得意不得意があり、状況に応じて向き不向きも変わる)、スクラムに比べると導入のハードルが低い印象があります。

上記のように、原則とはいいながら、後述する導入手順書に近い記述になっています。これも導入が楽に感じる部分かもしれません。

実際に、自分がアジャイルコーチで現場支援するときも、「とりあえずかんばん」的な提案をすることが多いです。また、スクラムでもツールとしてのかんばんを使うケースもあり(スクラムバンと呼ぶ場合もある)親和性はとても高いのも特徴的です。

かんばんのはじめかた

かんばんは「Flow(流れ)」の管理です。Scrumが「1〜4週間のスプリント(時間枠)」で区切って計画するのに対し、かんばんは「継続的なデリバリー(Continuous Delivery)」を目指します。

タイムボックス(期限の枠)を持たず、タスクが準備できたら順次進めていく方向性を持っています。いわゆる「Just in time(必要なものを、必要なときに、必要なだけ)」です。

海外で推奨される標準的な導入手法にSTATIK(Systems Thinking Approach to Introducing Kanban)があります。以下のステップをチームで実践しながらかんばんを導入していきます。

  1. 現状を分析して可視化する
    1. アイデアが生まれてから顧客に届くまでのプロセスを洗い出します
    2. 洗い出したプロセスをもとにリアルかんばんを作ります
  2. WIP(Work in Progress)を制限する
    1. 車の渋滞と同じく、詰め込みすぎると前に進めなくなり、余裕をもたせるとスムーズに仕事が流れます。この「スムーズな流れ」を作るために、WIPを設定します。たとえば、開発のWIPが「3」なら、仕事は3つだけ実行できます。前の仕事が終わらない限り4つ目の仕事に取り掛かりません
  3. 流れを管理する
    1. かんばんを使いはじめ、リアルかんばんを見ていると、仕事の流れが見えてくるはずです。WIPで詰まることが多ければ、「WIPを増やす」や「ひとつまえのプロセスのWIPを減らす」など考えて、流れを調整しながら最速の流れを探していきます
  4. 明確なポリシーを作る
    1. リアルかんばんを使いこなすには、作業の動かしたかたルール等を決める必要があります。いわゆるこれが「完了の定義」となり、「どうなったら次のプロセスに進んでいいのか」という条件を整理していきます
  5. フィードバックループを実現する
    1. ここまでくればかんばんはどんどん動き出します。よりよいプロセスにするためにフィードバックループを高速で回していきます

かんばんの効果

かんばんの導入によって得られる効果は以下です。

  1. リードタイムが短縮される
    1. 流れを管理する方法論なので、流れがはやくなります
  2. ボトルネックが見える
    1. リアルかんばんの強みは「見えること」です。オンラインだとここが難しいところがあるのですが、移動していくボトルネックを追い詰め、根本対策に動きやすくなるはずです
  3. 選択と集中
    1. マルチタスクの弊害がなくなります。目の前のひとつのことに集中できます。
  4. 予測可能性の向上
    1. かんばんだと「上から順番にやるだけ」なので、計画がぼんやりしてしまうリスクがあります。ただ、リードタイムなどが見えてくることや、仕事の大きさが自然に同じサイズにそろってくることで、仕事の完了を予想しやすくなります

再掲しますが、ここでは「スクラムとかんばんどっちが優れているか?」という話をするつもりはありません。ただ、やりやすさとわかりやすさでいうなら、かんばんには強みがあります。

より詳しいことを知りたい方は、昔翻訳した Wikipediaの かんばん(ソフトウェア開発)) を参照ください。かんばんは日本語の情報が少ないので、活発な海外コミュニティの情報を追いかけるのがおすすめです。

画像: 「5分で理解するリーンなかんばん」 https://leantrenches.wordpress.com/2013/10/09/one-day-in-kanban-land/

また、かんばんを5分で理解したいなら、昔翻訳した「5分で理解するリーンなかんばん」も参考にどうぞ。Spotifyのアジャイルコーチが書いたブログですが、今読み返してもわかりやすいです。

ぜひぜひ、かんばんをお試しあれー。