アジャイル開発の解説(基本情報技術者シラバス用語)

目次

アジャイル開発とは

アジャイル開発とは、システムやソフトウェア開発において、短期間で動作するプログラムを作り、それを何度も繰り返しながら徐々に完成度を高めていく開発手法です。「アジャイル(Agile)」には「素早い」「機敏な」という意味があります。

従来の開発手法であるウォーターフォール開発では、最初にすべての設計を完璧に決めてから開発を行っていましたが、アジャイル開発では計画を細かく分け、短いサイクルで開発とテストを繰り返します。これにより、開発の途中でユーザーからの要望が変わったり、不具合が見つかったりしても、柔軟かつ迅速に対応できるというメリットがあります。

具体例

例えば、スマートフォンの新しいゲームアプリを開発する場合を考えてみましょう。最初にすべてのステージやキャラクターを作ってからリリースするのではない手法として、まずは「キャラクターを操作して敵を倒す」という最低限の機能だけを作ってリリースします。その後、プレイヤーの反応を見ながら、毎週のように新しいステージや機能を追加していく開発方法がアジャイル開発に当たります。

もう少し詳しく

アジャイル開発が広く知られるようになったきっかけは、2001年にソフトウェア開発の先駆者たちによってまとめられた「アジャイルソフトウェア開発宣言」です。この宣言では、「プロセスやツールよりも個人との対話を」「包括的なドキュメントよりも動作するソフトウェアを」「契約交渉よりも顧客との協調を」「計画に従うことよりも変化への対応を」という4つの価値が提唱されました。アジャイル開発は、これらを基本思想とし、一般的には1週間から4週間程度の短い開発期間(反復:イテレーション)を1サイクルとして繰り返します。各サイクル内で、計画・設計・実装・テスト・リリースという一連のプロセスを行い、動作するソフトウェアを徐々に大きくしていきます。これにより、ユーザーから早期にフィードバックを得て、次の開発サイクルへ活かすことができるため、不確実性の高い現代のビジネスに適した手法とされています。

試験でのポイント

基本情報技術者試験では、アジャイル開発の特徴と、従来のウォーターフォール開発との対比がよく問われます。試験上の重要なポイントは以下の通りです。まず、「仕様変更に対して柔軟に対応できること」がアジャイルの最大のメリットです。次に、テストとリリースを短いサイクルで繰り返すため、早い段階で動くソフトウェアを顧客に確認してもらえる点です。一方、計画時点で最終的な完成形や総コストを厳密に見積もることが難しく、プロジェクト全体のコントロールや進捗管理が難しくなりやすいというデメリットも出題されます。また、仕様書や設計ドキュメントの作成が後回しになりやすいため、長期的なシステム維持(保守)において情報共有の難易度が上がる点も理解しておく必要があります。

関連する用語

アジャイル開発における最も代表的なチーム運営手法であるスクラムや、技術的な実践を定めたXP(エクストリームプログラミング)、そして開発と運用を一体化して価値提供を迅速にするDevOpsなどが重要な関連用語です。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ