【開発手法】 RAD (Rapid Application Development)

RAD

 * RAD(Rapid Application Development。「ラッド」と読む)とは...
  => エンドユーザーを含む少人数の開発者からなるチームで、プロトタイプを繰り返し製作し、
     評価・改良することで完成度を高めていく開発手法

関連用語

タイムボックス

 * ライフサイクルの無制限な繰返しを防ぐため、タイムボックスと呼ばれる一定の開発期間を設定する

CASEツール

 * CASEツール(Computer Aided System Engineering)とは...
  => コンピュータの支援により、ソフトウェアの開発作業や保守を効率的に行うようにする
     開発支援のためツール
  => 例:astah

4GL

 * 4GL(4th Generation Language:第四世代言語)とは...
  => FORTRANCOBOLのような手続き型言語より、より高機能なプログラム言語を一般的に指す
  => 例:Visual Basic


手順

[1] プロトタイプと呼ばれる、大まかではあるものの実際に稼働するプログラムを作成
[2] そのプロトタイプをエンドユーザーに見せて仕様を確認しながら、
    設計・開発・テストというサイクルを繰り返して完成品に近づけていく
[3] 無制限に設計・開発・テストのサイクルを繰り返さないように、
   「タイムボックス」と呼ぶ一定の開発期間をあらかじめ設定しておく
[4] 一定の期間が来たら、次の工程に強制的に移る。

メリット

http://news.mynavi.jp/series/stratesys/011/
より

1) 長い開発プロセスを必要とせず、早く、しかも品質の高いシステムを構築することができる

デメリット

http://news.mynavi.jp/series/stratesys/011/
より
(★が、個人的に思うデメリットっていうかネック)

1) 仕様変更が頻繁に行われるため、ドキュメントの整備がおろそかになる傾向があり、
   システムメンテナンス上の大きな障害となる
  => 別に、別の開発でも実際の現場では、起きることかなっと。

2) 大規模なリソースを必要とする大規模開発では、全面的にプロトタイピングを適用することは難しい
  => これは、考えられる。ただ、プロジェクトを分割すれば、各々で適用可能かと。

3) CASEツールや4GLを用いることが多く、教育面の負荷が発生する
  => これも、別に、別の開発でも実際の現場では、起きることかなっと。後、使いこなせれば欠点にはならない。

★4) エンドユーザの協力なしには開発が進めらないため、ウォーターフォール型の開発に比べて
   エンドユーザの負荷が相対的に高くなる
  => ここが最大のネックかな...

★5) プロトタイピングの場合、エンドユーザが満足するまで開発を行うのでいつ完成するのかが不明確である。
  => 自社製品ならともかく、請負だったらやりたくないかも。
  => 『このような欠点を補うために「タイムボックス」と呼ばれる期限を設け、
      期限内に仕様が確定しない場合は実現をあきらめる、といった方法を取る』とあるが
     実際にあきらめてくれるかどうか...