アジャイルってなんだっけ?
たまにアジャイル開発という言葉を見たり聞いたりしていて
以前調べてことはあったのですが、聞くたびにあれ?そういう意味だっけ?
と思うことが多々あったので再度調べてまとめてみました!
アジャイルとは
アジャイルソフトウェア開発手法の多くは、反復 (イテレーション) と呼ばれる短い期間単位を採用することで、リスクを最小化しようとしている。 1つの反復の期間は、プロジェクトごとに異なるが、1週間から4週間くらいであることが多い。
アジャイル開発手法においては、開発対象を多数の小さな機能に分割し、1つの反復 (イテレーション) で1つの機能を開発する(⇒反復型開発)。そして、この反復のサイクルを継続して行うことで、1つずつ機能を追加的に開発してゆくのである。また、各々の反復は、小規模なソフトウェア開発プロジェクトに似ている。なぜなら、計画、要求分析、設計、実装(コーディング)、テスト、文書化といった、ソフトウェアプロジェクトに要する全ての工程を、1つの反復内で行うからである。
※Wikiペディア調べ
つまり、従来のウォーターフォールモデルのように長期的に1つのシステムを開発するのではなく、機能単位の小さいサイクルで繰り返していく、といった感じでしょうか。
メリット・デメリット
実際にやったことはないのでいろんな方のブログを拝見してまとめてみました。
メリット
- 不具合があったときに戻る工程が少ない
- 仕様変更や機能追加を行いやすい
- 要望のシステムに近づけやすい
デメリット
- スケジュールのコントロールが難しい
- 開発の方向性が変わりやすい
なるほど、まとめてみて思ったのですが、これは大規模なシステムを1から作る際には
この手法はあまり向いてなさそうですね。。。
逆に言うと、カスタマイズをする際には活躍しそうではあります。
QAでは何ができるの?
あくまで個人的な意見ですが、回数を増やす分、テストの回数も増えそうで
めんどくさそうだなと思いました。
初回リリース時はまだいいのですが、2回、3回と増えていくと
既存の機能に影響はないかなどの回帰試験を考えなければいけないですし
品質が落ちそうだなと。。。
手法的に速度感が大切そうなので、設計時から検証リストの作成をしなければ
効率が悪くなりそうな気がしました。