とりあえずやってみればいいじゃん

とりあえずやってみればいいじゃん

エンジニア関連のことについてつらつら書くブログ

非エンジニアとコミュニケーションを取る時に大切だと思うこと

この記事はコミュニケーション Advent Calendar 2016の24日目の記事です。

エンジニアだってデザイナー、企画者、ユーザなど、持っている知識が異なる人とコミュニケーションを取ることはありますよね。その際に気をつけるべきだと思うことについて書こうと思います。

※この記事は決して「エンジニアは難しい知識を持っているから非エンジニアと話す時はレベルを落として会話しなければならない」という優劣感覚を含んだ話ではありません。あくまでも知識が異なる人とどうコミュニケーションを図るかということに焦点を置いた話になります。

形が見える話に落とせているか

売上には直結しないけど開発者的にはやっておきたいことって結構あると思います。言語バージョンのアップデート、統合開発環境のアップデート、リファクタリング、非推奨になったメソッドの置き換え、異なる言語・フレームワークへの書き換え等々...。エンジニア間ではその重要性をわかってもらえることが多いですがエンジニア以外の人には理解され難い、でもやりたい。

理解されないのは作業自体がよくわからないから、それによって何が引き起こされるかの想像がつかないからだと思います。前者は完全にわかってもらう必要はないと思うので、後者を頑張って説明する必要があります。そのためには「やらなかった場合はどうなるのか」「その影響レベルはどれくらいなのか」「なぜ今やらなければならないのか」「対応にどれくらいのコストがかかるのか」などを、時には具体的数値を混じえて説明すると良いと思います。

Xcodeのバージョンを上げないと最新のiOSのバージョンでテストすることができなくなって、OSバージョン依存のバグに気づけない、もしくは問い合わせがあっても再現できない可能性があります。iOS9が出た時は約1ヶ月で半分のiPhoneユーザがiOS9へアップデートしたので、iOS10が出た今、できるだけ早めに対応すべきです。たぶん1週間くらいで対応終わります。」「システムの規模が大きくなっている今、このフレームワークでは耐えきれなくなりつつあります。システム的には今早急にやる必要はありませんが、このまま放置して開発を続けていると後々フレームワークを置き換える時の作業量が増えます。対応に1週間以上かかる可能性があるので、開発が落ち着いている今のうちにやるべきです。」などなど。統合開発環境のアップデートという「形の見えない話」からバグ対応に苦労することになるという「形の見える話」に落とせれば話は通じやすくなるはずです。

共通言語を使えているか

技術専門用語、もしくはITリテラシーが高い人がよく使うような用語を無意識に使ってしまうことはないでしょうか。

例えばIT企業にいる人でも場合によってはフリックとスワイプの違いがわからないかもしれません。例えばサービスのヘルプの中で「パンくずリストから選択して〜〜」と書いてもほとんどのユーザはわからないと思います。例えばサービスのヘルプの中で「アドオンを使ってください」とただ書いただけではわからない人も多いでしょう。

より一般的な用語に置き換えられるのであれば置き換えた方が適切です。

言葉だけで説明しきれるものなのか

非エンジニアとのコミュニケーションの時にのみ発生する話ではありませんが。

開発者間であれば「この部分はあのライブラリ使えばいい感じのアニメーションもついていいよね」という言葉だけで話が通じてしまうこともありますが、他の人からしてみれば何言ってるのかわかりません。また、どうしても一般的でない言葉を使わなくてはならない時、言葉だけで説明しきれるでしょうか。説明できたとしても、それはわかりやすいものでしょうか。

やはりここでもイメージを共有できていないことが問題なのでイメージの手助けをする必要があります。一番早いのは実際に見せることです。アニメーションの動きがわかるようモックを作ってみたり、「パンくずリストとはこのようなもののことを言います」と画像を貼ってみたり。

コミュニケーションは言葉だけが全てではないので一番伝わりやすいと思う方法で伝えるのが一番だと思います。

最後に

何にせよ大事なのは何らかの手段を使ってイメージを共有することだと思います。ただ相手によってどれくらい補完したらいいのか変わってくるので、普段から直接関わっている人であれば日頃の会話から、画面の向こうのユーザであれば例えば行動履歴の傾向から、適切なコミュニケーションを取るのが良いと思います。