【はんぷくがたかいはつ】

反復型開発 とは?

💡 「一発勝負はもうやめた」小さく作って何度も磨く開発スタイル
📌 このページのポイント
反復型開発 vs ウォーターフォール ウォーターフォール 要件定義 設計 実装 テスト リリース 反復型開発 イテレーション1 30%完成 イテレーション2 60%完成 イテレーション3 90%完成 イテレーションN 100%完成 各イテレーションで計画→設計→実装→テストを繰り返し 段階的に完成度を上げていく
反復型開発とウォーターフォールの比較
ひよこ ひよこ

反復型開発って、ウォーターフォールとどう違うの?

ペンギン先生 ペンギン先生

ウォーターフォールは「要件定義→設計→実装→テスト」を1回で通すけど、反復型は同じ流れを何回も繰り返すんだよ。1回目で30%、2回目で60%、3回目で90%と段階的に完成度を上げていくイメージだね

ひよこ ひよこ

何回も繰り返すって、時間がかかりそうだけど?

ペンギン先生 ペンギン先生

実は逆なんだよ。ウォーターフォールだと最後のテストで大きな問題が見つかって大幅な手戻りが起きることがあるけど、反復型なら早い段階で問題に気づけるから、トータルでは効率的になることが多いんだ

ひよこ ひよこ

イテレーションの長さってどう決めるの?

ペンギン先生 ペンギン先生

チームや プロジェクトの特性によるけど、1〜4週間が一般的だね。スクラムだと2週間のスプリントが多いよ。短すぎると作業が細切れになるし、長すぎるとフィードバックが遅れるから、バランスが大事なんだ

ひよこ ひよこ

反復型開発とアジャイルって同じもの?

ペンギン先生 ペンギン先生

似ているけど同じではないよ。反復型開発は「繰り返し作る」という開発プロセスの話で、アジャイルは「変化に適応する」という価値観や原則の話なんだ。アジャイルの多くの手法が反復型を採用しているけど、反復型=アジャイルではないんだよ

ひよこ ひよこ

反復型開発が向かないケースってあるの?

ペンギン先生 ペンギン先生

要件がカッチリ決まっていて変更が少ないシステム、たとえば法律で仕様が決まっている金融システムなどは、ウォーターフォールのほうが効率的な場合もあるよ。ただ現代のソフトウェア開発では、要件が変わらないことのほうが珍しいから、反復型のアプローチが主流になっているんだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「反復型開発」って出てきたら「短いサイクルで作って→確認して→改善を繰り返す開発」と思えればだいたいOK!
📖 おまけ:英語の意味
「Iterative Development」 = 反復型開発
💬 「Iterate」は「繰り返す」という意味で、1950年代のNASAのプロジェクトでも使われていた歴史の長い手法だよ
← 用語集にもどる