はじめに
「このPBI、実装方法が見当もつかないから見積もりできない」——スクラムで開発を進めていると、こうした場面に出会うことがあります。このとき使われるのが スパイク(Spike) という手法です。本記事では、スパイクとは何か、PoCとの違いも含めて整理します。
スパイクとは
スパイクとは、特定の疑問に答えるため、あるいは技術的な不確実性を減らすために行う、時間を区切った(タイムボックスされた)調査・実験活動です。
通常のPBI(プロダクトバックログアイテム)は「動く機能を作る」ことを目的としますが、スパイクの目的は機能を作ることではなく、学ぶことです。調査・実験を通じて必要な情報を得て、後続の本来の開発作業を見積もり可能な状態にすることがゴールになります。
なぜスパイクが必要になるのか
次のような状況で、通常のPBIとしてすぐに着手・見積もりすることが難しい場合にスパイクが使われます。
- 見たことのない技術・ライブラリを使う必要があり、実現可能性も工数も見当がつかない
- 複数の実装アプローチが考えられるが、どれが最適か判断する情報が不足している
- 既存システムの内部構造が分からず、影響範囲を把握できていない
- 要件自体があいまいで、何を作るべきかの仕様がまだ固まっていない
スパイクの2つの種類
スパイクは大きく2種類に分類されます。
| 種類 | 目的 |
|---|---|
| 技術スパイク(Technical Spike) | 技術的な実現可能性やアプローチを検証する。「この方法で本当に実装できるか」「どのライブラリを使うべきか」といった技術的リスクの軽減が目的 |
| 機能スパイク(Functional Spike) | 要件・仕様そのものを明確にする。「ユーザーは実際に何を必要としているか」を調査し、機能要件のあいまいさを解消する |
タイムボックス(時間制限)が重要な理由
スパイクは、明確な期限を区切って実施します。一般的には1〜3日程度の短い期間が推奨されます。
期限を区切らずに調査を始めてしまうと、「もう少し調べれば分かるかもしれない」という状態がずるずると続き、いつまでも本来の開発に着手できなくなるリスクがあります。あらかじめ「この期間で分かったところまでで判断する」と決めておくことで、調査自体が目的化してしまうことを防ぎます。
スパイクの進め方(一般的な流れ)
- 答えを出したい問い(疑問・不確実性)を明確にする
- 調査に使う期間(タイムボックス)を決める
- 期間内で、プロトタイピング・技術検証・関係者へのヒアリング等を行う
- 期間終了時に、得られた知見をチームに共有する
- その知見をもとに、本来のPBIを見積もり可能な状態まで具体化する
スパイクの成果物は、多くの場合「動くコード」そのものではなく、「分かったこと」の共有です。調査の過程で書いたコードは、そのまま本番に使われるとは限らず、使い捨てのプロトタイプとして扱われることもあります。
PoCとの違い
「PoC」も「実現可能性を検証する」という点でスパイクとよく似ていますが、位置づけが異なります。
| 観点 | スパイク | PoC |
|---|---|---|
| 位置づけ | スクラムのプロセスに組み込まれた、プロダクトバックログ運用上のテクニック | プロジェクト計画上の、より大きな検証フェーズ・取り組み全体を指す言葉 |
| 規模・期間 | 通常1〜3日程度の短期間 | 数日〜数週間、時にはより長期にわたることもある |
| 扱われ方 | スプリント内の1PBIとして計画・見積もりされる | スクラムのようなフレームワークとは独立した、プロジェクトの一段階として扱われることが多い |
つまり、PoCが「本開発着手前の、より大きな検証の取り組み」であるのに対し、スパイクは「スクラムで開発を進める中で、個別のPBIに対する不確実性を解消するための、小さく短い調査活動」という位置づけの違いがあります。PoCの内部で、技術的な不確実性を検証する小さな作業単位としてスパイク的な進め方が使われることもあります。
まとめ
| 項目 | 内容 |
|---|---|
| スパイクとは | 不確実性を減らすための、タイムボックスされた調査・実験活動 |
| 目的 | 機能を作ることではなく、後続作業を見積もり可能にするための「学び」を得ること |
| 種類 | 技術スパイク(実現可能性の検証)、機能スパイク(要件の明確化) |
| タイムボックス | 一般的に1〜3日程度。調査の目的化を防ぐために期限を区切る |
| PoCとの違い | スパイクはスクラム運用上の小さな技法、PoCはより大きなプロジェクト上の検証フェーズ |
PoC・プロトタイプ・MVP・パイロットの違いについては、別記事「PoC(Proof of Concept)とは」で整理しています。