はじめに

背景と目的

本ガイドブックは、政府情報システム開発におけるアジャイル開発の適用を支援するために用意されたものです。

従来のような「システム開発の全体をフェーズで分割定義し、各フェーズが完遂されなければ次のフェーズへと移行できない」という開発スタイルでは、実際の開発着手まで相応の時間を要することになります。こうした開発スタイルでは、原則として、すべての要求を開発着手前に定義し終えることが求められます。

しかし、現実的には開発期間を潤沢に確保することは難しく、要求とその仕様の詳細をすべて記述するのに費やせるほどの時間をあてられないことも少なくありません。また、実際の利用における望ましい挙動を実現するためには、作成されたアウトプットを使ってみて、そのフィードバックを元に洗練させていくアプローチの方が効率的かつ効果的であるケースが往々にしてあります。

特に、政府情報システムの利用は府省職員だけではなく、自治体や国民をもその範囲とするため、昨今の社会環境の変化や多様化に基づく様々なニーズに迅速に応えていく必要性が高まっています。こうした状況下では、システム開発にも変更に対して柔軟に適応することが求められます。

こうした観点から政府情報システム開発においても、従来の開発スタイルとは別にアジャイル開発という選択肢を設ける必要があります。本ガイドブックでは、アジャイル開発を理解するためにまず必要とされる最小限の知識を提供します。アジャイル開発が、少しずつ反復的に情報システムをより良くしていくアプローチであるように、本ガイドブックも本内容をスタートラインにおいて、政府情報システム開発での試行及び実績を踏まえて、継続的に改訂していくことを想定しています。

なお、アジャイル開発の適用にあたっては、本ガイドブックの記述どおり進めれば上手くいくというわけではないことに注意してください。アジャイル開発は、協働という価値観の下に成り立っており、システム開発の関係者がお互いに協力し合う姿勢がその前提となっています。ただアジャイル開発の方法を知っているだけでは有効には機能しません。

協働してアジャイル開発に取り組むためには、取組にあたる関係者全員が、それぞれの立ち位置に基づいてアジャイル開発への理解を深める必要があります。

  • 府省職員の理解

職員はアジャイル開発の役割の1つである「プロダクトオーナー」としての振る舞いを理解する必要があります。システム開発全般にわたって、主体的に関与しなければなりません。

  • 事業者の理解

職員及びその支援者だけがアジャイル開発に対応できれば良いわけではありません。実際にシステム開発にあたる事業者の協力が不可欠であり、事業者側も従来の開発スタイルに拘泥することなく、アジャイル開発への適応が求められます。

以上のとおり、アジャイル開発への適応はどちらか一方が担えば良いというわけではありません。関係者全員に、一定の理解と実際の振る舞いが求められるところに、アジャイル開発への適応の難しさがあります。本ガイドブックでは、システム開発の関係者に向けて、アジャイル開発とは何か、その期待される利点と、留意点を説明します。

適用対象

本ガイドブックは政府情報システムの整備における開発手法としてアジャイル開発を用いるプロジェクトを適用の対象とします。なお、本ガイドブックは、アジャイル開発への理解を深めるための参考文書であり、遵守を求めるものではありません。

位置付け

本ガイドブックは、標準ガイドライン群の一つとして位置付けられます。

用語と概要

本ガイドブックにおいて使用する用語は、表 1 用語及び本ガイドブックに別段の定めがある場合を除き、標準ガイドライン群用語集の例によるものとします。その他専門的な用語については、民間の用語定義を参照するものとします。

また、図 1 アジャイル開発の概要に本ガイドブックで前提とするアジャイル開発の概要を示しているため、用語とともに内容を確認してください。詳細については第3章「アジャイル開発の運営」において説明します。

表 1 用語の定義

用語意味
スクラムアジャイル開発の1つとされ、国内外を問わず、適用されていることが多い開発手法。本ガイドブックは、スクラムを基本としてアジャイル開発を説明する。
スプリント開発に必要な行為やイベントが一通り揃った、スクラムにおける開発期間を指す。スクラムでは、スプリントを単位として反復して開発する。
プロダクトオーナー開発する機能の仕様策定に関する議論を主導し、開発機能の優先順位や実現方法等に対する意思決定を主体的に行う役割を指す。開発する情報システムの価値を最大化することに責任を負う。
プロダクトオーナー支援アジャイル開発におけるプロダクトオーナーの振る舞い並びにシステム開発及びプロジェクト運営に対する職員の知見を補完する役割を指す。
スクラムマスターチームが機能するように、アジャイル開発が前提としている価値観、考え方、実践にあたって必要な振る舞い、方法についてのレクチャーやコーチングなどを行い、支援する役割を指す。
開発チーム本ガイドブックでは、政府情報システムの開発の現状を踏まえ、開発を行う事業者を想定しているが、発注者(職員)が開発チームとなる可能性もある。
アドバイザープロダクトオーナー、スクラムマスター、開発チームを含んだチーム以外の関係者をまとめて指す。システム開発における意思決定には関与せず、チームに対する助言、知見の提供、フィードバック等を行う。
リリースプランニングプロジェクトの開発範囲の規模から、スプリントがいくつ必要かを見立て、プロジェクト全体の計画を立てるミーティングを指す。本ミーティングはスクラムの規定にはない。
スプリントプランニングスプリントの開始時に実施する。予めリスト化したプロジェクト全体の開発対象機能(プロダクトバックログ)から、当該スプリントにおける開発対象機能とするものを選択して優先順位で並べ替え(スプリントバックログ)、開発方法などの計画を立てるミーティングを指す。
デイリースクラム開発チームの状況について共通理解を持ち、スプリントのゴールが達成できそうか確認するために毎日15分程度の短時間で行うミーティングを指す。
スプリントレビュースプリントの成果の確認を行い、ゴールがどの程度達成できたかを判断する。このフィードバックをもとに今後実施するべき事項を検討するミーティングを指す。
スプリント・レトロスペクティブ(ふりかえり)スプリントの活動を省みて、次のスプリントの活動が効率的、効果的となるよう、継続すべき工夫、取り除くべき問題、そのための施策などを検討するミーティングを指す。
プロダクトバックログシステム開発に必要となる要求のリストを指す。リストの並び順で要求の優先順位を示す。
スプリントバックログ当該スプリントで開発対象となった要求及びその要求を実現するために必要な作業を含んだリストを指す。
開発成果物スプリントによって開発された、動くシステムそのものを指す。スクラムではインクリメントと呼ぶ。

図 1 アジャイル開発の概要

  • 本ガイドブックではスクラムをベースとする