Claudeに問う「カンバン開発のやり方を教えてください」

システム開発の問題

アジャイル開発というとスクラムとXPしか知りませんでしたが、Claudeに聞くと「カンバン開発」なるプロセスモデルが存在するそうです。
今回、カンバン開発について解説してもらいました。
今回も私の意見などはありません。

Claudeに問う

概要

ソフトウェア開発プロセスモデルのカンバン開発のやり方について、詳しく教えてください。

カンバン開発は、ソフトウェア開発におけるアジャイル手法の一種です。カンバン方式は、主に以下の原則に基づいています。

  1. 作業の可視化

    • カンバンボードを使って、作業の進捗状況を可視化します。ボードには「Todo」「作業中」「完了」などのカラムが設けられています。
  2. 作業の制限(WIP制限)

    • 同時に処理できる作業の量に上限を設けます。これにより過剰な並列作業を防ぎ、効率的に作業を進めることができます。
  3. 継続的なフロー管理

    • 作業の流れを可視化し、ボトルネックを特定して改善することで、継続的に作業の流れを最適化します。
  4. 需要主導のプル式システム

    • 顧客の要求に応じて、優先度の高い作業から順にプルし、開発を行います。

カンバン開発の具体的な進め方は以下の通りです。

  1. プロダクトバックログの準備

    • 実装する機能やタスクを洗い出し、プロダクトバックログを作成します。
  2. カンバンボードの準備

    • カンバンボードを設置し、「Todo」「作業中」「完了」などの適切なカラムを用意します。
  3. WIP制限の設定

    • 並列作業の上限値(WIP制限)を決めます。通常は各カラムごとに設定します。
  4. 作業のプル

    • プロダクトバックログから優先度の高い作業を選び、「Todo」カラムに移動させます。
  5. 作業の実施とボード更新

    • 「作業中」カラムの空きに応じて、「Todo」から作業を引き取り実施します。
    • 作業が完了したら「完了」カラムに移動させます。
  6. レビューとリリース

    • 完了した作業をレビューし、問題がなければリリースします。
  7. メトリクス収集と改善

    • リードタイム、サイクルタイムなどのメトリクスを収集し、プロセスを継続的に改善します。

カンバン開発では、作業の可視化と制限によってウォーターフォール的な開発よりもリードタイムを短縮でき、顧客の変更要求にも柔軟に対応できるというメリットがあります。

原則

まず、「原則」について、一つずつ順番に解説してください。
最初に「1.作業の可視化」について、解説してください。

分かりました。カンバン開発の原則の1つ目の「作業の可視化」について解説します。

作業の可視化とは、プロジェクトで行われている全ての作業の状況をカンバンボード上で一目で把握できるようにすることを指します。

具体的には、カンバンボードにはタスクカードと、複数の作業状況を表すカラム(例:「Todo」「作業中」「完了」など)が設けられます。タスクカードには、その作業の内容、担当者、期限などが記載されます。

作業者は、自分が取り組むべきタスクカードを「作業中」カラムに移動させることで、自分の作業状況を可視化します。作業が完了したら「完了」カラムに移動させます。

このように、全てのタスクカードの位置が作業の進捗状況を表すため、誰が何を行っているのかが一目でわかるようになります。これにより以下のようなメリットがあります。

  • 作業状況を全員で共有でき、お互いに把握しやすくなる
  • ボトルネックの特定が容易になる
  • 作業の重複や手戻りを防ぐことができる
  • 新人教育にも活用できる

つまり、作業の見える化によってコミュニケーションが促進され、無駄な作業を減らすことができ、生産性が高まるのです。

このように、作業の可視化はカンバン開発の大きな原則であり、他の原則も見える化に基づいています。

次に「2.作業の制限(WIP制限)」について、解説してください。

分かりました。次に、カンバン開発の原則の2つ目「作業の制限(WIP制限)」について解説します。

WIP(Work in Progress)制限とは、同時に並行して行われる作業の数に上限を設けることを指します。

具体的には、カンバンボード上の各カラム(例:「作業中」カラム)に、最大で何個のタスクカードを置けるかを決める制限値を設定します。

これには以下のような意義があります。

  1. 作業の分散を防ぐ 多くの作業に並行して着手すると、リソースが分散してしまい効率が下がります。WIP制限を設けることで、ある程度作業を集中させられます。
  2. 作業の滞留を可視化 ある作業フェーズにタスクが溜まっていけば、その上流にWIP制限によりタスクが溜まっていきます。つまり、ボトルネックがすぐに見つけやすくなります。
  3. リードタイムを短縮 並列作業を制限することで、コンテキストスイッチングの手間が減り、1つの作業に集中できるようになります。結果として全体のリードタイムが短縮されます。

WIP制限は、しっかり守られなければ意味がありません。多すぎる並列作業は避けつつ、適切な制限値を決める必要があります。また、プロセスの改善に合わせてWIP制限も適宜見直すことが重要です。

このように、WIP制限は作業を最適化し、ボトルネックの特定や作業改善につながる、カンバン開発の重要な原則なのです。

次に「3.継続的なフロー管理」について、解説してください。

分かりました。次に、カンバン開発の原則の3つ目「継続的なフロー管理」について解説します。

継続的なフロー管理とは、作業の流れ(フロー)を継続的に監視し、最適化していくことを指します。

具体的には、以下のようなプロセスを継続的に行います。

  1. 作業フローの可視化 カンバンボードでタスクカードの流れを見える化し、フローの状況を把握する。
  2. フローのメトリクス収集 リードタイム(作業着手から完了までの時間)、サイクルタイム、滞留時間などのメトリクスを収集する。
  3. ボトルネックの特定 メトリクスから、作業の停滞や遅延が生じているボトルネックの箇所を特定する。
  4. 改善の実施 ボトルネックの原因を分析し、作業方法やプロセスを改善する。
  5. 改善効果の確認 改善後のメトリクスを収集し、フローが改善されたかを確認する。

このサイクルをプロジェクトの期間中継続的に回すことで、フローを最適化し、リードタイムを短縮できます。

また、開発中に要件の変更があった場合も、フローを最適化しておけばスムーズに対応できます。

継続的なフロー管理は、「作業の可視化」と「WIP制限」によって実現可能になります。フローの最適化を怠ると、プロセスが硬直化し、アジリティが失われてしまいます。

そのため、カンバン開発ではフローを継続的に改善し、お客様の要求に素早く対応できる体制を維持することが重要なのです。

原則の最後に「4.需要主導のプル式システム」について、解説してください。

分かりました。最後にカンバン開発の原則の4つ目「需要主導のプル式システム」について解説します。

需要主導のプル式システムとは、顧客の需要(要求)に応じて作業を引っ張り(プル)、実施していくことを指します。

従来の一方向の開発フローとは異なり、顧客の変更要求などに応じて、優先度の高い作業からプルし、柔軟に対応していきます。

具体的には、以下のようなプロセスになります。

  1. プロダクトバックログの作成 顧客の要求に基づいて、実装すべき機能や作業をプロダクトバックログに格納する。
  2. プロダクトバックログからプル 優先度の高い作業から、開発チームがプロダクトバックログからタスクをプルする。
  3. プルした作業の実施 プルした作業をカンバンボードに展開し、実際に開発を行う。
  4. 完了作業のリリース 完了した作業は顧客にリリースし、フィードバックを得る。
  5. 変更要求への対応 顧客からの変更要求に応じて、プロダクトバックログを更新し、次の作業をプルする。

このように、プル式の流れにより、いつでも最新の需要に追従した開発が可能となります。また、小さな単位で価値を顧客に提供できるため、リスクも抑えられます。

需要主導のプル式システムは、アジャイル開発の根本的な考え方でもあり、カンバン開発の大きな特徴となっています。これにより、顧客の変更要求に柔軟に対応しつつ、スピーディな開発が可能になるのです。

進め方

次に「カンバン開発の具体的な進め方」について、一つずつ順番に解説してください。
最初に「1. プロダクトバックログの準備」について解説してください。

分かりました。カンバン開発の具体的な進め方の1つ目「プロダクトバックログの準備」について解説します。

プロダクトバックログとは、製品に実装すべき機能やタスクの一覧のことです。顧客の要求や開発チームの提案などに基づいて作成されます。

プロダクトバックログの作成手順は以下の通りです。

  1. 顧客との要求収集 まずは顧客と密にコミュニケーションを取り、製品に求められる機能や要件を収集します。
  2. 機能の洗い出し 収集した要求から、具体的に実装すべき機能を洗い出します。
  3. ユーザーストーリーの作成 機能ごとにユーザーストーリー(機能要件)を記述します。ユーザーストーリーには受け入れ基準も含まれます。
  4. ストーリーポイントの見積 各ユーザーストーリーの作業量を、ストーリーポイントという相対値で見積ります。
  5. プロダクトバックログへの格納 ユーザーストーリーを優先順位付けし、プロダクトバックログに格納します。

プロダクトバックログが完成すると、プルする作業の入り口ができあがったことになります。プロダクトバックログは製品の要求が変わればいつでも更新されます。

カンバン開発では、このプロダクトバックログから需要に応じてタスクをプルして開発を進めていきます。つまり、プロダクトバックログの準備が第一歩となるのです。

「ユーザーストーリー」と「ストーリーポイント」について、もう少し詳しく解説してください。

分かりました。ユーザーストーリーとストーリーポイントについて、より詳しく解説します。

■ユーザーストーリー ユーザーストーリーとは、その機能を何のために誰が使うのかという観点から簡潔に記述した機能要件のことです。以下の形式で書かれます。

“【誰が】 【何をしたいのか】 【どんな理由で】”

例: “営業マンが顧客情報を管理したい、ポートフォリオを把握するため”

ユーザーストーリーには、以下のような特徴があります。

  • 機能の本質を簡潔に表現できる
  • 開発者に実装の文脈を与える
  • 顧客の本当の要求を明確化できる
  • 受け入れ基準(アクセプタンス・クライテリア)を記述できる

受け入れ基準とは、その機能が完了したと判断する条件のことです。

■ストーリーポイント
ストーリーポイントとは、ユーザーストーリーの実装に必要な作業量を、相対的な数値で見積もったものです。フィボナッチ数列(1, 2, 3, 5, 8, …)が一般的に使われます。

ストーリーポイントの見積り方は以下のとおりです。

  1. プロジェクトの中から作業量の基準となるユーザーストーリーを選ぶ(例えば3ポイント)
  2. 他のユーザーストーリーと作業量を比較し、相対的なポイント値を付ける

ストーリーポイントを使うメリットは以下の通りです。

  • 工数を直接見積もるより正確
  • 複雑さを考慮できる
  • メンバー間で共通の尺度として使える

このようにユーザーストーリーとストーリーポイントは、プロダクトバックログの重要な構成要素となり、プル式の作業をスムーズに進められるようにします。

次に「2. カンバンボードの準備」について、解説してください。

分かりました。カンバン開発の具体的な進め方の2つ目「カンバンボードの準備」について解説します。

カンバンボードとは、作業の状況を可視化するための掲示板のようなものです。プロジェクトの作業フローに合わせて、以下のようなカラムが設けられます。

・プロダクトバックログ ・Todo(未着手) ・作業中 ・レビュー ・完了

カンバンボードを準備する手順は以下の通りです。

1.作業フローの確認 プロジェクトの作業フローを詳細に確認し、必要なカラムを洗い出します。

2.カラムの設置 壁や電子ボードに、必要なカラムを設置します。カラム名は付箋や画面上で明示します。

3.WIP制限の設定
各カラムに許容される最大作業数(WIP制限)を設定します。

4.タスクカードの準備 ユーザーストーリーやタスクをカード(付箋)に書き出し、プロダクトバックログカラムに設置します。

5.補助ツールの準備 タイマーやグラフ用紙など、進捗管理や改善に役立つツールを用意します。

カンバンボードができあがると、タスクカードの動きでフローが可視化されるようになります。壁に貼る物理ボードでも、ディジタルツールを使ってでも構いません。

重要なのはプロジェクトの現状に合わせて、必要最小限のルールと情報を載せておくことです。カンバンボードは状況の変化に応じて随時改善されていきます。

このように、カンバンボードの準備を通じて、作業の流れと進捗が一目でわかる土台が整うのです。

「カラム」と「タスクカード」について、もう少し詳しく解説してください。

分かりました。カンバンボードの重要な要素である「カラム」と「タスクカード」について、より詳しく解説します。

■カラム カラムとは、カンバンボード上で作業の進捗状況を表す垂直列のことです。一般的には以下のようなカラムが設けられます。

・プロダクトバックログ:実装が必要な機能やタスクが入るカラム ・Todo(未着手):まだ着手されていないタスクが入るカラム ・作業中:現在作業している最中のタスクが入るカラム ・レビュー:作業は完了し、レビュー待ちのタスクが入るカラム ・完了:レビューが済み、完了したタスクが入るカラム

カラムの種類は、プロジェクトの作業フローに合わせて自由に決められます。例えば、テスト工程が重視される場合は「テスト」カラムを追加するなどです。

各カラムには、WIP(作業中アイテム)の上限値を設定します。これがWIP制限です。

■タスクカード タスクカードとは、カンバンボード上で作業単位を表すカードのことです。付箋に記入したり、デジタルツールで作成したりします。

タスクカードには以下の情報が記載されます。

・ユーザーストーリーやタスクの内容 ・担当者 ・ストーリーポイントなどの作業量 ・期限など

タスクカードはカラム上を動かすことで、その作業の状況を可視化します。例えば、未着手の状態でTodoカラムにあるカードを、着手するとき作業中カラムへ移動させます。

タスクカードを動かす際は、WIP制限に沿って動かす必要があります。

カラムとタスクカードにより、プロジェクトの作業全体がひと目で視覚的にわかるようになります。そのため、進捗の把握やボトルネックの特定、作業改善がしやすくなるのです。

次に「3. WIP制限の設定」について、解説してください。

分かりました。カンバン開発の具体的な進め方の3つ目「WIP制限の設定」について解説します。

WIP(Work In Progress)制限とは、カンバンボードの各カラムで同時に取り組める作業の上限値を設定することです。 この制限を設けることで、過剰な並列作業を防ぎ、集中力を維持しながら効率的に作業を進めることができます。

WIP制限を設定する際の手順は以下の通りです。

  1. カラムの確認 まずはボード上のカラムと作業フローを確認します。

  2. 適切なWIP値の検討 次に各カラムで適切なWIP値(上限値)を検討します。 一般的には次のように設定されますが、チームの状況に合わせて調整します。

    • 作業中カラム:メンバー数+1程度
    • 他のカラム:作業中の2〜3倍程度
  3. WIP値の設定 検討したWIP値を各カラムに明示的に設定します。 物理ボードの場合は付箋などで、デジタルツールならルール設定で指定します。

  4. 試行と調整 実際に運用し、WIPの流れや効率を観察します。 ボトルネックがある場合は、そのカラムのWIP値を上げるなど、適宜調整を行います。

WIP制限を守ることが重要です。限界を超えてタスクを並列に実施すると、コンテキストスイッチングの overhead が発生し、かえって非効率になってしまいます。

しかし、WIP値を絶対的なものと考えるのはNGです。チームの成熟度や作業内容の変化に応じて、継続的に最適値を見直していく必要があります。

このようにWIP制限は、作業の最適化やリードタイム短縮、品質向上につながる重要な概念です。適切に設定し、守りながら改善を重ねることが肝心なのです。

「適切なWIP値の検討」と「WIP値の設定」について、もう少し詳しく教えてください。
何をもって「適切」とするのか良く分かりません。

分かりました。WIP制限の適切な値の検討と設定方法について、より具体的に解説します。

■適切なWIP値の検討 WIP制限の値は作業効率に大きな影響を与えますので、慎重に検討する必要があります。以下の点を総合的に勘案して決めていきます。

  1. メンバーの作業能力 作業中カラムのWIP値は、通常「メンバー数+1」程度が目安とされます。 メンバーの経験値が高ければ、この値を上げてもよいでしょう。
  2. タスクの複雑度
    複雑なタスクが多い場合は、作業中のWIP値を抑える必要があります。 単純作業が多ければ、ある程度値を上げてもよいでしょう。
  3. 上流工程のWIP 上流の工程にWIPが溜まりすぎると、渋滞が下流に影響します。 そのため、上流のWIP値を抑えることも大切です。
  4. サイクルタイム 実際のサイクルタイムを計測し、WIP値を変更した際の影響を見ます。 サイクルタイムが短くなれば適切な値と言えます。

このように、チームの実力、作業内容、全体の流れなどを総合的に勘案し、WIP値を決めていきます。

■WIP値の設定 WIP値の設定は、物理ボードとデジタルツールで方法が異なります。

  • 物理ボード 各カラムの上部や横に、WIP値を目印として設置します(例:マグネットなど)
  • デジタルツール
    ツールのWIP制限設定機能から、各カラムのWIP値を指定します。 上限に達するとアラートなどが出る仕組みになっています。

いずれの場合も、WIP値を明示的に設定し、見える化しておくことが大切です。 設定後は、一定期間運用し、サイクルタイムなどのメトリックスを確認しながら、適宜WIP値を調整していきます。

このようにWIP制限の適切な値の決定には、様々な条件を勘案する必要があり、その上で明示的に設定し、改善を重ねていくことが重要なのです。

極端に簡潔に言えば「メンバーの作業能力」と「タスクの複雑度」に合わせて、作業負荷(同時作業数)を制限するという考え方を基準に「適切」とするわけですね。
「タスクの複雑度」については「ストーリーポイント」の評価で判断するのですか。

はい、その理解で正しいです。

WIP制限を設定する際の基本的な考え方は、「メンバーの作業能力」と「タスクの複雑度」に応じて、適切な作業負荷(同時並行作業数)を制限するということになります。

「タスクの複雑度」を判断する上で、ストーリーポイントが一つの重要な判断材料になります。

ストーリーポイントは相対的な作業量の指標ですので、ポイント値が高いタスクは複雑で作業負荷も高くなります。そういったタスクが多い場合は、WIP制限をある程度厳しく設定する必要があるということです。

一方で、ストーリーポイントが低く単純作業が多い場合は、WIP制限を緩めに設定してもあまり問題はありません。

つまり、ストーリーポイントの内訳を見ながら、全体のタスクの複雑度を勘案し、それに合わせてWIP制限を設定するわけです。

加えて、先ほども述べましたが、メンバーの経験値なども考慮する必要があります。ベテランメンバーが多ければ並行作業をある程度この行えますし、初心者が多ければWIPを厳しく制限したほうがよいでしょう。

このように、ストーリーポイントやメンバースキルなどを総合的に勘案し、適切な作業負荷となるようWIP制限を設定することが重要なポイントになります。

次に「4. 作業のプル」について、解説してください。

分かりました。カンバン開発の具体的な進め方の4つ目「作業のプル」について解説します。

作業のプルとは、プロダクトバックログから優先度の高い作業を選び出し、実際に着手する行為のことを指します。これはカンバン開発の”需要主導のプル式システム”に基づいた作業の進め方です。

作業をプルする手順は以下の通りです。

  1. プロダクトバックログからタスクを選択 プロダクトバックログから、優先度が高く、着手できる状況にあるタスク(ユーザーストーリー)を選びます。
  2. 選択したタスクをTodoカラムへ 選んだタスクをカンバンボードのTodoカラムに移動させます。 これで作業が発生したことを明示的に示せます。
  3. 作業者の割り当て そのタスクを誰が担当するかを決め、作業者に割り当てます。 タスクカードには担当者名を記載します。
  4. 作業の引き取り 作業者はTodoからタスクを引き取り、作業中カラムへ動かします。 この際、WIP制限に従う必要があります。
  5. 作業の実施 作業中カラムのタスクについて、実際の作業を行います。 作業が完了したら次のカラム(レビューなど)へ進めます。

このようにプロダクトバックログ上の優先度の高い作業から順に引っ張り(プル)、実施していきます。

プルする際は、WIP制限に注意を払う必要があります。作業中のWIP値がすでに上限に達している場合は、新しいタスクをプルできません。そのため、上流の完了作業を先に進めるなどの工夫が必要になります。

作業のプルは需要主導の開発を実現する上で重要なプロセスです。このプルの仕組みにより、常に最新のユーザー要求に追従した開発が可能になるのです。

これは、作業メンバーがどのタスクに取り組むかを自主的に選ぶことになりますね。
マネージャーからタスクを与えられるわけのではないのですね。

はい、その理解で正しいです。

カンバン開発では、作業者自身がプロダクトバックログからタスクを自主的に選び取り(プル)、それに取り組むという形になります。

マネージャーや上長から一方的にタスクを割り当てられるのではなく、作業者がチームの状況や優先度を見ながら、自身で次に取り組むタスクを主体的に選択するのです。

この点が、従来の上位主導型の開発プロセスとは大きく異なります。

自主的なプルには、以下のようなメリットがあります。

  • 作業者の主体性とモチベーションが高まる
  • 作業者の裁量が増え、状況に合わせた適切な作業ができる
  • 上位からの作業押し付けによる非効率が発生しにくい

一方で、作業者に一定の自覚と責任感が求められます。プロダクトバックログを常に意識し、優先度の高い作業からプルする必要があります。

また、WIP制限にも従わなければなりません。作業中のWIPで手一杯の場合は、無理にプルせず、上流の作業を先に進めるなど、フローを意識する必要があります。

つまり、作業プルの自由度と引き換えに、作業者個人の自覚と規律が求められるわけです。

このようにカンバン開発では、作業プルを通じて上位主導ではなく、作業者主導の自走式の開発プロセスを実現しているのです。

次に「5. 作業の実施とボード更新」について、解説してください。

分かりました。カンバン開発の具体的な進め方の5つ目「作業の実施とボード更新」について解説します。

作業の実施とは、プルした作業を実際に行うプロセスです。そしてその進捗状況をカンバンボード上で可視化し続けることが、ボード更新になります。

具体的な手順は以下の通りです。

  1. 作業開始 プルしたタスクについて、実際の作業を開始します。 作業者は作業内容を確認し、必要な環境やリソースを確保します。
  2. 作業中カラムへの移動 作業を開始したら、そのタスクカードを作業中カラムへ移動させます。 これで作業が実施中であることが可視化されます。
  3. 作業の実施 設計・実装・テストなどの通常の作業フローに沿って、タスクの作業を進めます。 作業に伴う成果物(設計書、コードなど)を適宜アウトプットします。
  4. 次工程へ進める 作業が完了したら、次の工程(レビュー、テストなど)のカラムへタスクカードを移動させます。
  5. 完了までの繰り返し レビュー工程で変更が必要な場合は作業中へ戻すなど、完了までこのプロセスを繰り返します。
  6. 完了カラムへの移動 全ての工程が完了したら、タスクカードを完了カラムへ移動させます。

このようにカンバンボード上のタスクカードの動きで、作業状況が常に可視化され続けます。ボード上を見れば、誰が何をしているかが一目でわかります。

作業者はタスクの状況に合わせてカードを動かすことで、自身の作業を可視化し続ける必要があります。マネージャーもボードを見て進捗を把握できます。

このようなボード更新を通じて、プロジェクト全体の作業フローを見えるようにしていくことが、カンバン開発の大きな特徴なのです。

次に「6. レビューとリリース」について、解説してください。

分かりました。カンバン開発の具体的な進め方の6つ目「レビューとリリース」について解説します。

レビューとは、完了したタスクの成果物(設計書、コードなど)を確認し、問題がないかをチェックする工程のことです。リリースとは、レビューで問題がなければ顧客に成果物を提供することを指します。

具体的な手順は以下の通りです。

  1. レビューカラムへの移動 作業が完了したタスクカードを、レビューカラムへ移動させます。
  2. レビュー担当者の決定
    そのタスクのレビューを誰が行うかを決めます。 作業者以外の他のメンバーがレビューすることが一般的です。
  3. レビューの実施 レビュー担当者が、成果物を確認し、受け入れ基準を満たしているかをチェックします。 問題があれば、作業者にフィードバックを行います。
  4. 問題があれば作業フェーズへ戻す もし重大な問題が見つかった場合、そのタスクカードを作業中カラムへ戻し、修正作業が入ります。
  5. 修正後、再レビュー 修正が終わったら、再びレビューフェーズへ戻します。 問題がなくなれば、次のステップへ進みます。
  6. リリース レビューで問題がないと判断されたら、顧客にその成果物をリリース(提供)します。
  7. 完了カラムへ移動 リリース後、そのタスクカードを完了カラムへ移動させ、作業が終了したことを示します。

このようにレビューとリリースを経て、顧客に対し確実にできた品質の成果物を提供していきます。

レビュー工程は品質を確保し、ミスを事前に発見できるため、非常に重要なプロセスです。またレビューを通じてメンバーの知見を共有できるメリットもあります。

リリースタイミングは製品によって異なりますが、小さな単位で繰り返しリリースすることで、顧客にも早期に価値を提供できるというアジャイル開発の利点が生かせます。

次に「7. メトリクス収集と改善」について、解説してください。

カンバン開発では、プロセスのパフォーマンスを継続的に測定し、改善を重ねていくことが非常に重要視されています。

そのために以下のようなメトリクスを収集します。

・リードタイム: タスクを開始してから完了するまでの時間
・サイクルタイム: 実際の作業時間
・スループット: 単位時間あたりの完了したタスク数

これらのメトリクスを分析することで、ボトルネックとなっている工程や課題が見えてきます。 例えば、リードタイムが長ければ、フローの滞っている場所が特定できます。

収集したメトリクスとカンバンボードの視覚情報を基に、以下のようにプロセスを改善していきます。

  1. ボトルネックの特定
  2. 改善案の検討(WIP制限の変更、役割分担の見直しなど)
  3. 改善の試行実施
  4. 改善効果の測定(メトリクスの再計測)
  5. さらなる改善案の立案

このサイクルをプロジェクト期間中継続的に回すことで、フローを最適化し、リードタイムを短縮できます。

顧客の要求に対して迅速に対応できるようになり、より価値のあるものをタイムリーに提供できるようになります。

このようにメトリクス収集と分析を行い、プロセスを継続的に改善していくことが、カンバン開発の極めて重要な活動なのです。

カンバンの反復サイクルは、最初だけ、
「1. プロダクトバックログの準備」
「2. カンバンボードの準備」
「3. WIP制限の設定」
を実施し、
「4. 作業のプル」
「5. 作業の実施とボード更新」
「6. レビューとリリース」
「7. メトリクス収集と改善」
を繰り返す、反分開発となるのですか。
「3. WIP制限の設定」の部分を最初だけやるのか、反復の度にやるのかよく分かりません。

はい、その理解で正しいです。

カンバン開発では、最初に一度だけ下記の3ステップを実施します。

  1. プロダクトバックログの準備
  2. カンバンボードの準備
  3. WIP制限の設定

この3ステップで、プロジェクトの開発に必要な土台を整えます。

その後は、以下の4ステップを反復的に繰り返します。

  1. 作業のプル
  2. 作業の実施とボード更新
  3. レビューとリリース
  4. メトリクス収集と改善

つまり、WIP制限の設定は最初の一度きりで、その後の繰り返しサイクルでは毎回WIP制限を再設定するわけではありません。

ただし、メトリクスを収集し分析する中で、現在のWIP制限値が適切でないと判断された場合は、WIP制限を変更することがあります。

例えば、ある工程にボトルネックが発生し続けているようであれば、その工程のWIP制限を引き下げるなど、適宜調整を加えます。

つまり、WIP制限自体は最初に設定したものを使いながら運用していきますが、プロセスの最適化を進める中で必要に応じて変更していくわけです。

このように、WIP制限の設定は準備フェーズで最初に一度行い、その後はメトリクスに基づいて随時見直し、調整を加えていくという扱いになります。

チーム構成と標準的人数

カンバンのチーム構成と、その標準的な人数について解説してください。

カンバン開発におけるチームの構成と標準的な人数について解説します。

【チーム構成】 カンバンチームは基本的に、以下のようなロール・役割で構成されます。

  • 製品オーナー プロダクトバックログの管理や優先順位付けを行う役割。顧客の要求をチームに伝達する。
  • スクラムマスター(カンバンマスター) カンバンプロセスを理解し、チームをサポートする役割。ボード運用の改善などを推進する。
  • 開発チーム 設計、開発、テストなど作業を行うチームメンバー。 クロスファンクショナルであることが望ましい。
  • その他関係者 UIデザイナーやテスター、ユーザーエクスペリエンスデザイナーなど、プロジェクトに関わる役割。

製品オーナーとスクラムマスター的な役割は設ける必要がありますが、開発チームはクロスファンクショナルであるのが理想です。

【標準的なチーム人数】 チームの規模は小さいほど効率が良いとされています。標準的な人数は以下のような範囲が目安とされています。

  • 小規模 : 3〜5人程度
  • 中規模 : 5〜9人程度
  • 大規模 : 9人以上(複数チームに分割が推奨される)

3人以下だと十分な機能が発揮できない可能性があり、9人を超えると非効率になりがちです。

理想的なチームは7人前後と言われていますが、納期やスケールに応じて適切な規模を検討する必要があります。

大規模プロジェクトの場合は、複数のチームに分割してそれぞれがカンバンを実践する形になります。

スクラムマスターのようなロールを設け、全体を統括するのも一つの方法です。

このように、カンバン開発ではチームの人数規模を適切に設定し、お互いにクロスファンクショナルな形でプロセスを実践していくことが推奨されています。

「お互いにクロスファンクショナルな形でプロセスを実践していく」の部分をもう少し詳しく解説してください。

分かりました。カンバンチームにおける「クロスファンクショナル」の意味と実践方法について、より詳しく解説します。

クロスファンクショナルとは、チームメンバー一人一人が複数の役割や機能を担うことを指します。単一の役割に特化するのではなく、柔軟に様々な役割を渡り歩けることが理想とされています。

クロスファンクショナルであることで、以下のようなメリットがあります。

  • ボトルネックの解消 ある機能の作業が溜まっても、他の機能の担当者が支援できるため、滞留を防げる
  • コミュニケーションコストの削減 機能毎に細分化されていないため、メンバー間の調整コストが下がる
  • 作業の理解促進 様々な機能を経験することで、製品全体への理解が深まる
  • 柔軟な対応力 メンバーの役割が固定されていないため、変化への対応がしやすい

具体的なクロスファンクショナルの実践方法としては、例えば以下のようなことが考えられます。

  • ペアプログラミングを行い、コーディングのみならずテストやレビューなども経験する
  • 定期的にロール移動を行い、設計・実装・テストなど様々な機能を回す
  • 協調して1つの作業を行う際は、適任者に関わらず参加できるような体制を取る

このように、クロスファンクショナルを実現するためには、メンバー間の柔軟性と協調性が重要になります。

一方で、高度な専門性が求められる場合は、ある程度の役割分担も必要です。チームのスキルバランスを見ながら、適切な範囲でクロスファンクショナルを実践していくことがカンバン開発のポイントだと言えるでしょう。

リモートワーク

カンバン開発をリモートワークで実施することは可能ですか。
また、その実例はありますか。

はい、カンバン開発はリモートワーク環境でも実践することが可能です。

リモートワークでカンバン開発を行う上での留意点と実例は以下の通りです。

【リモートワークでの留意点】

  • ボード共有のためのデジタルツールの利用 物理的なボードは使えないため、デジタルカンバンツール(Trello、JIRA、ClickUpなど)を利用する必要があります。
  • コミュニケーションツールの活用
    リモート環境ではコミュニケーションが不足しがちです。チャットツールやWeb会議システムを積極的に利用します。
  • デイリーミーティングやレビュー会議の実施 離れた場所でも定期的にミーティングを開き、プロセスの確認や課題共有を行います。
  • 作業内容の書き残し 誰が何をしているかわかりにくいため、作業内容をタスクカードや共有ドキュメントに書き残す必要があります。
  • WIP制限の適切な設定 リモートではコミュニケーションコストが高まるため、WIP制限を適切に設定して並列作業を抑える必要があります。

【実例】

多くのIT企業や遠隔地を含むプロジェクトで、リモート環境でのカンバン開発が実践されています。

例えば、オープンソースプロジェクトや分散開発を行う企業では、デジタルツールを利用しながらグローバルにカンバン開発を実施しているケースがあります。

COVID-19の影響で在宅勤務が増えた際にも、既存のカンバンプロセスをリモート環境に切り替えた企業は多くありました。

このように、適切なデジタルツールとコミュニケーション手段を用意すれば、リモートワーク環境でもカンバン開発は十分に実践可能です。遠隔地を含むプロジェクトでは、むしろリモートワークが前提となるケースも多いでしょう。

トヨタとの関係

カンバン開発は、トヨタのカンバン方式と関係がありますか。

はい、カンバン開発は、トヨタ生産方式でのカンバン方式と関係があります。

カンバン(kanban)はもともと、トヨタ自動車の職場で使われていた「かんばん(看板)」に由来する用語です。トヨタ生産方式では、工程間の部品や資材の流れをカンバン(かんばん)と呼ばれる携帯用の伝票で管理していました。

この手法を情報技術の分野、特にソフトウェア開発に適用しようとしたのがカンバン開発の始まりです。

具体的には、トヨタ生産方式の以下の3つの主要な概念がカンバン開発に取り入れられています。

  1. 作業の可視化 トヨタ生産方式では、現場の作業状況を見える化していました。 カンバンボードはこの考え方を採用しています。
  2. 制限によるボトルネック解消 トヨタではJust in Timeの考え方で在庫を制限していました。 カンバン開発のWIP(作業中アイテム)制限はこれに相当します。
  3. プル式の流れ
    トヨタでは、後工程が手を空けた時に部品をプルしていました。 カンバン開発でも需要に応じてタスクをプルします。

このように、製造業のトヨタ生産方式で実践されていた原理や概念を、ソフトウェア開発の領域に取り入れたのがカンバン開発の基本的な発想になっています。

トヨタ自動車が生産現場で行っていた「かんばん方式」から着想を得て、ITの現場に応用されたと言えるでしょう。

カンバン開発とスクラムには、何か関係がありますか。

はい、カンバン開発とスクラムには密接な関係があります。

カンバン開発はスクラムの価値観、特に受益者を最優先する考え方から影響を受けています。そしてスクラムはカンバン方式に基づいて作られたと考えられています。

具体的には以下の点でカンバン方式からの影響が見られます。

  1. 製品バックログの活用 カンバンの考え方であるプル(引っ張り)-システムの元で、プロダクトバックログが生まれます。スクラム制度ではその考え方を従来から取り込んでいました。
  2. 定期リリースの実施 カンバンの考え方であるプル(引っ落り)システムでは、製品提供までの一連のサイクルが定期化されます。  そのためスクラームではそのウェイトサイクル推進をする必要があります。
  3. 顧客価値主導派の立ち合い カーバンの考え自刀は上を読む一種の特殊なウェイトを加え込みます。  カンバンがその流れ上に顧客価値の立ち合いを諸生処理します。

このように、スクラーム全体がカーバン方式からの影響を受けます。  その上でそのスクラームの概念を体現したのがプロダクトバックログの活用やウェイトサイクルのフィードバックのサイクル上である。

カンバン方式に由来するプロダクトバックログが、スクラームの実践から創出した考え方の一例以上の意義を正しく鑑みたうえで、かつ、加えるメリットも享有できます。

このように、カンバン方式はスクラームの活用や操作を容易にし、プロダクトバックログの考え方に基づいて、スクラームを理解するための一助となるでしょう。

米国での普及率

カンバン開発は米国で、何割ぐらい採用されていますか。
根拠の提示もお願いします。

残念ながら、カンバン開発手法の正確な採用率に関する信頼できる統計データは見つけられませんでした。しかし、いくつかの調査結果から、米国におけるカンバン開発の採用状況を概算することはできます。

2021年の”14th Annual State of Agile Report”によると、アジャイル手法全般における手法別採用率は以下の通りでした。

  • Scrum: 66%
  • Scrum/XP Hybrid: 9%
  • Scrumban: 8%
  • Kanban: 5%
  • Custom Hybrid Agile Method: 5%

つまり、純粋な”Kanban”として採用されている率は5%と比較的低い一方で、Scrumbanというスクラムとカンバンを組み合わせたハイブリッド手法を含めると13%がカンバン開発の要素を取り入れていることになります。

また、2022年のProject Management Instituteの調査では、アジャイル手法の中でKanbanの採用率は12%と報告されています。

このように、純粋なカンバン開発の採用率は10%前後と推測されますが、スクラムとの組み合わせを含めるとその割合は更に高くなる可能性があります。ただし、正確な採用状況を示すデータは見つけられませんでした。カンバン開発への関心は徐々に高まってきている段階と考えられます。

おわり

カンバン開発のご紹介でした。
今回は、これで終わります。

ではまた。

タイトルとURLをコピーしました