昨年、あるシステムの基盤更改を実施した際に、計画の初期段階でPoCを行った経験談をお話ししたいと思います。なぜ初期段階でPoCを実施するべきなのか、この記事を通して気づいていただけると幸いです。
1.PoCとは
Proof of Conceptの略称で日本語では概念実証といいます。
Wikipediaには以下のように記載されております。
~新たな概念やアイデアの実現可能性を示すために、簡単かつ不完全な実現化(または概要)を行うこと。
あるいは原理のデモンストレーションによって、ある概念や理論の実用化が可能であることを示すこと。~
システム開発に当てはめると「計画の時点で採用予定の新しい技術やアイデアについて、事前に小規模な開発を行い、実現可否を検証すること」を指します。
この検証をすることにより、計画の大幅変更につながるリスクを、計画の初期段階で回避することができます。
2.実際のPoCの一連の流れ
2-1.システム改修要望の取り纏め
基盤更改と合わせて実施したいシステム改修要望の取り纏めを実施しました。
※基盤更改とは直接関係のない機能変更要望が上がるのは、システムの基盤更改あるある"なのです。システム開発者にとっても同時対応した方が、効率がよいケースが多いです。
2-2.環境の準備
PoC用のサーバとして、新基盤で採用するサーバと同水準の性能のレンタルサーバを用意しました。アプリケーションも同様に可能な限り新基盤で使用するバージョンを用意しました。
※PoCの性格上、コストとの兼ね合いで準備が難しいものはどうしても発生してしまいます。現行機で使用しているアプリケーション等で代用するのですが、このあたりの取捨選択はSEの腕の見せ所ですね。
2-3.PoCの実施
以下の観点が確認できる最小限の規模で構築/テストを実施しました。
・現行基盤上で稼働しているアプリが、新基盤上で稼働可能であること
・基盤更改と合わせて実施したい要望が実現可能であること
・新基盤に更改後、性能がどの程度上昇するかの確認
PoC実施当時はリリース時期の関係等でアプリケーションが手に入らない事があったため、確認できない観点があったり、また性能面などでは机上より大幅に数値が悪かったなど、悩ましい事が多々ありました。
その際は機能の有用性、性能面、PoC及び実装にかけるコストの評価観点から、お客さんと会話し合意のもとで作業を進められたので常に状況を把握できていたことは良いポイントだったと今では感じています。
3.結果どうなったか
事前にPoCを実施したことで、以下のようなメリットが得られました。
- おおよその非互換規模などを具体的な数値で検証できたため、基盤更改の要件定義がスムーズに決まった
- PoCで実施した内容と重複する開発や検証の工程の一部を省略し、他作業に注力できたり検証の精度を上げることができた。
その結果、大きな問題もなく計画通りに基盤更改することができました。
4.最後に
基盤更改は2年の歳月をかけ、10人以下の少人数体制で実施しました。
現在はリリースも完了し、大きな障害もなく安定稼働しています。
PoCをする前は事前に確認できる箇所について作業を前倒しするだけのイメージでしたが、
実際に作業の後半では機械的に実施していたこと、PoCの内容自体がプロジェクト概要みたいなものなので途中から参画してくれる方への説明が楽であったことなど、思った以上に恩恵が大きいように感じました。
特に大きな規模の案件に関しては、計画の初期段階においてPoCを行うことは有効であると思うため、今回の経験をもとに他案件にも実施していこうと思います。