アジャイル
Agile

アジャイル(Agile)とはソフトウェア開発フレームワークの一つで、迅速かつ軽量にソフトウェア開発を行う開発手法の総称です。

アジャイルとは

アジャイル(Agile)とはソフトウェア開発フレームワークの一つで、迅速かつ軽量にソフトウェア開発を行う開発手法の総称です。ウォーターフォールと対比すると、反復的である、短期間での継続的なリリースを目指すといった特徴があります。

アジャイルで解決したい課題

古き良き時代に比べて、現代の世界では変化が激しく、また変化の速度も早いものになっています。また、未来の予測には遠い予測ほど不確実性が増すという問題もあります。

伝統的なソフトウェア開発では数年かけてソフトウェアの要件定義・設計・開発・テストを行い、リリースを行なっていました。

しかし、ITの利用が拡大するにつれ、皆さんもご存知のように、現代ではIT業界の変化は非常に激しいものとなっています。その結果、リリースまでに数年かけているとその間にユーザーのニーズが変化する、市場がなくなってしまうといった課題がありました。

一方、伝統的なソフトウェア開発では下流工程と呼ばれる、開発・テストの規模が読みにくいという課題もありました。また、テストをして初めて重大なバグが発覚した場合、数年単位で実施した要件定義や設計のやり直しが発生してしまいます。

アジャイルでの解決方針

アジャイルの特徴には、数週間〜数ヶ月での短期間(イテレーション)でのリリースがあります。

アジャイルでは、動くソフトウェアを迅速に届けることを重視します。イテレーションごとに計画・設計・構築・テストを行い、小さな機能単位でのリリースを行います。これにより、市場の変化に対応するための機能のリリースが短くなり、変化への追随が迅速になります。

また、開発する単位をイテレーションごとに小さく区切ったことで、テスト時に重大な課題が発覚したときの影響を小さく抑えられます。アジャイル開発では、数週間単位で動くソフトウェアをユーザーに届けます。

アジャイルソフトウェア開発宣言

アジャイルで重要視する価値観を示すものに、次の「アジャイルソフトウェア開発宣言」があります

私たちは、ソフトウェア開発の実践
あるいは実践を手助けをする活動を通じて、
よりよい開発方法を見つけだそうとしている。
この活動を通して、私たちは以下の価値に至った。

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

価値とする。すなわち、左記のことがらに価値があることを
認めながらも、私たちは右記のことがらにより価値をおく。

Kent Beck
Mike Beedle
Arie van Bennekum
Alistair Cockburn
Ward Cunningham
Martin Fowler
James Grenning
Jim Highsmith
Andrew Hunt
Ron Jeffries
Jon Kern
Brian Marick
Robert C. Martin
Steve Mellor
Ken Schwaber
Jeff Sutherland
Dave Thomas

© 2001, 上記の著者たち
この宣言は、この注意書きも含めた形で全文を含めることを条件に自由にコピーしてよい。

その他の用語との関連

似た意味の用語として、リーンがあります。こちらはトヨタ生産方式に源流を持ち、ユーザーからのフィードバックを元に無駄を削ぎ落として開発する、という内容でより用いられます。