読者です 読者をやめる 読者になる 読者になる

よーやまブログ(PHPと自動化と語学と資格)

PHPと自動化と語学にハマったWebプログラマー。主にWebネタ、MySQL、Linux、Apache、語学をやるよ

アジャイル開発って何なの? 現時点での理解と疑問点をまとめてみた。

プログラミング、アルゴリズム、サンプルプログラム

よく見かけkる「アジャイル開発」という言葉を理解していないので、現時点での理解と疑問点をまとめてみた。


アジャイル開発とは

d.hatena.ne.jp

アジャイルagile) は「俊敏な」という意味。

ソフトウェア開発プロセスのうち、良いものを素早く無駄なく作ろうとするものの総称。

従来の、後戻り不可能なウォータフォール型開発と対比して使われることがある。

特に、「アジャイルマニフェストhttp://www.agilemanifesto.org/ に合意しているものや、「アジャイル・アライアンス」 http://www.agilealliance.org/ に参加しているものを指す。

アジャイルマニフェスト」の概要は、以下の通り。

アジャイル開発の価値 プロセスやツールより人と人同士の相互作用を重視する。 包括的なドキュメントより動作するソフトウェアを重視する。 契約上の交渉よりも顧客との協調を重視する。 計画に従うことよりも変化に対応することを重視する。 アジャイル開発の原則 http://www.metabolics.co.jp/XP/AgilePrinciples.html (日本語訳) を参照。 例えば、アジャイル ソフトウェア開発プロセスには以下のようなものが有る。

eXtreme Programming (XP) Scrum Crystal Feature Driven Development (FDD) Adaptive Software Development Ecosystem (ASDE) Dynamic Systems Development Method (DSDM) Lean Software Development (LSD) Executable and Translatable UML (xtUML)  

疑問①

最初にガッチリと要件定義して、設計→開発→テスト→納品じゃなくて、 要件定義はほどほどにしておき、最低限動く状態でお客さんに見せながら作るということか? 追加開発をしながら作るということか?

疑問②

最低限動く機能、次に追加する機能などの機能ごとの優先順位はどうやって決めるの?(お客さんが決める?)

疑問③

ある程度出来上がってから、根本から構造を変えるような要求が出た場合はどうするの?

疑問④

いつ完成するの? 具体的な完成日はどうやって決めるの? (もしかして決めないの?)