試作品を作って利用者の評価を得ながら進める開発モデル。
プロトタイピングモデルとは、開発の早い段階で試作品(プロトタイプ)を作り、それを利用者に実際に触ってもらって評価や要望を集めながら開発を進める進め方のことです。プロトタイプ(prototype)は「試作品・原型」という意味です。
身近な例で考えると、新しい家具を買う前のお試しに似ています。説明だけでは座り心地が分からない椅子も、実際に座ってみれば「もう少し低いほうがいい」と具体的に言えますよね。同じように、動くものを見せると利用者の本当の要望が引き出せます。
上の図解のように、「試作品を見せる→要望を受け取る→作り直す」を繰り返して、利用者が納得する形に近づけていきます。
プロトタイピングは、次のような要件がはっきり決まっていない場面で特に力を発揮します。
・利用者が欲しいものを言葉で説明しにくいとき
・画面の使い勝手(操作性)を実際に触って確かめたいとき
・開発者と利用者の認識にズレがないか早く確かめたいとき
・新しい技術が本当に実現できるかを試したいとき
ウォーターフォールのように要件を最初に確定させる方式では、こうした「作ってみないと分からない」状況に対応しにくいものです。実物を見せて要件を固めていけるのがプロトタイピングの強みで、要件の誤りを早い段階で発見できます。
利点は次のとおりです。
・認識のズレを早く発見:実物を見せるので要件の誤りを早期に正せる
・利用者が要望を出しやすい:触れば具体的な意見が出てくる
・完成イメージを共有:開発者と利用者の認識を合わせやすい
一方で欠点もあります。
・手間がかかる:試作品の作成と評価を繰り返すため時間と労力がかかる
・大規模に向きにくい:規模が大きいと試作と評価の管理が難しい
・計画が立てにくい:何回繰り返すか読みづらく、費用や期間が見えにくい
そのため、要件があいまいな比較的小規模な開発に向いています。なお、作った試作品をそのまま製品に育てる「進化型」と、要件確認だけに使って捨てる「使い捨て型」の2つの使い方があります。
プロトタイピングには、試作品の扱い方によって2種類があります。
・進化型プロトタイピング:試作品を捨てずに、利用者の評価を反映しながら少しずつ本物の製品に育てていく方式
・使い捨て型プロトタイピング:試作品は「要件を確認するだけの道具」と割り切り、確認が終わったら捨てて、改めて本開発を始める方式
なぜ使い捨てるのか。急いで作った試作品は「見せるための仮のもの」なので、品質や構造が粗いことが多いからです。その粗いコードを土台にして作り続けると、後々修正が難しくなります。そこで、「試作品で要件だけを確認し、白紙から作り直す」ことで、きれいな本番コードを書けるようにします。
ケーキの試食(使い捨て型)と試食してから同じ生地を育てるレシピ改良(進化型)、どちらも「試して確かめる」点は同じですが、目的が違います。状況によってどちらの使い方をするかが変わります。
プロトタイピングが他の2つのモデルと大きく違う点は、開発の途中から利用者が深く関わり続けることです。
・ウォーターフォール:利用者は最初の要件定義と最後の受け入れテストにしか関わらない
・スパイラル:各サイクルの評価段階で確認してもらう(ある程度関わる)
・プロトタイピング:試作品を見せるたびに評価してもらう。利用者が一番深く関わる
なぜプロトタイピングでは利用者が深く関わるのか。それは、このモデルの目的が「利用者自身も気づいていない本当の要件を引き出すこと」だからです。作る側だけで考えていても、使う側が「これじゃない」と感じるものができてしまいがちです。試作品を実際に触ってもらうことで、言葉だけでは伝わらない要望が具体的に分かります。