こんにちは、高木です。

日々、いろいろな方からのお仕事の依頼をいただいていると、中には(私から見て)「それは無理難題でしょう」と思うものもいくつかあります。

私たちはプログラミングに関しては専門家ですが、それ以外の分野については専門ではありませんし、多くの場合門外漢なのです。

たとえば、競馬やFXの予想プログラムを作って欲しいとか、占いのプログラムを作って欲しいといった依頼を受けることがあります。それ自体は問題ないのですが、競馬やFXや占いについて、その道の専門家と同等の知識を持っていることを期待されても無理があります。

中には、趣味で競馬やFXや占いをやっているプログラマーもいるかもしれません。過去の経歴でそういったことに関わった方もいるかもしれません。あるいは、プログラマーとして過去に関わった案件でそれらを扱ったことがあるかもしれません。しかし、それはあくまで「たまたま」です。

ところで、業務系のシステム開発を行っているプログラマー(システムエンジニアと呼ぶべきでしょうか)の場合、物流だとか生命保険だとか金融だとか医療機関だとかの専門的な知識を持っていることもあります。

そうした分野は、ある程度安定的、継続的に案件が発生することもあって、それに特化した分野の知識を持っているプログラマーが一定数いるのです。しかし、ひとりのプログラマーがあらゆる分野に精通していることを期待するのは無理があります。

特定の専門知識が必要な分野のプログラムを製作する場合、次のいずれかの方法を選択する必要が出てきます。

  1. 専門知識を持っているプログラマーに担当を依頼する。
  2. 素人でも分かるレベルにまで落とし込んだ内容で依頼する。

1.がもっとも確実な方法ですが、適切なプログラマーの手が空いているかどうかはタイミング次第です。また、専門性を期待するのであれば、プログラマーの単価もある程度高いことが予想されます。

2.は、担当のプログラマーを割り当てるのは容易ですが、お客様が担当のプログラマーに意図を伝えるには相応の努力が必要になります。また、プログラマーの単価は安いかもしれませんが、工数は確実に増えます(結果的にトータルコストが上がる可能性が高いでしょう)し、成果物の品質がどうしても低めになります。

結論としては、1.を選択できる場合はできるだけ1.を選ぶべきです。そのためには、ギリギリのタイミングで依頼するのではなく、なるべく時間的に余裕を持って依頼することが必要です。

1.が無理な場合は2.を選ばざるを得ません。もし、お客様ご自身で、素人にも分かるように正確に依頼内容を伝えることができないのであれば、コンサルティングを行ってくれる方に依頼するしかありません。