検索
連載

アジャイル開発をウオーターフォール開発と比較して、向き不向きやメリデメを把握しようビジネスパーソンのためのIT用語基礎解説

IT用語の基礎の基礎を、初学者や非エンジニアにも分かりやすく解説する本連載、第9回は「アジャイル開発」です。ITエンジニアの学習、エンジニアと協業する業務部門の仲間や経営層への解説にご活用ください。

Share
Tweet
LINE
Hatena

1 アジャイル開発とは

 アジャイル開発とは、システムやソフトウェアの開発手法の一つで、2001年に米国で提唱された「アジャイルソフトウェア開発宣言」(※1)によってその考え方が世に広まりました。

※1 アジャイル開発の基本的な価値観や原則をまとめたもの

 アジャイル開発は次に示す思想の下にシステムを開発していきます。

 「プロセスやツールよりも個人と対話を、包括的なドキュメントよりも動くソフトウェアを、契約交渉よりも顧客との協調を、計画に従うことよりも変化への対応を、価値とする」(※2)


 アジャイル開発を成功させるためには、本原則の考え方をユーザーと開発チームに浸透させ、一丸となってシステム開発に取り組むことや、スクラム(※3)などのフレームワーク(枠組み)を正しく活用することが大切です。

※3 スクラム:アジャイル開発の中でも最も一般的なフレームワークの一つ。「スクラムガイド」によって定義されている

2 アジャイル開発の特徴

 アジャイル開発とよく比較される開発手法として、日本で主流の「ウオーターフォール開発」があります。

 ウオーターフォール開発は古くからある開発手法の一つで、要件定義や設計など開発工程を分割し、基本的に前の工程が完了してから次の工程に進んでいきます。そのため、計画が立てやすく、プロジェクトの進捗(しんちょく)を管理しやすいといったメリットがあります。

 一方で仕様変更があるたびに前工程への手戻りが発生するため、柔軟性に欠ける点や開発期間が長期に及んでしまう点が課題とされています。

 アジャイル開発は、小規模な機能単位で「企画→設計→実装→テスト」を繰り返してシステムを開発していきます。ウオーターフォール開発と比較して、仕様変更へ柔軟に対応できる点やシステム開発の期間を短縮できる点に強みがあります。


図1 開発手法の比較イメージ

 どちらの開発手法にもメリットやデメリットがあるため、開発するシステムや開発体制に応じて、最適な手法を選択することが大切です。

 これまで挙げた特徴を鑑みると、大人数で開発が長期間になるような大規模システムでは、スケジュールや進捗を管理しやすいウオーターフォール開発が向いているといえるでしょう。一方、ユーザビリティ(使いやすさ)の改善が頻繁に発生する可能性が高いWebサービスなどでは、仕様変更に対して柔軟かつ迅速に対応できるアジャイル開発が向いているといえます。

3 アジャイル開発のメリット・デメリット

 アジャイル開発には以下のようなメリットとデメリットがあります。

3.1 アジャイル開発のメリット

3.1.1 短期間でシステムを開発できる

 アジャイル開発ではプロジェクト中の仕様変更が発生する前提で開発を進めていきます。完璧なドキュメントよりもまずは動くソフトウェアを作るという思想の通り、ドキュメント修正などの手戻りを最小限にとどめて効率的にシステム開発を進めるため、結果的にシステムを短期間で開発できるケースが多くなります。

3.1.2 ユーザビリティの高いシステムを開発できる

 ウオーターフォール開発では、システム開発の初期段階で仕様の大部分を確定させ、前工程の設計に従い開発を進めるため、後工程に進むにつれて仕様変更にかかる工数が大きくなり、ユーザビリティを改善しづらくなります。

 アジャイル開発では、ユーザーとの濃密なコミュニケーションや、機能単位でリリースまでに何度も開発とテストを繰り返すことを前提としているので、ユーザーの要望に対し柔軟に対応できることから、ユーザビリティが高いシステムを作りやすい傾向があります。

3.2 アジャイル開発のデメリット

3.2.1 システムの完成形が見えづらい

 アジャイル開発のメリットに挙げた柔軟性の高さがデメリットにもなり、ユーザーの要望に対し柔軟に対応が可能な分、目標や方向性がぶれやすくなります。

 アジャイル開発はプロジェクトを進めながら要件を明確化していく特徴から、ウオーターフォール開発と比較して設計や決定事項が十分に文書化されないまま進むことが多いため、システムの完成形が見えづらくなります。ユーザーの要求に応えつつも、目標や方向性は明確にしておくことが大切です。

3.2.2 スケジュール管理が難しい

 アジャイル開発においてもプロジェクト全体の計画は行いますが、詳細な進行スケジュールまでは設定しません。また、機能ごとにスケジュール設定するためシステム全体のスケジュールや進捗状況が把握しにくく、ゴールが不明瞭になりがちな分、進捗のコントロールも難しくなります。

3.2.3 ドキュメントが残りづらい

 メリットで述べた通り、アジャイル開発では開発期間中のドキュメント整備は最小限にとどめます。そのため、システム完成後の運用工程においてもドキュメントが整備されないままとなりがちです。

 開発担当者がそのまま運用担当者となるのであれば運用はできますが、別の人が運用を担当する場合には問題が発生します。運用担当者はドキュメントがないとシステムを把握できず、安定したシステムの運用が難しくなります。

4 アジャイル開発に関する今後の展望

 アジャイル(Agile)には「素早い」「機敏な」といった意味があり、市場の急速な変化に柔軟かつ迅速な対応が求められている昨今の日本企業においては、ニーズに合致する開発手法といえます。しかしながら、日本ではまだ浸透しているとは言いにくい状況です。


図2 ITシステムの開発手法・技術の活用イメージ(出典:DX白書2023

 米国と比較すると日本ではアジャイル開発の普及が遅れていますが、その要因は日本の「不確実なこと(実績のないこと)を避ける文化」や、「システム開発を外注する商習慣」といった点にあるといわれています。これらの要因がアジャイルの思想とマッチせず、浸透しづらい状況が生まれているように思います。

 また、アジャイル開発を採用しているというプロジェクトにおいても、「アジャイルソフトウェア開発宣言」にある考え方が浸透しておらず、部分的にアジャイルの手法を取り入れているだけとなり、結果として後々品質問題などが顕在化するケースもあります。

 現在の状況を鑑みると、アジャイル開発が日本で主流になるにはまだまだ時間がかかることが予想されます。

古閑俊廣

BFT インフラエンジニア

主に金融系、公共系情報システムの設計、構築、運用、チームマネジメントを経験。

現在はこれまでのエンジニア経験を生かし、ITインフラ教育サービス「BFT道場」を運営。

「現場で使える技術」をテーマに、インフラエンジニアの育成に力を注いでいる。

実践型ITインフラ研修 BFT道場


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る