アジャイル開発

アジャイル開発とは、要求が明確になっていない中でも、価値の高いシステムを素早く構築するためのソフトウェア開発手法です。
キヤノンITソリューションズでは、アジャイル型開発手法として「スクラム」をベースにお客様の要望に合わせた開発プロセスを採用して、お客様の価値創造をご支援して参ります。

アジャイル開発では、プロダクト(機能)に対して責任を持つ利用者を代表するプロダクトオーナーと少数精鋭の自律した開発者が一つのチームとなって開発を進めます。
開発全体の範囲を2~4週間で動くプロダクトを完成できる単位に分割し、優先順位をつけて開発します。
開発者は、この期間の中で要求分析、設計、実装、テストを実施し、プロダクトをリリースします。この活動を繰り返し、より価値の高いプロダクトを作ります。
アジャイル開発には利用者にとって大きく3つのメリットがあると言われています。

  • 1.利用者に必要なプロダクトを必要なタイミングでリリースできること
  • 2.利用者からリリースしたプロダクトのフィードバックを得て継続的に改善できること
  • 3.利用者がリリースするプロダクトの優先順位を付けるため、利用者の満足度が高いこと

体制面では、コミュニケーションを重視し開発作業を見える化することで開発者のモチベーションが向上し、規律ある開発チームを組織化することができます。

従来のウォーターフォール開発と比べると次のような違いがあります。

ウォーターフォール型開発手法では、前工程で決めたことが完全であることを前提に次の工程を進めます。この前提があるためプロダクトはプロジェクト立ち上げ時の要求事項を完全に実装する事が求められます。要求が明確である場合には契約内容と責任範囲が明確になるメリットがありますが、最初に決めた仕様が間違っている場合や必要な機能を追加したい場合などは、後工程になればなるほど取り戻すことが難しくなり費用の増加やリリースの延長が起きることがあります。

アジャイル型開発手法の場合、要求と優先順位は変わるものという前提のもと、小さなサイクルを繰り返し、プロダクトの価値を確認しながら開発を進めていきます。価値が無いと判断した機能は作成しません。最初に決めた要求を完全に満たすのではなく、すべてのステークホルダーにとって価値のあるムダのないプロダクトを完成させていきます。

スクラムとは

スクラムとは、アジャイル型開発手法の一つで、チームとしてシステム開発を進めるためのフレームワークです。

スクラムにはいくつかルールがありますが、どれもシンプルでわかりやすいものです。 代表的なものは、スクラムの作成物、スクラムチーム、スクラムイベントです。

スクラムの作成物には、プロダクトバックログ、スプリントバックログ、インクリメントがあります。
プロダクトバックログとは、優先順位付けされた要求事項の一覧です。スクラムチームはこのバックログを基にプロダクトを完成させる活動をします。
スプリントバックログは、プロダクトバックログから開発期間の単位であるスプリントで実装する項目を抽出し開発チームがスプリントを完成させるために具体的なタスクに落とし込んだものです。
インクリメントはスプリントの成果物でリリース可能なプロダクトです。特定の部品やアーキテクチャではなく、スプリント毎に利用者に価値のある動くプロダクトを完成させます。

スクラムチームにはロールは3つしかありません。

  • 1.プロダクトオーナー・・・プロダクトの価値を最大化することに責任を持ちます。
  • 2.開発チーム・・・各繰り返し開発の中で完成されたリリース可能なプロダクトを作成することに責任を持ちます。
  • 3.スクラムマスター・・・スクラムの促進と支援に責任を持ち、スクラムの理論・プラクティス・ルール・価値基準を全員に理解してもらえるように支援することに責任を持ちます。

短い開発期間の単位をスプリントと呼び、いくつかのイベント(スクラムイベント)が定義されています。

  • 1.スプリントプランニング・・・スプリントの開始時に今回のスプリントで達成する作業を計画します。プロダクトバックログの優先順位とゴールを決め、今回のスプリントで開発するプロダクトバックログをタスクに分解します。タスク単位に見積りを実施し開発計画を立案します。
  • 2.デイリースクラム・・・開発チームのための15分の日次のイベントです。日本では朝会と呼ばれることが多いです。開発チームの各メンバーの前日の作業内容と当日の作業計画をお互いに検査(確認)します。課題があれば共有します。
  • 3.スプリントレビュー・・・スプリントの終了時に成果物を検査(ゴール達成の確認)します。必要に応じてプロダクトバックログの適応を行ない、次のスプリントの準備をします。スプリントの結果を基に価値を最大化するために次に必要なことを全員で話し合います。
  • 4.スプリントレトロスペクティブ・・・日本では振り返りと呼ばれます。スクラムチームのプロセスを検査し次のスプリントで何を続け、何を改善するのか話し合います。