たとえるなら
マラソンを短距離走の繰り返しに変えるイメージです。42kmをただ走り続けるのではなく、「今週はここまで走る」と小さなゴールを決めて走り、ゴールするたびに休憩と作戦会議をしてまた走り出します。
もう少しくわしく
スプリント(sprint)は「短距離走」という意味で、アジャイル開発(特にスクラム)における作業期間のひと区切りです。多くのチームは1週間または2週間をひとつのスプリントとし、この長さを固定したまま何度も繰り返します。「今回のスプリントでは検索機能を完成させる」のように、区切りごとに目標を決めて取り組みます。
スプリントには決まったリズムがあります。始まりに「何をどこまでやるか」を決める計画の会議を行い、期間中は毎日短い共有ミーティングで進み具合と困りごとを確認します。終わりには完成したものを関係者に見せる会と、「もっと良く働くにはどうするか」を話し合う振り返りを行い、翌日からまた次のスプリントが始まります。
計画のもとになるのがバックログと呼ばれる作業の一覧です。やりたいことを重要な順に並べておき、スプリントの計画会議で上から順に「今回はここまで」と線を引きます。線の上に入ったものがそのスプリントの約束、下は次回以降の候補。この形にしておくと、割り込みの相談が来たときも「では代わりに何を外しますか」と話しやすくなります。
期間は1週間か2週間が主流です。短いほど軌道修正は早くなりますが、会議の回数が増え、まとまった作業がしづらくなります。長いほど落ち着いて作れる代わりに、方向のずれに気づくのが遅れます。大切なのは長さそのものより、途中で長さを変えないことです。同じ長さを繰り返すからこそ、次の項目のような比較ができるようになります。
一定のリズムがあることで、チームは「自分たちが1スプリントでどれくらい進めるか」を経験から把握できるようになり、先の見通しを立てやすくなります。「この分量なら、あと3スプリントで終わりそうです」と言えるのは、過去の実績が積み上がっているからです。区切りごとに軌道修正できるため、間違った方向に長く走り続けてしまう事故も防げます。
うまくいかなくなるときのパターンも、だいたい決まっています。毎回、目標の半分も終わらない(詰め込みすぎ、または見積もりが甘い)。割り込みの依頼が多すぎて計画が意味をなさない。振り返りが「特にありません」で終わる。どれも、区切りを設けた意味が失われた状態です。こうしたときは作業の進め方そのものを、振り返りの場で見直します。
先にすべての仕様を固めてから順番に作るウォーターフォールと比べると、違いがはっきりします。ウォーターフォールは全体の計画が立てやすい代わりに、途中の方針転換が苦手です。スプリントを繰り返すやり方は、短い区切りごとに実物を見て方向を変えられる代わりに、最終的な完成形を最初から約束するのが難しくなります。どちらが優れているかではなく、作るものの性質で使い分けます。
現場での使われ方
「その対応は次のスプリントに入れましょう」
今の区切りの作業はもう決まっているので、次の区切りの計画に組み込みましょう、という調整のひとことです。
「今スプリントの振り返り、明日の午後にやります」
この区切りの仕事のやり方を見直すミーティングの案内。改善を繰り返すのがアジャイルの肝です。
「今回のスプリントゴールは、検索機能を使える状態にすることです」
この区切りで何を達成するかの宣言。作業の一覧ではなく、達成したい状態で語るのがコツとされています。
「このスプリントは詰め込みすぎかもしれません」
計画の段階で分量に無理がありそうだ、という率直な指摘。計画会議でこれが言える空気があるチームは、たいてい健全です。
よくある質問
スプリント中に急な仕事が入ったらどうするのですか?
原則としてスプリント中の目標は守りますが、緊急の不具合対応などはチームで相談して割り込ませます。その場合は「代わりに何を外すか」もセットで決めるのが基本です。割り込みが多すぎる場合は、振り返りで仕事の受け方自体を見直します。
スプリントは何週間にするのがいいですか?
1週間か2週間が一般的です。慣れないうちは2週間から始め、会議の負担や軌道修正のしやすさを見て調整するチームが多いです。重要なのは長さより、いったん決めたら途中で変えないことです。
スプリントとイテレーションは何が違うのですか?
指しているものはほぼ同じで、どちらも「繰り返す作業の一区切り」です。スクラムという進め方の中ではスプリントと呼び、それ以外のアジャイル開発では一般名としてイテレーション(反復)と呼ぶ、という使い分けが多く見られます。
スプリントが終わるたびに必ずリリースするのですか?
必ずではありません。「いつでも公開できる状態」まで仕上げることは目指しますが、実際に公開するかは別の判断です。宣伝の都合や他の機能との兼ね合いで、何スプリント分かをまとめて公開することもあります。
スプリントゼロとは何ですか?
本格的な開発を始める前の準備期間を、そう呼ぶことがあります。環境の用意やチームの体制づくりを行う期間です。正式な用語ではなく、そもそも設けるべきかについては意見が分かれます。