#209 良いコミュニケーションのためのインターフェイス設計
こんにちは。ITベンチャーエンジニアのこへいです。
コミュニケーションって難しいですよね。いつも同じメンバーで過ごす場合には「ツーカー」で伝わるようなことも、他の部署とのやり取りでは持っている情報がことなるために、認識のすり合わせが必要になります。
関係者が増えれば増えるほどそのコミュニケーションコストが馬鹿にならないくらいになってしまいます。
今日はシステム同士のやり取りを効率化する仕組みを社内のコミュニケーションの効率化に活用しているという話です。
気持ちの良いコミュニケーションが取れるような関係性の構築とは別軸の、情報の連携方法の構築の話です。
〇取引コストとAPI
プロダクト開発を行うにあたって、内部のリソースで行うべきか、外部のリソース(外注)を使うべきかというのは、頭の痛い問題です。
何を内部化し、何を外部化すべきかを判断する際には、取引コスト理論という経済学上の理論が活用できます。
ある経営上のリソースを市場から手に入れるためにかかるコストを「取引コスト」といいます。システムの外注にかかるコストがなどが当てはまります。逆に企業内部に構築するためにかかるコストを「内部化コスト」といいます。内部化コストが高く、取引コストが安いものについては、企業外部から調達し、取引コストが高く内部化コストが低いものは、企業内部に構築することが望ましいということがわかります。
いわゆる発注者能力がないと管理コストが増大したり、そもそも期待した成果物が出来上がらずに、外部化には失敗します。
内部化するにも開発チームをマネジメントする能力が必要にないとこれまた失敗します。
そのため、外注するべきか内製するべきかの判断には取引コストだけでなく、社内のマネジメント力も考慮する必要があります。
内製すべき領域と、外注すべき領域を切り分けたとしても、 システム開発においては、内製領域と外注領域のつなぎ込みのために、内部人材の誰かが、要件定義やコミュニケーションコストや追加開発のコストを引き受けることになります。
そこで、内製領域と外注領域のコミュニケーションコストを最小化するための手法として、API(Application Programming Interface)の開発があります。APIとはソフトウェアやプログラム、Webサービスの間をつなぐインターフェースでのことで、自動販売機にお金を入れてボタンを押すと飲料が返ってくるように、決まった入力に対して決まった出力が返ってくるシステムのようなイメージです。
あらかじめインターフェイスを決めておくことで、APIの仕様にしたがって開発をすればよいので、内製領域のエンジニアとのコミュニケーションは最小限度で済みます。
〇社内でこそインターフェイスを構築すべき
企業のお問い合わせフォームなんかも取引コストを下げるためのインターフェイス構築のひとつです。
お問い合わせフォームがフリーテキスト項目のみであれば、お問い合わせ内容は多種多様。何でも入力可能なため、質問力のない人が適切に問い合わせ出来ないかもしれません。その問い合わせの回答は難しく、無駄なコミュニケーションコストが発生します。
お名前、連絡先などの項目を設けることで、いたずら目的のお問い合わせを減らせそうです。お問い合わせのカテゴリを選択させたり、具体的な質問項目を設けることで、問い合わせの目的が伝わりやすくなります。
このように適切なインターフェイスを設計することで、コミュニケーションコストを減少させる業務改善が出来ます。
〇コミュニケーションしやすい環境でこそインターフェイス設計は重要
発注元と受注先、社外と社内のように明らかな境界だけでなく、一見境界のない社内のコミュニケーションにおいてもインターフェイス設計は有効です。
「企業の内部」にすべきか、「外部」にすべきかということを決める概念が、「取引コスト」というものでした。
つまり、すべてが内製であれば取引コストはゼロになるように思えますが、実際には社内の組織がそれぞれ独立した採算を求められるケースでは取引コスト(調整コスト、コミュニケーションコスト)は発生します。
複数の部門の意思決定者が寄り集まって会議をしても何も決まらず、それぞれがそれぞれの部門の利害を要求するばかりで、意思決定が遅いといった「ありがち」な事態が発生します。 それは、本来組織の内部として、同じ目的意識・同じ利害をもっているはずが、それぞれが自分達の「限定合理性」を優先してしまうからです。
顧客の課題を解決するという同じ目的であっても、営業視点ではエンジニアに機能開発してもらった方が都合が良く、エンジニア視点では営業に既存機能の活用と業務改善を提案してもらった方が都合が良い。と言ったことが起こるからです。
顧客への価値提供に関わる一通りのサイクルを担当する機能横断的なチームであれば、このような取引コストを抑えることが可能ですが、組織間の境界が生まれると取引コストが生まれてしまいます。
これは、基本的には組織設計のミスによる問題であり、組織の再設計によって改善が可能ではありますが、経営マターであり一社員の私にはハードルが高いです。
そのため、APIのようなコミュニケーションのインターフェイスを設計することで取引コストを軽減させるアプローチをとっています。
自分のプロダクトの目的に合わせて必要な情報を必須項目としたコミュニケーションのテンプレートを用意することで、情報を引き出すためのコストの削減をすることができます。
また、プロダクトの責任者としてこういう情報を必要としているということも明示できるため、調整のための判断基準をあらかじめ共有することにも役立っているかと思います。
インターフェイスを整えることで、取引コストが限りなく0に近づくほどの劇的な効果があるわけではないですが、コミュニケーションコストの軽減や繰り返しプロダクトチーム側が何を求めているかを伝えるキッカケ作りには繋がっています。
ということで、インターフェイスを整えることで、利害が一致しない組織間の取引コスト・コミュニケーションコストを軽減できるという話でした。
最後までお読みいただきありがとうございました。