従来業務をシステム化するからと、あれもこれも機能を詰め込んで立派なシステムが完成したけど、一部の機能は結局使うことのないまま遺産と化してしまうのはよくある話。お金をかけて開発を依頼している以上、このような事態になってしまえば損失としか言いようがありません。

システムの初回導入時にはいろいろと機能を持たせたくなりますが、そういう気持ちはぐっとこらえて、本当に必要な機能だけをシステム化の要件として挙げることが大事です。

システム化が適当かどうか判断するポイント

日常業務において、効率という意味では全てをシステム化してしまうのが理想ですが、そんなことをしてしまえば、いくら予算があっても足りません。特に初回でシステムを導入する際には、従来業務の中でどの部分を自動化するのかを切り分けていく必要があります。ここをおろそかにしてしまうと、余分な機能まで開発してしまい「結局使わない機能だった・・」と後悔してしまいますから慎重に。

システム化する要件を考えるポイントは次の2つ。

費用対効果を考える

業務をシステム化して自動処理を行うのは、作業負荷の低減が根本にあるわけですが、作業負荷の低減をする目的は経費削減です。

システム開発に投じる予算と、削減できる経費を比較して、システム化したほうが結果として経費削減できるのであれば、システム化する機能として判断するべきです。逆に従来どおり、手動で対応したほうが良い業務については、システム化する必要はありません。

例えばの話ですが、月に1000件の請求書を発行する業務をシステム化して、1件だけ他とは違うレイアウトで請求書を発行しなければならない場合があるとします。このような場合、システムで特定の1件を見つけ出し、別処理にて帳票を別途発行することも可能です。

ただしそんなイレギュラー処理に対応した機能をわざわざ作っても、1件だけは手動で処理したほうが早いのであれば、システム化する必要もありません(それが50件のイレギュラー処理なら話は別ですが・・)。1件のイレギュラー対応のために開発予算を計上するのは馬鹿らしいので、このようなケースではシステム化の要件として挙げるのは不適切でしょう。

人の判断を必要とする業務ではないか

コンピュータは事前に決められたロジック通りにしか動作しません。人間のように人の気持ちを察して、どのような判断を下すかをいちいち判断することはできないのです。つまりその都度人の判断が必要になるような処理は、システム化したところで使い物になりません。

これも例えばの話になってしまいますが、もし裁判の判決を下す業務をシステム化しようとしたら、被害損額や犯罪の区分などといったデータ化できるものだけではなく、事件の背景や本人の反省度合いなども加味した上で判決を下すことが必要になってきます。個々のケースによって事情も異なりますので、とうていシステム化できるものではないわけです。

上記の例は極論かもしれませんが、その都度人の判断が必要になる業務は、やはりシステム化するべきではありません。無用の長物となってしまうだけです。

機能追加すると費用は余計にかかります

ただし最初に機能を絞りすぎると、後でこの機能も追加したいと思うことがあります。既存のシステムに対して、二次開発という形で、追加要件を備えることは可能です。可能なんですが、ひとつ気をつけてほしいことがあります。

それは初回で詰め込んで開発するよりも、余計に費用がかかってしまうということ。

追加で修正なりカスタマイズを加えるということは、どうしても既存の機能に影響は出ていないかなどのチェックも必要となり、開発工数が膨らんでしまいます。

ただし結局使わなくなる機能を初回で盛り込んでしまうよりも、開発予算は少し高くなってしまうが、厳選した機能を追加で作るほうがよいのではないでしょうか(もちろん一番の理想は初回導入時に過不足なく必要機能を揃えることですが)。

おわりに

システムの初回導入時には、本当に必要な要件だけにしぼることが大事です。これはお客様だけではなかなか難しいので、担当のシステムエンジニアにも相談しながら、一緒になって要件を固めていきましょう。

その際には「費用対効果」という点と「どこまで人の判断が介入する業務なのか」という点を意識することを忘れずに。



【X(旧twitter)でも情報発信中】

Xを最近始めたので、フォローしてもらえると嬉しいです(エンジニア界隈の方はフォローバックさせていただきます)! システム開発に関することや、最新テクノロジーのことなど、世のエンジニアにとって有用な情報を発信してます!

"X" @TECH_KEYSYS