全く話がかみ合わない
開発の仕事をしていてよく思うことがあります。それは、非エンジニアとエンジニアとで全く話がかみ合わないということです。それは、それぞれの立場、言語、知識考え方が違うことに起因しています。僕の立ち位置は非エンジニアであるお客さんとエンジニアの間に入ってプロジェクトを推進する役回りなのですが、それぞれの言語を理解して伝える必要があります。
お客さんの言っていることもわかるけど、エンジニアの言っていることもわかる。だからそれぞれの間に入って調整をする役回りをします。
コピーする
こういうことはよくあります。たとえば、お客さんに納入しているAというシステムのサービスがあるとします。お客さんがそのサービスを横展開して少し修正してBというサービスを作りたいとなった場合、お客さんはなんとなくAのサービスのソースコードをコピーして非常に簡単に安くBというサービスができると思う場合があります。
実際にそのような要求があったことは少なくありません。しかし、それをエンジニアに伝えると間違いなく顔をしかめます。エンジニアから言わせれば、コピーするだけでシステムが動くわけでもないし、そもそも、そのような荒業ではビジネスで動くものを保証できないというわけです。
仮にお客さんのごり押しで安く開発するためにコピーで対応してしまったとします。しかし、もし不具合があったら、責められるのはエンジニアです。だ
どう実現するか
またお客さんは、やりたいことがただ実現できればいいと思うものです。しかし、エンジニアはどう実現するかを考えます。お客さんがやりたいことが、既存のシステムの思想やロジックに合っているかを重視します。やろうと思えばやれますが、もしそれをやると、ソースコードの可読性が落ち、メンテナンスがしにくくなり、担当エンジニアが変わった時に誰も理解できなくなると判断した場合、やりたいとは思わないものです。
しかし、お客さんからしたら、ソースコードの可読性落ちてもいいからやってくれとなるのです。実際にそれで対応したことがありますが、結局中途半端な使われない機能になってしまい、もとから提案していた方法でやっていればよかったということも多くあります。
それぞれの立場で考える
僕は間に入ってそれぞれの言い分を聞いて調整しないといけないのですが、まだまだ難しいと思うことがあります。それはそれぞれの立場で考えるための知識やマインドや経験が足りていないからです。まだまだ勉強しないといけないことがたくさんあります。