システムを作り上げていく中で、要件が曖昧な部分というのが出てきたり、設計書でも全てが完璧に書かれているものというのはまずないので行間を読まないといけない場合があったりして、そういった際に想像力を働かせないといけないことがよくあったりします。
こういうシーンでエンジニアの想像力というのが試されるわけなんですけど、変な解釈をしてあらぬ方向に進みだしたり、それが間違っているだろうと思っていても書かれている通りにしか実装しないというようなことをしていくと後々トラブルや面倒なことになったりしてきて、この想像する力というのは結構重要になってくるなと、最近強く感じてたりもします。
想像力の限界
物作りをするに当たって想像する力っていうのはコミュニケーションをとる上で相手の意図を汲み取ったり、文章の行間を読み取ったり、目的を遂行する上での理解の助けとなったりもします。
生粋のエンジニアの中にはコミュニケーションをとるのが苦手という人もいたりして、なかなか仕様がきちんと伝わらないことで何度も打ち合わせを繰り返したり大量の資料を用意しないといけなかったり、勝手な解釈によって実装が進んでしまって手戻りが必要になったりすることがあります。
こういうのは文化が違うオフショアとかでも良く起きる問題でそもそも互いが求める当たり前のレベルが違うためにコミュニケーションミスが発生しやすくもなります。
結構面倒な事に発展しやすいのは、伝えたことや書いてあることを何の疑問も持たずにそのまま鵜呑みにしてしまうケースで、もちろんこれは伝えた方や書いた方にほぼ瑕疵があるわけなんですけど、その裏にある背景や実装の中にある矛盾などを考慮していないというのは問題があると思ってたりもするわけです。
酷い場合には、それを知っていたり気が付いていたりするのに、そう書いてあるからとそのまま突き進んでしまったり。
そのエンジニアに与えた担当や役割によっては受け取る情報や権限などによってどうしても視野が狭くなってしまうことはあるわけですけど、だからこそ担当や役割にこだわらず幅広い視点というものが求められてくると感じたりもします。
もちろん、同じ人間同士とはいえ完璧な意思疎通ができるというのは極めて稀なため、どんなに想像力が豊かだったり、付き合いが長いことで働く勘があったとしてもミスが起きるのはよくあることです。
結局のところ、想像力というのは自分ひとりで働かせるのには限界があって、コミュニケーションの中で相手の意思や拾い集めた情報によってより確実なものへ高めていく必要があるわけで、クイズをしてるんじゃないんで当たるかどうか不確実なもので進んでいくのは困るわけです。
想像力を封じ込める環境
色々な疑問がエンジニアの想像力によって出てきたとしても、それを良しとしない環境もあったりします。
役割や権限が厳格化されていたり、仕様の通りに実装すればよいという雰囲気を出されては、その疑問もなかなかぶつけることもできません。
最近のシステム開発は役割が細分化されていたりもするので、全体の情報が集めにくかったり、担当が曖昧になりがちでお互いが相手がやるもんだと思っていたり、担当外のところに口を出しづらいなんてことも起きたりします。
客先に常駐している中で、相手の会社の業務フローや文化を理解した上で実装を進めるなんてのはかなり難易度が高いわけですし、上位の権限者によっては疑問をぶつけることもままならない雰囲気もあったりします。
なので、こういう自身の考えが言えない現場やエンジニアを単に実装の担当者とだけ決め付けているようなところでは、エンジニア自身の想像力を働かせる機会も失われ、先に書いたようなトラブルも起こるべくして起こる状況になってきます。
エンジニア自身が想像力を働かせることで生産性も大きく変わってきます。
これはエンジニアの経験値にも大きく左右されたりもしますが、設計書の中には一般的であったり当たり前と思われる要件が暗に含まれていたりもするのですが、それをどう読み解くかで効率化されたり、はたまた不具合が内在する結果になったりと変わってくるからです。
もちろん、そこで曖昧な部分は勝手な想像力を働かせずに緊密に情報共有しあうことでより手戻りが少なく済むことにもなるでしょう。
開発プロジェクトの中では非エンジニアがプロジェクトに携わる割合も多くなってきて、色々なアイデアが飛び交うわけですけど、エンジニアにはエンジニア独自の視点があるわけで、そういった観点での想像力というものが必要になる場面も多々あると思っています。
それは、システムの構成でもアーキテクチャ上の話でもなく、作るサービスそのものの話でエンジニア独自の観点から実装論が出てきたり、そのアイデアによってよりよいものへ変わっていくこともあるわけです。
ですから、エンジニア自身にも想像力を働かせるのは重要なことですし、またエンジニア自身の役割を決め付けてその意見を聞かないというのもまた貴重な機会を逃すことにもなるんじゃないかと思ったりします。
関連記事