アジャイル開発とは

アジャイルという言葉をたまに聞くのだけれど、意味はまったくわからなかったので調べてみた。そのメモ。

アジャイル(agile)とは

「俊敏な」「機敏な」という意味

以前は「ウォーターフォールモデル」という開発手法が主流だった。

ウォーターフォールモデル

最初からプロジェクト計画が固められ、上流行程から完成までの行程を幾つかに区切り、成果物を定義することでタスク・リソース管理がしやすい。
完成まで動作確認ができず、各工程も成果物としてのドキュメント制作に終始してしまいがち。仕様変更や修正などの対応がしにくい。

現在のシステム開発の問題点

・事前に要件をすべて固めることが難しい
・ビジネス環境の変化に合わせて要件が変化する可能性がある
・要件定義工程でモレなく完全に要件を洗い出すことは難しい

これらの問題点について、ウォーターフォールモデルでは対応が難しい
そこで「俊敏な」「機敏な」アジャイル開発が求められている。

アジャイル開発とは

必要最低限のことをシンプルにムダなく実施して良いソフトウェアを開発すること
短期サイクルで部分的な機能を開発し、プロトタイプなど動作するものを反復してチェックすることで、要望に合ったシステムを無駄なく作る開発手法。
仕様変更を想定してるため、タスクやリソースの管理がしにく。
目標設定が明確でないとブレる可能性がある。

特徴

ドキュメントよりも動く現物を定期的に提示し、クライアントのチェックをフィードバックしながら開発することで要求通りの完成品に近づく
優先順位の高い機能順に開発、チェックすることで仕様の欠陥に対応できる

代表的なアジャイル開発手法

・エクストリーム・プログラミング(Extreme Programming、XP)
・スクラム(Scrum)
・クリスタルファミリー(Crystal Family)
・フィーチャー駆動型開発(Feature-Driven Development、FDD)
・ 適応的ソフトウェア開発(Adaptive Software Development、ASD)

参考サイト:ソフトウェアの新たな開発手法、「アジャイル開発」って?(ZDNet Japan)
これだけは知っておきたいSI業界よもやま話

WEB全般に関する記事

コメント