今あるシステムを再構築する理由とは?情報が少ないシステムを改修するとき

ファンブリューの金井です。
システム開発の仕事をしていると、リプレース案件というのが発生します。
これその名の通り、システムをリプレース、つまり作り直すことを意味しています。
本来であれば、元あるシステムの改修ができるに越したことはありませんが、そうはいかない事情もあります。
今回はどのような場合にシステムの再構築が必要になるのか、会話を通してご紹介します。
システムを作り直す理由とは?
お客さんから、あるシステムを見てほしいって相談されたんだけど。
大船さん、こんにちは。
どんなシステムですか?
10年前ぐらいに作られた会員サイトなんだ。
PHPを使っているらしい。
10年前ですか…。
そのシステムは誰かが保守していたのでしょうか?
いや、特に誰かがメンテをしてたわけではないようだよ。
なるほど、ちなみに今回はどういった理由でのご依頼でしょうか?
うーん、何か機能追加をしたいらしいよ。
わかりました。
何にしてもヒアリングと調査が必要そうですね。
情報が少ないシステムは調査から入らなければならない
真人くん、頼まれていたものを聞いてきたよ。
- 要件定義書(システムの概要・機能一覧など)
- 仕様書
- サーバー情報
ありがとうございます。
早速見ていきましょうか。
まずは要件定義書ですが…
うん、無いそうだ。
要件定義書は無しですね。
では代わりにお願いしていたシステムの概要はわかりましたか?
機能一覧表などは特になかったみたいだね。
概要としては美容機器を購入したお客さん向けの会員サイトとのことだったよ。
ありがとうございます。
要件定義書が無いなら、おそらく仕様書も無いですよね?
そうだね。
仕様書という言葉もあまりピンときてないようだったよ。
となると、サーバー内部からの調査ですね…。
実際に入ってみて把握していくしかない。
ちなみにサーバー情報も知らないとのことだったよ。
それは困りましたね。
せめて、どこのサーバーを使っているかわかりませんか?
サーバー情報も把握してないから、おそらくわからないんじゃないかな。
その会社で借りているレンタルサーバーとかはありませんか?
ああ、会社ホームページと同じ場所にある可能性もあるよね。
聞いてみよう。
エンジニアが他社のシステムを調査するとき、開発した当時の資料があると調査が早く進みます。
複雑すぎるシステムやログイン情報が失われていると、そもそも、調査が進まず追加の開発ができないこともあります。
既存のシステムを諦める判断をするとき
やはり、会社のホームページと同じところにありましたね。
利用しているのはロリポップのようだね。
保守をせずにここまで来れたのはレンタルサーバーのおかげのようですね。
うん?
そうか、ウェブ制作ではサーバー自体の運用はサーバー事業者がやってくれいているからね。
ロリポップなどのレンタルサーバーは専門のエンジニアの手によって、安定稼働するようにメンテナンスがされているので、通常、サーバーの運用を意識することはありません。
システムを稼働させるためにVPSなどの専用サーバーを使うなら、サーバーを安定稼働させるための仕組みも開発者が設計する必要があるのです。
ですね。
とはいえ、独自のシステムを作ったなら保守は必要です。
さて、ここからはこのシステムの機能の洗い出しですね。
よろしく頼むよ!
大船さん、すみません…。
このシステムは作り直しを検討すべきかもしれません。
えっ、どうしてだい?
機能追加はできそうですが、その前段階の調査にかなりの工数が取られそうです。
そうか…。
調査の時間を考えると、新しく作り直した方が早いということだね?
ええ、理由はいくつかあります。
整理したので見ていただけますでしょうか。
- 仕様把握のための手がかりが少なく、調査に時間がかかる
- 開発が完了しても、リリース後に見落としがないか不安が残る
- 現在システムに使われているPHPのバージョンが古い
手がかりが少ない、か…。
これはどうしようもないよね。
ええ、地道にファイルを見ていって、コードを解析するのみです。
それと、いくつか使われてないように見える機能もありますね。
使われてなさそうな機能か…。
実際の利用状況は、お客さんに聞いてみないとわからないな。
あとでどういう機能か教えてくれるかい?
はい、後ほど資料に起こしますね。
リリース後に見落としがないか、というのはどういうことかな?
機能追加はできても、その結果、他の機能が壊れることもあります。
これをデグレと言うのですが、その可能性が高くなります。
調査の段階で難航しているので、見落としがないとは言い切れません。
うーん、開発側がその責任を持たなければならないということだね。
はい、完全に把握するには時間がかかりますから。
この状態で保守を受け持っても、不具合が出たらすぐには対応できません。
そうか…。
最後のPHPのバージョンが古いというのは?
現在はPHPのバージョン5が使われています。
既にサポートが切れており、セキュリティ面で不安があります。
バージョンを上げるわけにはいかないのかい?
もちろん、可能です。
ですが、PHPの文法自体も進化しているので、現状のコードを新しいバージョンの書き方に修正しなければなりません。
うーん、機能を追加するだけでなく、既存のコードの修正も入るということだね?
おっしゃる通りです。
それで総合的に考えると、作り直した方が早いと。
ええ、予算の問題はあるかもしれませんが、無理して改修してもかけた費用に見合わないかもしれませんね。
わかった。
一度打診してみよう。
一般的には既存のシステムを改修した方が費用は安く抑えられます。
しかし、運用面で不安があると、その後の追加改修や不具合修正に大きく時間を取られることになります。
そうなると、将来的にかかるコストは増えていくため、初めから作り直した方がよかったということになりかねません。
開発会社が改修を承諾したとしても、その後の保守に問題がないか、念のために確認した方がよいでしょう。
システムの作り直しはきれいにするチャンスでもある
あのあと、お客さんに新規構築の提案をしたよ。
いかがでしたか?
今回は予算の関係で見送るそうだ。
そうですか…残念でしたね。
まあ、いずれ機能追加したいとは言っていたから、その時には改めて相談するよ。
ええ、わかりました。
ところで、今回のように新規構築するにあたって、やはりネガティブなイメージが強い気がするんだ。
そうですよね…。
作り直すコストは一部を改修するよりも費用が高くなりますから。
そうなんだよね。
今回は伝え方にマイナスの面が強かった気がするんだ。
お客さんにもっとメリットを感じてもえらることはない?
最終的なコストが抑えられるのは先日お話しした通りですが、他にはクリーンに作れることでしょうか。
クリーンに作れるというのは?
システムは3回作り直すと洗練されたシステムになると言われますが、
それぐらい1回目の開発は難しく、失敗しやすいということです。
ただ一般的には、同じシステムを3回も作ることはありません。
それだけ費用がかかるので、システムに大きな予算を割ける企業にしかできないでしょう。
それならメリットとして話すのは難しいね。
ですが、3回は難しくても2回目ならあり得るでしょう。
長く運用していると、運用側にもシステムの知見が増えていきます。
開発初期では想像できなかった本当に必要な機能が見えてくるのです。
今回は担当者がおらず、開発業者も変わっているので難しいですが、リセットしてやり直すには良い機会かもしれませんね。
知見はこれからためていかないといけない、ということだよね?
なかなか気の遠い話だ…。
そうなりますね。
システム開発は一朝一夕にはいかないということだな。
ええ、システムも会社やビジネスに合わせて成長していきます。
ありがとう、勉強になったよ。
また相談させてもらうよ。
システム開発のご相談はお気軽に
要件定義から運用まで、お客様のビジネスに最適なシステムをご提案いたします。
まずはお気軽にご相談ください。
小さな会社なので、お客様一社一社に丁寧に向き合うため、
同時にお受けできる案件数に限りがございます