DX(デジタル・トランスフォーメーション)の潮流は、現代社会全体を飲み込んでおり、多くの企業が既存の情報システムを再構築する必要に迫られています。
しかし、企業情報システムが大規模になるほど必要なコストは膨大になり、それに見合う効果が得られるのかが問題になります。そのため、新システムの開発に着手する前に、PoCを実施することが一般的になってきています。
PoC(概念実証)は、新しい事業の立ち上げやシステムを導入する際、事前に実環境で小規模の実験を行うことで問題点や課題を抽出したり、費用対効果を評価するために行います。
PoCは、本番のシステム開発に着手すべきかどうかという投資判断の根拠となります。またPoCを実施することにより、大規模なシステム開発の実施におけるリスクを減らし、開発期間を短縮することが可能です。
大規模システムにおけるPoCのメリット・デメリット
大規模なシステム開発において、PoCを実施することのメリット・デメリットにはどのようなものがあるでしょうか。解説していきます。
ウォーターフォール型開発の問題点
大規模システム開発では、従来「ウォーターフォール型」の開発手法が用いられてきました。ウォーターフォールとは滝を意味し、水が高いところから低いところへ一方向に流れていくことを指します。
システム開発においてウォーターフォール型とは、各工程が完了後に次の工程へ進める手法のことであり、以下のような工程で開発を進めるのが一般的です。
- 要件定義:どのようなシステムを開発するかの定義
- 基本設計:システムの機能概要、画面デザインの決定
- 詳細設計:各機能の細部、データ形式などの決定
- プログラミング:プログラミング言語やツールによるコーディング
- 単体テスト:各機能ごとの動作テスト
- 総合テスト:機能間を連携させたシステム全体のテスト
- 運用テスト:実環境で実際にシステムを試験稼働させる(ベータ・テスト)
しかし、ウォーターフォール型開発には、以下のような問題点が指摘されています。
- 前工程で不具合が発生した場合にかかる工数が大きい
- テストなど下流工程になるほど、遡って修正することが困難になる
- 開発の途中での仕様変更が難しい
したがってウォーターフォール型開発においては、もっとも最初の工程である「要件定義」が重要であることがおわかりになると思います
しかし、システムが大規模になればなるほど、要件定義で決めなければいけないことは多くなり、漏れなく要件定義を行うことは難しくなります。
そこで、PoCの出番です。
PoCのメリット
PoC(概念実証)は、システムの実効性を確認するため、実際に近い開発環境で小規模に開発を行うことを意味します。PoCの目的は、システム開発の要否を判断することですが、それと同時にシステムの課題や問題点を抽出することにあります。
そこで、PoCを要件定義の前に行うことにより、PoCの結果を反映し、要件定義の精度をより高めることができます。
システム開発において、要件定義は最も重要な工程です。PoCを行い要件定義をブラッシュアップすることにより、システム開発全体のリスクを大幅に減らすことが期待できます。
PoCのデメリット
一方で、PoCを行うことのデメリットも考慮する必要があります。
デメリットの一つは、小規模とはいえ実際に動くシステムを作って実環境で動かすため、その構想が外部に漏れてしまう可能性があるということです。機密性をどのように確保するか十分な検討が必要です。
2つ目のデメリットは、最終的なシステムが大規模になればなるほど、PoCの規模自体も大きくなるという点です。そのため、PoCのコストも膨れ上がってくる恐れがあります。
コストを抑えるためにも、PoCで何を検証するか優先度を設定し、最適な規模にする必要があります。
PoCと大規模システム開発手法
ここで、改めて大規模システムの開発手法について考えてみます。
PoCとウォーターフォール型開発
従来、大規模なシステム開発ではウォーターフォール型の開発手法が使われてきました。ウォーターフォール型開発では、上流工程での不具合ほどシステム開発全体に及ぼす影響が大きいため、要件定義が最も重要です。
そこでPoCを実施することで、要件定義の段階での不具合を最小化することをご提案しました。
次にウォーターフォール型とは違う特徴を持つ開発手法である「アジャイル開発」についても解説していきます。
PoCとアジャイル型開発
「アジャイル型開発」とは、最初におおまかな仕様と要求事項のみを決めて、実際に動く機能ユニットをつくってテストをし、そのレビュー結果を反映して仕様を改善するサイクルを何度も回すことで開発を進めていく手法のことです。
アジャイル型開発は、仕様に変更が発生することを前提にしているため、環境変化が激しい業界向けのシステム開発に向いています。
以前はアジャイル型開発は比較的小規模なシステムの開発に向いていると考えられていましたが、現在は大規模なシステム開発にも採用されることが多くなっています。
アジャイル型開発では、PoCとシステム開発が、シームレスに繋がっているという点で、PoCも開発におけるサイクルの1つとみなすことができます。
PoCとアジャイル型開発を組み合わせることによって、結果的にコストを抑え、またリリースまでの期間を短縮できるメリットがあります。そうなると、どこまでがPoCで、どこからがシステム開発なのか、区分すること自体意味がないかもしれません。
ただし、PoCにはあくまでシステムの実効性を評価しシステム開発の要否を判断する、という目的があることを忘れてはいけません。アジャイル型開発を採るからといって、PoC向けシステムの開発段階で、欲張って多くの仕様を盛り込むことは禁物です。開発手法に何を採用しようが、PoCのシステムには、検証の目的に必要十分な仕様のみ取り込むべきなのです。
まとめ
最近では、企業情報システムのような大規模システムのDX(デジタル・トランスフォーメーション)が進んでいます。新しいシステムの構築では、実効性や費用対効果を事前に評価することが必要であり、その手法としてPoCが用いられることが増えています。
従来の大規模システム開発手法であるウォーターフォール型開発では、最上流工程である要件定義段階での不具合が全工程に大きな影響を及ぼします。PoCは、事前にシステムの課題や問題点を抽出できるため、要件定義のブラッシュアップに大変有用です。
一方近年増加しているアジャイル型開発では、PoCを最初の開発における最初のサイクルとみなすことで、PoCで開発したシステムを無駄にすることなく、PoCから実システム開発へ、シームレスに移行することができます。
いずれの場合も、PoCで検証・評価する内容を明確にすることが重要です。
また、PoCのプロジェクトをどうやってはじめたらいいかわからない。予算の取り方、プロジェクトマネジメントなどのお悩みをお持ちの方はぜひ当社までご相談ください。
システム開発を失敗しないために、弊社が相見積もりの取得までをサポートさせていただくことも可能です。むやみな営業電話などは決して行いませんので、まずは無料のご相談をお待ちしております。
\今すぐ無料で相談する/