はじめに
多くの業務システムでは業務の効率化(コスト削減も含む)や属人化を減らすという目的でシステムが構築されます。
顧客の要望は抽象的な内容から具体的な内容まで幅広くあります。
そこで大事になるのが本質を捉えた上で目的を見失わないことです。
よくありがちなのは新しいシステムに変えるから新しい機能をたくさん追加することです。
機能を追加することは悪くはありませんが予算と期間がだいたい決まっています。
また、顧客との詳細を詰めていく中で社内規則による制限で実現が難しい場合や実現するための開発コストが莫大になることがあります。
なので「全ての機能を実現する」と言うのは限界があります。(もちろんできる場合もあります)
本質を捉えた上で目的を見失わないようにするには?
1. 目的をちゃんと聞くこと
ほとんどの場合は稟議を通して、システムを構築します。
目的は複数あることが多いです。その中で何を重視しているのかを聞きましょう。
目的をしっかり認識することで必要なものの判断やXXXXというのがしやすくなります。
2. 業務の流れと業務で使用している用語をはっきりさせること
業務の流れを知ることはとても重要で現在の流れと新しい流れの比較や誰が何をしているかが分かるからです。
業務の流れを知る中で気をつけたいのは暗黙知を無くすということです。
「暗黙知を無くす」というのは顧客が当たり前と思っていることでもエンジニアにとっては当たり前ではないからです。
また、暗黙知の内容によってはシステム自体の価値がなくなってしまうこともあります。
使用されている用語についてはどんな意味があるかなど知ることが重要です。
また、顧客の担当者によって表現に揺らぎがあったりするので用語集などを作ってまとめるのが良いです。
3. 機能の価値を考えること
エンジニアは技術中心で機能を考えがちなので機能の価値を考えずに作っても意味がないです。
価値がないものを作っても時間とお金の無駄です。
技術を中心で機能を考えるのではなく、その機能に何の価値があるかを考えていくこと本質を捉える上で大切です。
価値とはその機能が実現されることによって誰が嬉しいかやどんなメリットがあるかを考えることです。
さいごに
構築したシステムが顧客に喜んで使用してもらうことがエンジニアとしての仕事だと思っています。
技術を追い求めることは技術者としては重要ですがシステムを構築するためには制約条件を考慮しながら最も良いと考えられる案を選択・決定することです。