ソフトウェアエンジニアリングにおけるかんばんモデル

かんばんとは何ですか?

かんばん は、アジャイル ソフトウェア開発手法における開発用の非常に人気のあるフレームワークです。 チームのタスクと作業能力を視覚化する透明な方法を提供します。 主に物理ボードとデジタルボードを使用して、チームメンバーが取り組んでいるプロジェクトの現在の状態を視覚化できるようにします。

カンバンは 1940 年代にトヨタで生まれました。日本語でカンバンとは「看板」という意味です。カンバン ボードには列とストーリー カードがあります。列は何も意味しませんが、ワークフローの状態とカードは、チーム メンバーが実際に実行しているタスクのデモンストレーションに他なりません。

カンバンをいつ使用するか?

カンバン開発手法を使用する理由は次のとおりです。

  • カンバンはあらゆるドメインで使用でき、ソフトウェア開発において非常に効果的に使用できます。 カンバン プロジェクト管理は、チームの効率の向上に役立ちます。
  • プルベースのシステムです。 タスクは、個人が空くとすぐにプルされます。
  • カンバンは、いつでも作品をリリースしたい場合に使用する必要があります。 git ブランチが必要ですが、実行可能です。
  • カンバンは、優先順位をその場で変更したい場合に使用する必要があります。 そのために必要なのは、このストーリーを To Do キューの一番上に置くことだけです。
  • 仕事を可視化したいとき、タスクの進捗状況を視覚的に確認したいときに使用するとよいでしょう。

カンバンカード

カンバン方式では作業の見える化を推奨しています。 物理ボードとデジタルボードの使用を示唆しています。

カンバンカード
カンバンカード

カンバン カードは、チームが取り組んでいる作業を表すため、カンバン ボード上で不可欠な要素です。 これらのカードには、

  1. 優先
  2. オーナー
  3. タイプ
  4. 期日

カンバン ボードの列は作業段階を表し、その列に WIP (進行中の作業) 制限を設定できます。 WIP 制限とは、その列に留まることができるカードの最大数を意味します。.

カンバン プロジェクト管理ではプルベースのシステムが使用されているため、開発者は暇なときに、ToDo 列から開発列にカードをプルできます。

かんばんボード

かんばんボード は、カンバンを実装して個人およびビジネス目的のプロジェクトを管理するのに役立つアジャイル プロジェクト管理ツールです。 これは、チームがさまざまな段階やプロセスでの作業を視覚化できるように設計された物理またはデジタル (JIRA) ボードです。 また、カードを使用した列で作業の段階を表現するのにも役立ちます。

次のような作業のステータスを表す列があります。

  1. やるべきこと、
  2. デベロッパー
  3. テスト
  4. 完了しました。

これらの各列には、WIP 制限以下のカードを含めることができます。 カードは実際の作業を表します。

進行中の作業を制限するために正の数を使用できます。この制限数は、物理およびデジタルのカンバン ボードの両方の列の上部に配置できます。チームの各メンバーは自分のカードの状態を管理でき、チーム全体でワークフローを視覚化できます。次に、このカンバン チュートリアルでは、カンバン ワークフローについて学習します。

かんばんワークフロー

かんばんワークフロー は、チームがカンバンで明示的なポリシーと原則を定義するのに役立つ一連の手順です。 これは、開発および配信サイクルのさまざまな段階で作業が進行する際のルールと手順を表します。 カンバン ワークフローは、特定のタスクの開始から実行までの段階的なプロセスで構成されます。

カンバンの基本原則は次のとおりです。 「始めるのをやめて、終わりを始めなさい」。 WIP 制限のおかげで、より多くの作業を完了できます。 JIRA などの最新ツールでは、カスタマイズ可能なカンバン ワークフローと状態を利用できます。

以下は、多くのソフトウェア チームがワークフロー管理のために従う基本的な状態です。

米国 タスクの理解
To-do この状態で初めてタスクがここに到着します。
分析の準備完了 タスクを分析し、要件を完全に追加します。
開発の準備ができています 解析が完了し、開発を開始できます。
開発中 タスクは開発中です。
テストの準備ができました 開発が完了し、テストを開始できるようになりました。
テスト中 タスクはテスト中です。
リリースの準備完了 テストは完了しました。 リリースが起こる可能性があります。
リリース済み/完了 リリースされました。

カンバンの XNUMX つの原則

以下は、カンバンの主な XNUMX つの中心原則です。

  1. 今持っているものから始める: カンバン システムは、段階的に作業し、現在あるものから始めることを推奨します。 継続的に改善することが実践の XNUMX つであるため、システムは徐々に改善する必要があります。
  1. 漸進的かつ進化的な変化を追求することに同意します: カンバンでは、プロセスを段階的に変更することが推奨されており、一度にプロセスに大きな変更を加えてはなりません。
  1. 現在のプロセス、役割、責任を尊重します。 もう一度、今持っているものから始めて、プロセス、役割、責任を段階的に変更してください。
  1. あらゆるレベルでリーダーシップのある行動を奨励する: 各個人がリーダーとして行動し、カンバン システム全体の効率を向上させるためのアイデアを提供できます。 これは管理レベルの活動であると考える必要はなく、チームの最年少メンバーでもリーダーとして行動できます。

XNUMX つのカンバンのコア プラクティス

以下は、カンバンの主要な 6 つのコアプラクティスです。

  1. ワークフローを視覚化する: この原則は、ワークフローを視覚化するためにカンバン ボード (物理的またはデジタル) を用意することを示唆しています。 チームの各個人は、自分のカードと他のチームメンバーのカードを見る必要があります。 上の画像のように、カードをさまざまな列に移動できます。 チーム内に多くの透明性がもたらされ、障害の解決も容易になります。
  1. 進行中の作業を制限する: カンバンはプルベースのシステムであり、進行中の作業を制限し、チームが指定された時間枠内で完了できるタスクを作成することでチームの効率が向上します。 この WIP 制限は、ワークフローの最初から最後まで適用されます。 正の整数を使用して列の先頭に制限を適用できます。
  1. 流れに重点を置く: この原則は、流れと中断に焦点を当てています。 中断または阻害要因がある場合は、それらを永久に修正する必要があります。
  1. 明示的なポリシー: チーム内でポリシーを確立して、手戻りを減らし、注意が必要な領域やより効果的な領域に重点を置くことができます。
  1. フィードバックループ: カンバンではフィードバック ループが非常に重要です。 これは、チーム内だけでなく、複数のチーム、コーチなどの間でも行われます。これは、カンバン システム全体の健全性の向上に役立ちます。
  1. 継続的改善:これがカンバン方式の基本原理です。 いつでもプロセスを改善でき、それが効率の向上につながると述べています。

プルベースのシステム

カンバンはプルベースの方法であり、タスクはプッシュされるのではなくプルされます。 現在のカードが完成したらすぐに、カンバン ボードの前の列から新しいカードを引くことができます。

WIP 制限により、カンバンはリードタイムとサイクルタイムの改善に役立ちます。これら 5 つのタイミングのギャップは最小限に抑える必要があります。たとえば、開発者が 1 人いて、テスターが XNUMX 人しかいない場合、どうなるでしょうか。テストが必要なカードは常に多数存在し、アイドル状態のまま待機状態になります。

上記の問題を克服し、効率を向上させるために、かんばんは WIP 制限を備えたプルベースのアプローチに従い、プルされるカードの数が制限されます。

したがって、テスターは、現在のタスクが完了すると、「テストの準備ができた」段階からタスクをプルします。 カンバン列 (開発段階) に WIP 制限があるため、カンバン ワークフローで放置されるカードが多くなくなります。

プルベースのシステムは、チームの正しい速度を見つけるのにも役立ちます。 適切なベロシティがあれば、チームのパフォーマンスは向上します。

リードタイムとサイクルタイム

カンバン方式ではリードタイムとサイクルタイムが広く使用されていますが、両者には違いがあるため、混乱を避けるためにそれを理解することが重要です。

リードタイム サイクルタイム
リード タイムは、タスクがワークフローに到着してから、タスクがワークフローから離れる、つまりタスクがリリースされるまでの時間として測定されます。 サイクル タイムは、タスクが「進行中」状態に到達してから、タスクが「リリース準備完了」状態に到達するまでの時間として測定されます。

ここでは、リリースの準備ができてから実際のリリースまでにかかる時間を含めないことを理解することも重要です。

Cycle Time = Work in Progress/Throughput

理想的なシナリオでは、リード タイムとサイクル タイムの間のギャップは最小限である必要があり、かんばんは累積フロー図 (CFD) を使用してリード タイムとサイクル タイムの履歴データを測定します。

累積フロー図 (CFD)

CFD は、すべての主要な通貨で利用できるチャートです。 ワークフロー管理ツール ジラのように。 このグラフは、ワークフローに入ったワーク カード/タスクの合計量と、時間の経過とともに蓄積された完了済みカード/タスクの合計量を測定します。

これは、事前に指定した時間の平均リード タイムとサイクル タイムを見積もるのに役立ちます。

CFD 図は、修正すべき指標や問題領域を示します。 この図に基づいて、明確なイメージを提供します。 チームのリードタイムとサイクルタイムを修正できます。

カンバン累積フロー図
カンバン累積フロー図
  1. リードタイム: 新しいカードがワークフローに到着してから、ワークフローから最終的に離れるまでの時間です。
  2. サイクルタイム: カードが動作状態に到着してから、カードを解放する準備が整うまでの期間です。
  3. WIP: 進行中の作業 (WIP) は、ワークフローのさまざまな段階での作業項目の最大量を制限します。
  4. スループット: これは実際のパフォーマンスであり、指定された時間枠内に配信された実際のカードの数を示します。
  5. スループット = WIP/サイクルタイム

WIP(仕掛品)の制限

カンバン開発手法では、WIP により、チーム メンバーまたはチーム全体が一度に作業できるタスク/カードの数が制限されます。

WIP 制限により、チームの作業が安定し、プルベースのシステムでは不可欠な予測性が高まります。 通常、WIP 制限の決定はチーム自体によって行われます。

WIP 制限を設定する理由

WIP 制限を設定する理由は次のとおりです。

  • 個人が一度に 1 つのタスクに集中することで、物事を成し遂げることに重点が移ります。
  • チームが自分たちの能力を理解するのに役立ちます。
  • 生産性のリードタイムとサイクルタイムが向上します。
  • タスクが山積みになること(待機モード)を回避するのに役立ちます。
  • ワークフローの移動に役立ち、タスクが継続的に進みます。
  • また、個人が異なるタスク間で切り替えを行わないため、障害を解決するのにも役立ちます。

スクラム vs. カンバン

重要な違いは次のとおりです。 スクラム vs. カンバン

スクラム かんばん
スクラム 計画を立てることに重点を置くスプリントの計画から始まり、スプリントの振り返りで終わります。チームが次のステップ、優先事項、および以前のスプリントからの学習に沿っていることを確認するために、多くの会議が開催されます。 カンバンは外出先でも変更を加えることができます。 つまり剛性が低くなり、 物事は頻繁に変化する可能性があります.
の収集をお勧めします 時間の測定 スプリント中に行われた かんばん グラフを推奨します 時間の経過に伴うチームの進捗状況の概要を取得します。
スクラム もはや チームからのコミットメントを求めます。代わりに、スプリントの目標と予測が重要です。 カンバンが依存するもの タイムボックスと予測.
計画を立てることに重点を置くので、 見積もりは非常に重要な役割を果たします スクラムで カンバンには 必須要件はありません 見積もり用に。
あらゆる 人にはそれぞれの役割がある そして責任。 いいえ 役割を柔軟に設定できる 個人の責任という意味では。
反復/Sprintの期間は固定されています。この期間は 2 週間から 1 か月までさまざまです。 かんばんは 期間に基づいていない。 これはサイクルタイムに関して測定されます。
チームは コミットするために必要な 特定の作業量。 コミットメントは必要ありません チームにとってはオプションです。
この方法では、 クロスファンクショナルチーム ソフトウェア開発のボトルネックを引き起こす可能性のある中断に対処できるため、これらは重要です。 持って 専門チーム は重要。
これは、 アイテムを追加できません 継続的な反復に。 New アイテムは簡単に追加できます 追加の容量が利用可能な場合。
スプリントバックログは、 単一チーム. 複数のチームカンバンボードを共有できます。
成果物は、 スプリントによって決定される、一連の作業が完了し、レビューの準備ができている必要があります。 製品やプロセスは、 継続的に配信される 必要に応じて、テストとレビューのプロセスが同時に進行します。
スクラムソフトウェア開発手法 バックログに焦点を当てます. 完全カンバン方式 プロセスダッシュボードに焦点を当てる.
あらゆる チームメンバーには特定の役割がある スクラムマスターではタイムラインを決定し、プロダクトオーナーは目標と目的を設定し、チームメンバーが開発作業を実行します。 チームに事前に定義された役割はありません。 ただし、プロジェクト マネージャーがまだ存在する場合があります。 チームは協力し、協力することが奨励されています。
プロジェクトに最適 優先順位の変更. チームに最適 安定した優先順位 それは時間が経っても変わる可能性は低いです。
生産対策 速度を使用する スプリントを通じて。 を使用して生産を測定します サイクルタイム または、プロジェクトの XNUMX つの完全な部分を完了するのにかかる正確な時間。
スクラムには、 従来のモデルからの完全な転換 プロジェクトを実装するアジャイル スクラム モデルに。 かんばん 急激な変化を許さない プロジェクトで
これは、次のようなプロジェクトに最適な方法です。 大きく異なる優先事項. に最適 安定した優先順位を持つチーム.
スクラムでは、全体のeamは協力してタスクを完了することに重点を置いています 質の高い開発作業を提供するために。 チームは目標を達成するために働きます プロセス全体を完了するまでの時間を短縮します。 したがって、タイムサイクルの短縮が、ここでの成功の最大の指標となります。
スクラム スケジュールを重視する; 進行中の反復に新しい項目を追加することはできません。 カンバンは本質的に反復的であるため、 特定の期間はありません。 そのため、追加の容量が利用可能になったときはいつでも、新しいアイテムを継続的に追加できます。
合計の作業は次のように行われます。 バッチ/Sprints. プロジェクト全体は、次の動きに基づいて実行されます。 シングルスレッドのワークアイテム 流れ。
スクラムマスター 問題解決者として機能します。 カンバンは奨励します チームメンバー全員がリーダーです そして全員の間で責任を共有します。
スクラムが規定する 時間制限のある反復. カンバンが重視するのは 別の期間を計画する 個々の反復用。
スクラムは企業が次のことを行うのに役立ちます 時間とお金を節約する. カンバン方式 継続的な改善に焦点を当てる、生産性、効率性。
達成する 安定した一貫した通信 あらゆるレベルでのパフォーマンスの向上。 チームメンバーはそうする可能性が高くなります 目標を達成するのがはるかに簡単になります カンバンボードの視覚的な性質のため。
プロジェクトは スプリント中にコーディングとテストを行う レビュー チームメンバーはそうする可能性が高くなります 目標を達成するのがはるかに簡単になります カンバンボードの視覚的な性質のため。
これは、 絶え間ない変化に適応しやすくなる 短いスプリントと定期的なフィードバックのためです。 これは、 定期的で安定した出力を実現するように設計されています、顧客の需要が大きく変化すると、かんばんが失敗する可能性があります。
プロジェクトの総コストは最小限であるため、 より早く、より安価な結果が得られる. タスクが正しく見積もられていない場合、 プロジェクトの総コストは決して正確ではありませんこのような場合、タスクは複数のスプリントに分散される可能性があります。
この方法論 経験豊富なチームメンバーが必要 のみ。 したがって、専門家以外の人がチームを構成すると、プロジェクトは時間内に完了できません。 いいえ 特定の時間枠 が各フェーズに割り当てられるため、チームメンバーは各フェーズにどれくらいの時間がかかるのかまったくわかりません。
このアジャイル スクラム手法では、 高品質の製品を提供しやすくなります 予定された時間に。 のために設計されています 定期的で安定した出力、 顧客の需要が大きく変化すると、かんばんが衰退する可能性があります。
その プロジェクト計画は決して邪魔されません たとえチームメンバーがチームを離れたとしても。 開発中にチームメンバーの誰かが離脱した場合、 プロジェクトの開発に悪影響を与える.
毎日の会議も時々あります イライラする チームメンバー 時代遅れのカンバンボード 開発プロセスで問題が発生する可能性があります。
大規模なプロジェクトは簡単に分割できます 簡単に管理できるスプリントに分割します。

製品概要

  • カンバンの定義: カンバンは、ソフトウェア、自動車、商品、医薬品、靴、またはその他の製造作業を開発するためのアジャイル開発手法として定義されます。
  • カンバンでは、カンバン ボードを使用して作業を視覚化します。 列をステージ (ToDo、開発、テストなど) として使用し、カードを作業項目として使用します。
  • カンバン手法は、物理ボードとデジタルボードの視覚化をサポートします。
  • カンバンはプルベースのシステムであり、チーム メンバーによって前のステージから現在のステージまでカードが引っ張られます。
  • カンバン方式では、CFD 図を使用してチームのリード タイムとサイクル タイムを把握します。 このチャートは、チームがこれら XNUMX つのタイミング間のギャップを修正し、効率を向上させるのに役立ちます。
  • カンバン開発手法、WIP では、チーム メンバーまたはチーム全体が一度に作業できるタスク/カードの数が制限されます。
  • WIP 制限により、個人が一度に 1 つのタスクに集中するため、物事を完了することに重点が移ります。