何が違うの? PoC開発と本開発の設計|システム開発 必須知識

PIVOT Column 編集部 Member

2021.10.26

システム開発
Service
システム開発
# システム開発

こんにちは。PIVOTコラム編集部です。

今回はタイトルの通り、PoC開発と本開発の設計に関してご説明いたします。

システム開発の「設計」って?

設計といってもいろいろな設計がありますが、今回の記事では実際にコードを書いてプロダクトを作る前準備としての設計、システムの設計にフォーカスしています。

 

今回の記事の中で使われる”PoC”や”PoC開発”の意味を定義しておくと、「アイデアや企画構想(コンセプト)を実現すべきか否かを判断する為の検証工程、及びその過程で作成される検証用プロダクトのこと。」となります。

 

その上で、今回の設計に関するお話の結論として、以下が挙げられます。

 

「PoCレベルでの設計で、そのまま本開発を進めることはできない」。

 

以降ではこの理由を掘り下げていきます。

そもそもシステム開発の設計には「レベル」がある

世の中のほとんどのものには松竹梅といったレベルが存在しますが、設計にも同様にレベルがあります。

このレベルとは具体的になんのレベルなのかというと、ひとまず「”堅牢さ”の段階」だと思っていてください。

何か建物を建てる際にも、プレハブ小屋から超高層ビルまで、部材や施工方法などピンキリですよね。そのイメージです!

 

少し踏み込んだ話をすると、この「”堅牢さ”の段階」と言う表現の仕方は少し悩ましく、実際には各処理の疎結合具合や再利用性の高さ、セキュリティ基準だったりと、他にもさまざまな表現の仕方・指標があります。便宜上含みのある表現になっていることをご了承ください。

 

(「疎結合具合ってなんだよ…意味わからんよ」となっている方もいるだろうなと思ったので、設計における疎結合と密結合の違いに関しても追って別記事で解説したいと思います。コード的にはそれぞれの処理の役割を明確にして、お互いが他方の役割を知らないような状況が何かと嬉しいのです。詳しくはまた後日!)

システム開発のフェーズに応じた設計を採用することが最大のコストパフォーマンスにつながる

「じゃあPoCの段階から最強の超堅牢設計をしておけば良いじゃん」、大半の方がそう思われると思うのですが、ほとんどの場合そうではないと我々は考えています。

 

改めて、PoCの定義に立ち戻ると「アイデアや企画構想(コンセプト)を実現すべきか否かを判断する為の検証工程」とあります。
そうです。あくまでも「検証工程」なのです。

 

検証工程において重要なことは、必要な検証を短期間・最小限のコストでこなし、本開発に向けた確度の高い情報を得ることだと思います。そのため、PoC開発においては実装のスピード感が命になります。疎結合だとか再利用性だとか細かいことは置いておいて、とにかくさっさと動くものを実装したもの勝ちと言うことですね。

そこに本開発レベルの超堅牢設計を無理やり導入すると、どうなるでしょうか?本来検証の数をこなすべき段階で、不必要に実装に時間がかかってしまいPoC本来の価値が薄れてしまいます。

つまり、PoC開発であればPoC開発用のお手軽設計、本開発であれば本開発用の堅牢設計、のように、開発のフェーズに応じた設計を都度採用することが最大のコストパフォーマンスにつながると言うことです。

 

PoCから本開発に進む際の再設計コストを削減するために、中途半端な設計でずるずると進めてしまうと、結果的に誰も幸せになれないことが多いです。キッパリとした割り切りが最終的には効いてきます。

PoC開発と本開発の設計 〜まとめ〜

今回はPoCと本開発の設計の違いについて書いてみました。

設計は、そのプロダクトに関わる人全員の働き方を左右し得る重要な要素です。それぞれのフェーズにおいて、何が重要なのかを考えて最適な選択をすることが大切です。

 

PIVOTでは設計の段階からデザイナやエンジニアがひとつのチームとなり、プロジェクトに取り組みます。

ビジネスをグロースさせるデジタルプロダクト開発のご相談は、是非PIVOTまで!

Columnトップへ戻る

お気軽にご相談ください

お問い合わせ