アジャイル開発とは

アジャイル開発とは、システム・ソフトウェア開発の一手法。短期間を一つのサイクルとして、必要な機能ごとに開発を進め、実際にリリースすることを繰り返す。「アジャイル(agile)」とは「俊敏な」という意味で、その名前どおり開発からリリースまでのスピードが早い。またユーザーのニーズを反映しやすい、仕様変更やスケジュール変更にも対応しやすいなどシステム開発に適したメリットが多い。一方で長期的なスケジュール管理が難しい、全体工程が管理しづらい、コストが最終的に見えづらい、チームのモチベーションや開発レベルの維持に工夫が必要などの課題がある。

アジャイル開発とは|概要

アジャイル開発はシステム・ソフトウェア開発の手法の一つで、開発の途中で起こるさまざまな変動的な要素に迅速かつ柔軟に対応しながら進めます。「アジャイル(agile)」とは「俊敏な、機敏な」という意味ですが、これは顧客の要求がプロジェクトの進行中でも変更されうる可能性を鑑み、変化に「素早く」対応できることから名づけられています。その柔軟性と顧客中心のアプローチにより、変化の激しい現代のソフトウェア開発環境やニーズともマッチしているため、システム開発で広く取り入れられています。

アジャイル開発は、開発チームを結成したうえで、「企画」「設計」「テスト」「リリース」という開発プロセスを機能ごとに小さな一つのサイクルとして繰り返します。仮に開発途中で問題が見つかったり仕様変更があったりしても、小さいサイクルのため対応しやすく、リカバリーしやすい点が最大のメリットです。

また基本的に開発担当者は開発だけでなく、企画からリリースまでの全工程に関わります。工程ごとに専門の担当者がつく手法と異なり、開発担当者全員が多能工化され全体的な生産性が上がることが期待できます。

【図1】アジャイル開発のメリットとデメリット

【図1】アジャイル開発のメリットとデメリット

なお企画からリリースまでを一連の流れとして全体的に行うものをウォーターフォール開発といい、アジャイルの対義的な手法となります。開発スケジュールは事前に決定されており、基本的に工程を後戻りしたり変更したりしない(=滝のように一方向へ流れる)ことが前提です。1サイクルの規模が大きいため、何か問題や変更があった場合は全体スケジュールへの影響が大きくなります。一方で、コスト管理や全体像の把握がしやすいなど、アジャイル開発にはないメリットもあります。

【図2】アジャイル開発とウォーターフォール開発の違い

【図2】アジャイル開発とウォーターフォール開発の違い

(参考)アジャイルソフトウェア開発宣言

アジャイル開発の2つの手法

アジャイル開発の具体的な進め方には様々な手法があります。その中で広く採用されている「スクラム」と「カンバン」について紹介します。

スクラムは短期間の作業サイクルを反復し、定期的に進捗確認と調整を行う、アジャイル開発の代表的な手法です。プロジェクトの進捗状況だけでなく、開発途中の変動的な要素や現在の状況、価値観をチームで共有して作業を進めます。一言でいえばラグビーの「スクラム」から連想されるように、チームワークを重視し、全ての開発に関わるメンバーが共通の目的に向かって連動してタスクを進めるのがスクラムです。

一方、カンバンは日本語の「看板」からきた用語です。アジャイル開発におけるカンバンは、もともとの意味どおり「目に見えるサイン」を表しています。つまり、チーム内のタスクの流れを視覚化することに重点を置く手法といえるでしょう。具体的にはカンバンボードと呼ばれるボードにタスクごとの「カード」を配置し、プロセスを視覚化します。進行中のタスクは状況に応じて「キュー(やるべき作業)」「進行中」「完了」のそれぞれの列に移動されます。このようにして現在のワークフローの状況がチームメンバー全員に見えやすくなり、効率化と作業の透明性を高めます。

どちらの手法もアジャイル開発の理念(システム開発における環境や状況の変化にagile=俊敏に対応して開発を進めること)に沿った手法といえます。どの手法を選ぶかは、プロジェクトの進め方やスケジュール、チームの状況によって異なります。

最新情報などをメールでお届けします。
メールマガジン登録

このページをシェアする

  • twitter

当用語辞典は「SCSK IT Platform Navigator」編集部が制作・運営しております。当用語辞典の掲載情報を利用することによって生じた不利益および損害等について弊社は一切の責任を負いませんので、予めご了承ください。掲載情報に関するご指摘、ご意見等はお問い合わせまでお寄せください。