「開発手法」と聞いて、皆さんはどのような手法が思い浮かびますか?
代表的なものだと、ウォーターフォール開発やアジャイル開発あたりを思い出す方が多いのではないでしょうか。
世の中には開発の規模や予算、納期、開発目的に応じて様々な開発手法が存在しますが、昨今のプロダクト開発の傾向に合致した手法とされているのが「プロトタイプ開発」です。
今回はプロトタイプ開発について、基本的な知識から、他の開発手法との違い、メリット・デメリット、プロトタイプ開発の流れまで徹底的に解説していきます。ぜひ最後までご覧ください!
▼ 関連記事 ▼
まずはじめに、プロトタイプという言葉の意味から理解していきます。プロトタイプ(prototype)とは、原型や試作品といった意味のある言葉です。IT分野では、プロダクト開発において本開発に入る前に、機能や動作の検証のために作成される、必要最小限まで機能を削ぎ落とした、簡易版のプロダクト(=試作品)のことを指します。
プロトタイプ開発とは、簡易版のプロダクトであるプロトタイプを使って検証 → 評価を繰り返すことで、プロダクトの機能や動作の検証だけでなく、アイデアやコンセプトの具体化、開発側とクライアント側の認識の擦り合わせを行うことができます。
ちなみに本来は、このプロトタイプ自体を開発することを「プロトタイプ開発」と呼び、プロトタイプを活用した開発を「プロトタイプ ” 型 ” 開発」と表現していました。しかし、プロトタイプ型開発の広まりと一緒に、プロトタイプ型開発のことをプロトタイプ開発と表現される機会が増えました。本記事でもプロトタイプ開発は、「プロトタイプを用いた開発手法」の意味で使用していきます。
プロトタイプ開発には、作成したプロトタイプをそのまま本開発に流用するか否かで、以下のような2種類に分類することができます。
・ラピッドプロトタイピング(使い捨て型プロトタイプ開発)
ラピッドプロトタイピングとは、プロトタイプの作成目的を「プロダクトの仕様を決めること」に置き、仕様が決定したら開発したプロトタイプを破棄する方法です。仕様確定後破棄することが前提のため、フロント画面(見え方のデザインや画面遷移)に確認できる範囲は限られ、機能を実際に動かすことはできません。しかし、ラピッドプロトタイプ開発であれば、プロトタイプ開発に要する時間やコストを最小限に抑えることができます。
・ブレッドボード・プロトタイピング(進化的プロトタイプ開発)
ブレッドボード・プロトタイピングとは、開発したプロトタイプを本開発に流用し、修正・改良していくことで開発を進める方法です。本開発でもプロトタイプの使用を前提に開発を行うため、機能を実際に動かして確認することも可能です。ブレッドボード・プロトタイピングであれば、プロトタイプ開発の段階である程度の修正・追加が行われているため、本開発にかかる工数を削減できます。
1970年代に誕生した「ウォーターフォール開発」以降、時代の流れとともにシステム開発が活発化し、開発手法も多様化していきました。ここでは、他の開発手法とプロトタイプ開発との違いをまとめていきます。
【ウォーターフォール開発】
・概要
開発に必要な工程を段階的に区切り、要件定義 → 基本設計 → 詳細設計 → 開発 → テスト → リリースの流れを順番を守って進行する開発手法です。区切った各工程の作業完了後に、前の工程に戻って修正することはできず、工程を順番通りに進めていく様子を「滝」に見立てて、ウォーターフォールという名前が付きました。
・プロトタイプ開発との違い
プロトタイプ開発は検証 → 評価の工程を繰り返す開発手法である一方、ウォーターフォール開発は「前の工程に戻れない」という特徴のある開発手法です。また、プロダクトを実際に使用可能になるタイミングも、プロトタイプ開発では、要件定義後のプロトタイプ作成ができた段階で使用可能な一方、ウォーターフォール開発は、開発が全て完了するまで使用できないというように異なります。
【アジャイル開発】
・概要
アジャイルというのは、英語で「機敏な、俊敏な」という意味があり、その意味の通り、開発期間の短縮を特徴とした開発手法です。顧客の要望に応えられるシステムを、できる限り短期間で仕上げる必要が出てきたため、アジャイル開発の概念が登場し、広まりました。アジャイル開発は、柔軟性と迅速な反応性を重視し、システムを機能ごとに小さく分割して「計画 → 開発 → リリース」の工程を短期間で反復していきます。
・プロトタイプ開発との違い
プロトタイプ開発はプロダクトの検証・評価に作成したプロトタイプを使う一方、アジャイル開発は、実際にリリースするプロダクトを試用します。
【MVP開発】
・概要
MVP(Minimum Viable Product)開発とは、重要な最小限の機能や要素を取り入れ、早めにリリースし、ユーザーからのフィードバックに基づいて改善や、機能を拡張していく手法です。よく比較されるのが「アジャイル開発」ですが、MVP開発が「検証重視」の一方で、アジャイル開発が「スピード重視」という特徴があります。
・プロトタイプ開発との違い
プロトタイプ開発とMVP開発は一見似ているように感じますが、対象と目的が異なります。プロトタイプ開発は基本的にプロジェクト関係者(開発会社、クライアント)内で、アイデアの具体化や、技術的に実現可能かを検証・評価します。一方でMVP開発は、市場にリリースし、ユーザーの反応を見て市場の適合性を検証し、プロダクトの方向性を決めていきます。
▼ 関連記事 ▼
【モックアップ】
・概要
モックアップとは、プロダクト開発の際に、アイデアや最終的な形といったビジュアルに関する部分を可視化する際に用いられる手法です。
・プロトタイプ開発との違い
プロトタイプ開発は、本開発に入る前に、実装したい機能などを検証し、そこで得た情報をもとに修正・改良して、本開発へ繋げていきます。一方で、モックアップは、あくまでビジュアルを作成することでプロダクトのイメージを掴むために作成されるため、実際には動きません。
ここで、プロトタイプ開発を行う上でのメリットをまとめていきます。
・完成形のイメージを早い段階で共有し、認識のズレを修正できる
プロトタイプ開発は、早い段階で試作品を作成し、クライアント側とのイメージ共有に活用できます。そのため、クライアントの不安要素や疑問点を早い段階で払拭し、双方のプロダクトへの認識のズレがないかを確認した上で、開発を先へ進めることができます。開発後に「ここはこういう予定ではなかった…」など、要件変更があると時間もコストもかかってしまうめ、開発側とクライアント側の認識を擦り合わせることは、開発にとって大きなメリットです。
・ニーズへのマッチや、想定外のリスク回避など、状況に応じて柔軟な対応ができる
前述したように、プロトタイプを作成することで、双方のプロダクトへの理解を深めることができます。そして、これから開発を進めていくにあたってのリスクの洗い出しと対策、対応できる分はその時点で修正・改善を行うことにより、本開発でのバグ減少を期待できます。また、UIの変更や機能追加など、クライアント側からの要望にも柔軟に対応することができます。
・高い品質を確保したプロダクト開発ができる
プロトタイプを通じて、バグや不具合などを発見し、早期に対応することで、高品質なプロダクトのリリースが実現します。また、クライアント側よりフィードバックをもらったプロダクトの方が、先に細かな仕様を整えて行う開発に比べて、よりクライアント側の意見を反映したプロダクトになると考えられます。
前述したように、プロトタイプ開発のメリットは大きいながらも、取り入れる上で、理解しておきたいデメリットもあります。以下でまとめていきます。
・プロジェクトの規模によって向き不向きがある
プロトタイプ開発は、多くの関係者が関わる大規模なプロジェクトには不向きと言われています。プロトタイプは検証と評価を繰り返すことで、クライアント側のイメージに近づけながら将来的なバグや不具合へのリスク回避を行っていきます。しかし、検証・評価を行う人が増えると、それだけ意見も増え、フィードバックを得るために、関係者のスケジュール調整も必要になるため、開発のスピード感が損なわれてしまいます。
・プロジェクトがスムーズに進まず、長期化する可能性がある
プロトタイプに対するフィードバックを反映していくことで、より良いプロダクトの開発を目指せる点がプロトタイプ開発のメリットですが、修正点や要望がたくさん出てきた場合、全てに対応するとなると開発側の負担も大きくなります。その結果、本開発の着手や完了が長期化する可能性が浮上してきます。
・開発にかかるコストが大きい
プロトタイプにて動作確認を行うため、一定水準のプロトタイプの作成が求められます。そうしたプロトタイプの作成回数が増えると、必然的に開発コストもかさみます。このことをクライアント側も理解した上で、必要以上に修正回数を増やさないよう、プロトタイプ開発前段階で検討できることはしっかり要件定義に反映し、クライアント側は的確に要望を伝えることが大切です。
プロトタイプ開発の一般的な進め方は以下の通りです。
【要件定義】
プロダクトの仕様や機能といった開発範囲や、運用方法などを明確化し、どのようなプロダクトにしていくかを決めます。通常の開発手法であれば、この要件定義をもとに開発を進めるため、綿密に行う必要がありますが、プロトタイプ開発は、後から検証や改善を行うため、必要以上に細部まで作り込みません。
▼
【設計】
要件定義をもとに、プロダクトのデザインや機能など、実装方法を設計していきます。
▼
【プロトタイプ開発】
設計で決めた、必要最小限の機能や見た目を持ったプロトタイプの実装を行います。
▼
【検証・評価】
完成したプロトタイプのテストを行います。ここで見えてきた改善点や、クライアント側は自社の要望を明確に伝え、【改善・修正】のフェーズへと繋げます。
▼▲
【改善・修正】
先ほどの【検証・評価】のフェーズで得たフィードバックの内容をもとに、改善・修正を行なっていきます。プロダクトへ反映されたら、もう一度【検証・評価】を行うという流れを繰り返し行なっていきます。
▼
【本開発】
プロトタイプ開発で最終的に決まった細かな仕様をもとに本開発を行なっていきます。
※ ラピッドプロトタイピングかブレッドボード・プロトタイピングによって、プロトタイプを破棄するか流用するか変わります。
▼
【リリース】
本開発が完了したら、プロダクトをリリースします。リリース後は、運用・保守のフェーズへと入り、実際のユーザーから得たフィードバックや、事業のゴールに応じて、修正や追加機能の実装を行なっていきます。
ここまで、プロトタイプ開発について、基本的な知識から、他の開発手法との違い、メリット・デメリット、プロトタイプ開発の流れまで解説してきました。
プロトタイプ開発は、開発側とクライアント側の認識のズレを無くし、開発を進めるにあたって柔軟な対応や、予想できるバグや不具合のリスクを回避しながら、高い品質を確保したプロダクト開発が期待できます。
JIITAKでもこれまで、様々なプロダクト開発を行ってきました。アイデアの創出から戦略設計、開発、スケールまでの包括的な支援でプロジェクトを成功へと導きます。プロダクト開発のアイデアやお悩みごとのある方は、ぜひ一度JIITAKまでご相談ください。