ソフトウェアの新たな開発手法、「アジャイル開発」って?

一橋範哉(ウルシステムズ)

2006-09-29 08:00

(編集部注:2011年の連載記事「アジャイル開発を実案件に生かすための基礎知識」も併せてご覧下さい)

 ソフトウェア開発の新たな手法としてアジャイル開発が紹介されてから数年が経過し、実プロジェクトへの適用事例を目にすることが多くなってきました。アジャイル(agile)とは、「俊敏な」「機敏な」という意味ですが、「ペアプログラミング」「テストファースト」のようなアジャイル開発手法の一部のプラクティスがそのすべてであるかのように言われることがあります。ここでは改めてアジャイル開発の基本的な考え方を整理していきたいと思います。

ソフトウェア開発手法とは

 開発手法とはシステム開発を効率的に進めるための手順・約束事・ノウハウのことを意味します。最も歴史があり、よく知られている開発手法はウォーターフォールモデルとなるでしょう。ウォーターフォールモデルでは「要求」「分析」「設計」「実装」「テスト」「運用」といった形にシステムの開発工程を分割し、各工程では後工程の作業のインプットとなる成果物を作成します。成果物は仕様書や設計書などのドキュメント類で、基準や定義が定められおり、各工程の中で時間をかけて厳格に検証され承認されたもののみが用いられます。原則的に各工程の順序を飛び越えて先に進んだり、一度終了した工程に戻るということを許しません。このような開発モデルを滝の水が上から下に落ちることにたとえてウォーターフォールモデルと呼んでいます。

アジャイル開発の出現した背景

 ウォーターフォールモデルは現在でも多くのプロジェクトで採用されています。その理由は工程がはっきりと分かれているためスケジュール立案や進捗管理などのプロジェクト管理を行うのが容易であること、段階的な詳細化のため各工程の工数の見積や資源の配分が行いやすいことなどがあります。しかしながら、最近のシステム開発の環境変化とウォーターフォールモデルに存在している問題点により、アジャイル開発手法が登場することになりました。

 ソフトウェア開発環境に大きく影響を与えているのは、ビジネスの変化とスピードです。グローバル化や規制緩和などにより産業構造は大きく変化しており、従来の枠組みを自ら革して他社先んじて適合を行い、市場にいち早くサービスを提供していく必要があります。そのようなビジネスに必要なシステムを開発するための手法として捉えた場合、ウォーターフォールモデルには大きく2つの問題点があります。

■問題その1: システム全体に対する分析や設計を一括して行うため各工程が長く、ユーザーがシステムの実物を見られるようになるまでの時間が長い

 ウォーターフォールモデルではシステム全体についてひとつの工程をモレがない段階まで行い、レビューによる確認や承認を終えた段階で次の工程に移ります。そのため、ひとつひとつの工程が長く、システム開発の初期段階で要件をヒアリングしたユーザが実際のシステムを利用できるまでには長い時間がかかります。

 一方、市場で勝ち抜いていくために、企業は従来の業務構造を見直し、競合優位性を獲得できるように業務のあるべき姿を再構築しています。そのような業務に対するシステムの要件を検討した場合、日々の業務のみから必要な機能を抽出するということは困難であり、ビジネスゴールへの到達を想定した仮説にもとづいた要件にならざるを得ません。そのため、システムに本当に必要な機能は何か、システム機能を使用する業務は実現可能なのか、といった点については実際に動くもの見なければ検証できないという状況が発生してきています。

 ウォーターフォールモデルを採用した場合には、ユーザーは開発の終盤にならなければシステムを利用して仮説の検証を行うということができず、そのためほとんどの機能を作り終えた後で変更要求が頻発して対応しきれなくなり、最終的に満足度の低いシステムになってしまう可能性が高いと言えます。

 それに対して、アジャイル開発では開発プロジェクトの期間を短期間(1週間〜6週間)に区切り、この間に開発工程を一通り行って、部分的に機能を完成させます。そしてこの「短く区切られた期間で動くアプリケーションを開発する」という作業を繰り返すことによって、段階的にシステム全体を仕上げていきます。このような開発スタイルは反復型(イテレーション)開発と呼ばれていますが、開発期間の早い段階からユーザーが動くソフトウェアを目で見て確認できます。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

自社にとって最大のセキュリティ脅威は何ですか

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]