昨今、変化の激しいビジネス環境の中で、ソフトウェアに対する要求の変化も厳しさを増しています。要求の変化に追従するとともに新しいビジネス変化を生み出すために、より迅速なソフトウェアの提供が求められています。迅速にソフトウェアを開発する技法として、アジャイル開発が近年ますます注目されてきました。

本記事では、アジャイル開発の手法としてよく知られている「スクラム」と「エクストリームプログラミング」それぞれの特徴についてご説明いたします。

1.アジャイル開発の特徴

アジャイル開発とは、システムやソフトウェアの開発手法の一つです。

要件定義→設計→開発→実装→テスト→運用

これらの開発工程を小規模なサイクルで繰り返し、小さな機能を1つずつ追加開発していくことで、最終的にシステム全体の開発を行います。

元々、ウォータフォールモデルの弱点を克服するために考案された開発手法の一つで、現実世界で起きる変更に速やかに適応することに主眼を置いており、ユーザーからの修正要求や技術的な革新に対応が容易であることが最大のメリットです。

※ウォータフォールモデル… 上流工程から下流工程へ順次実施していく手法。基本的に前工程でのミスがないことを前提としているので、開発途中で浮上したユーザーからの修正要求に柔軟に対応できないところが難点。

アジャイル開発のメリットを纏めると以下のとおりです。

  • 優先度の高い機能から実装に着手できる
  • 実装した機能を早期に試すことができる
  • 柔軟に仕様変更が可能なので、ユーザーの細かい要求に対応しやすい

2.アジャイル開発における手法

アジャイル開発には有名な手法が2つあります。

2-1 スクラム

2-2 エクストリームプログラミング

2-1 スクラム

スクラム開発は最も有名なアジャイル開発の手法で、チームで効率的に開発を進めることができるフレームワークです。チーム一体となってプロジェクトを遂行して行くことに重点を置くことから、ラグビーのスクラムが語源になっています。

スクラムの特徴

  • スクラムチームは3つの役割から構成される(プロダクトオーナー・スクラムマスター・開発チーム)
  • 役割分担が明確なので、スケジュール通りタスクを進めやすい
  • 開発技術を必要とする活動はなし
  • 反復期間中、チームは外部(顧客やビジネスサイド)からの干渉を全く受けない

※スクラムチームの役割に関してはコチラをご参照ください

スクラムのプロセス

スプリントプログラム → デイリースクラム → スプリントレビュー → スプリントレトロスペクティブ → スプリントプログラム → 〃(繰り返し)

スクラムのプロセスは、スプリントと呼ばれる反復期間を繰り返すことで増加的に機能を開発します。
スプリントでは、下記のとおりスクラムイベントが実施されます。ちなみに、スプリントの期間は1週間から1か月が設定されることが一般的です。

スプリントプランニング

プロダクトオーナーと開発チームは、全体のプロダクトバックログの中からスプリントで実装する機能を決定します。

(※プロダクトバックログ:実装予定機能の一覧、スプリント:反復期間)

デイリースクラム

開発チームが短時間のミーティングを行い、開発の進行状況や課題などを共有し、一日の仕事の進め方等を決定します。

スプリントレビュー

スクラムチームとステークホルダーがスプリントの成果レビューをし、価値を最適化するために何ができるかを話し合います。

スプリントレトロスペクティブ

スプリント中に何がうまくいったか、どのような問題が発生したか、そしてそれらの問題がどのように解決されたか、されなかったかを振り返り、改善計画を立てます。

どのようなプロジェクトに有効か

スクラム開発では、要件定義の段階で7割程度の内容が決まっていれば、優先度の高い作業から進めることが可能です。なので、最終的なゴールが明確に決まっていない場合でもプロジェクトを着手し進めることができます。実際の開発現場では、そのような状況も少なくないので、途中で仕様変更を追加できるスクラム開発が有効となります。

2-2 エクストリームプログラミング

こちらは、技術面に重きを置いたプログラマー中心の開発手法となっています。英語表記は「Extreme Programming」で、略称は「XP」です。

エクストリームプログラミングの特徴

名前のとおり、ソフトウェア開発の成功例を、極端(=extreme)に実践します。

  • 成功例に倣い、運用体制等を最適化する
  • 「ペアプログラミング」や「リファクタリング」等、いくつもの開発プラクティスを実施
  • メンバーの役割は固定化せず、状況に応じて全員が様々な役割を担当する(主にコーチ・トラッカー・顧客という役割がある)
  • 個人の責任と勇気を重んじた人間中心の開発手法なので、少数精鋭のチームでの素早い開発に適している

エクストリームプログラミングのプロセス

以下3つの工程を短期間で繰り返し、開発していきます。こちらの場合、工程の期間を「イテレーション」と呼び、1週間から2週間が設定されることが一般的です。

・リリース計画の作成

要件と仕様の大枠を決め、リリース計画を作成します。開発途中で改善や変更ができるように、必要最小限の要件と仕様だけを決めておくのがポイントです。

・顧客・開発チーム双方の協働作業

ステークホルダー間のコミュニケーションを重視し、齟齬がないよう作業を進めていきます。

・成果物のリリース

イテレーション毎に、顧客の要望と成果物の差異を確認します。改善点としてまとめ、次回のイテレーションに活かします。この工程を繰り返すことで、ユーザーの要望を反映したサービスを作っていきます。

どのようなプロジェクトに有効か

ビジネス上の要求が刻一刻と変化したり、開発難易度が高く柔軟性が求められたりする開発に向いています。従来の開発手法ではどうしても効率化ができない場合、思い切ってXPを用いることで、開発の環境や状況を改善できる可能性は大いにあります。

まとめ

近年は、アジャイル開発の代表的な手法である「スクラム」の開発プロセスを回す役割を担う「スクラムマスター」へのニーズが高まりつつあると言われています。これら2つのアジャイル開発手法を頭に入れておくことは、ITエンジニアにとって必ずプラスになるでしょう。

関連記事

  • 関連記事
  • おすすめ記事
  • 特集記事

コメント

この記事へのコメントはありません。

TOP