
開発手法・プロセス
アジャイル開発
Agile / アジャイル
開発対象を最初にすべては確定させず、数週間ごとに動作するものを構築して確認し、優先順位を再検討しながら開発を継続する考え方です。発注側が継続して関わる手間がかかります。
すくらむ / Scrum / スクラム開発
1か月以内の短い期間ごとに動作するものを構築し、その結果をもとに次の計画を再検討するチーム開発の枠組みです。発注側からプロダクトオーナーを選出し、毎回の優先順位を決定し続ける負荷を計画に含める必要があります。

スクラムは1か月以内の一定の期間で開発を区切り、期間ごとに動作するものを構築して計画を再検討する作業を反復するチーム開発の枠組みです。区切った期間をスプリントと呼びます。アジャイル開発と呼ばれる進め方の中で広く採用されている方式の1つで、決まりごとが少なく、細部のやり方はチームが決定する前提になっています。
チームは3つの役割で構成されます。何をどの順で開発するかを決定するのがプロダクトオーナー、実際に開発するのが開発者です。スクラムマスターはチームが決まりごとに沿って改善し続けられるよう支援します。役割であって役職ではありません。
アジャイル開発は開発しながら決定していく考え方の総称で、具体的な手順までは定めていません。考え方に賛同できても、それだけではチームが毎週何をすればよいかは確定しません。確定していなければ、進め方は人によってばらつきます。計画をいつ立て直すのか、誰が優先順位を決定するのか、何をもって完成とするのかが曖昧なまま進行すると、結局は強く主張する人の要望で優先順位が変更され続けます。
スクラムはアジャイル開発を実践するための代表的な進め方の1つで、この曖昧さを具体的な決まりごとで解消しました。期間の区切り方、毎回必ず行う会議、3つの役割とそれぞれが負う責任を定めています。決まりごとはスクラムガイドとして公開されています。
スクラムで進行する案件に関わると、スプリントごとに次の場が繰り返されます。
開発対象の候補はプロダクトバックログという1つの一覧に集約します。その並び順の最終的な責任はプロダクトオーナー1人が担い、並べ替えの作業は他の人に支援してもらってもかまいません。スクラムガイドはプロダクトオーナーが委員会ではなく1人であること、組織全体がその判断を尊重することを求めています。どこまでできたら完成とみなすかの基準も事前に定め、基準を満たさないものは完成とみなしません。
計画はスプリントごとに立て直すだけで、不要にはなりません。開発対象の一覧と完成の基準は常に最新の状態にしておく必要があります。仕様を文書として記録する量は削減できても、記録は省略できません。
スクラムマスターはチームが進め方を改善できるよう支える役割で、開発するものの中身や納期を決定する立場ではありません。何を開発するかの判断はプロダクトオーナー、どう開発するかは開発者が担います。
報告に登場するベロシティは、1スプリントで消化したストーリーポイントの合計を指すことが多いです。ストーリーポイントはスクラムガイドの決まりではなく、チームが任意で利用する見積もりの手法で、数字の大きさはチームごとに異なります。チーム間で比較する意味はなく、評価に利用すれば見積もりが水増しされるだけです。重視すべきは事業の目標に近づくものが毎回生み出されているかどうかです。
スクラムガイドは一部だけを実施することは可能でも、その結果はスクラムではないと記述しています。会議と役割の名前だけをそろえ、プロダクトオーナーに優先順位を決定する権限がないまま運営すると、会議の手間だけが増加して効果は出ません。うまくいかないときはどの役割や会議が欠けているか、プロダクトオーナーが自分で決定できているかを確認します。
最初に用意すべきは開発対象の優先順位を決定する権限を備えたプロダクトオーナーで、社内から1人選出します。この人を選出できないなら、スクラムを採用する前提が成り立ちません。
プロダクトオーナーの負荷は兼務の片手間では収まりません。2週間の区切りで運営する場合、区切りごとの計画、成果の確認、振り返りの会議だけで目安として半日から1日弱かかります。それに加えて、開発者からの質問にその日のうちに回答し、次に開発するものの中身を社内の関係部署と調整する時間が必要です。目安として週の3割から半分程度の時間を確保できる人を選定します。決裁のたびに上長や会議体の承認が必要な人では、毎回の判断が停滞して開発が進行しません。
あわせて、社内の誰がプロダクトオーナーの判断に意見を出せるかを定めておきます。役員や他部署の要望が直接開発チームに届くと優先順位が乱れます。要望はすべてプロダクトオーナーを経由する運用を、開始する前に社内で合意しておきます。
最終的な優先順位の判断は社内で保持します。何を開発し、何を開発しないかは事業の意思決定そのもので、外部に委託すると完成したものへの責任の所在が曖昧になります。IPA(情報処理推進機構)のアジャイル開発版モデル契約も、プロダクトオーナーは発注側の企業が選定する形を前提にしています。
一方で、要望を作業単位に分割して記述する、優先順位の候補を整理する、といった実務は外部に支援を依頼してかまいません。社内の担当者が初めてプロダクトオーナーを務める場合、最初の数か月は外部の支援者と組み、判断だけは社内の担当者が下す形にすると早く軌道に乗ります。支援を終了する時期は最初に定めておきます。
1つのチームで新しいサービスを開発するなら、スクラムを選択してかまいません。目安はプロダクトオーナーとスクラムマスターを含めて10人以下のチームで、1か月以内の区切りごとに、利用者へ見せて確認できるものを提示できることです。
既存システムの保守が中心の場合、スクラムは適しません。日々の問合せ対応や障害対応の割り込みが作業の大半を占めるためです。あらかじめ定めた期間で開発するものを約束しても、割り込みで計画が崩れ続けます。期間で区切らず、作業の流れを可視化して同時に抱える作業の量を制限するカンバンと呼ばれる進め方を選択します。開発者が1〜2人しかいない場合も、定例の会議と役割をそろえる手間が効果を上回りやすいです。
チームが2つ以上になるなら、スクラムは複数チームの調整の仕方までは定めていません。プロダクトオーナーと開発対象の一覧を1つに保ったまま、チーム間で作業の取り合いと優先順位を調整する場と担当を定めます。LeSSのような複数チーム向けの枠組みもあるので、開発会社がどの枠組みを採用するかを確認します。
事業の課題や技術的な悩みなどどんなことでもお聞かせください