コンウェイの法則から考えるチームのコミュニケーション
こんにちは。フロントエンドエンジニアの辻です。
Gaji-Labo はスタートアップのプロダクト開発や新規事業チームの成長支援の会社です。
単に技術力を提供するのではなく、綿密なコミュニケーションを元にしたチームワークを提供します。
日々メンバーとのコミュニケーションを大切にしつつ、システム開発をしているのですが、そんな中でふと「システム開発とチームのコミュニケーションって表裏一体なのでは?」と思う事がありました。
今回は私の大好きな「コンウェイの法則」とともに、チームのコミュニケーションについて考えてみます。
コンウェイの法則とは
コンウェイの法則とは、コンピューター科学者であるメルヴィン・コンウェイが、1968年に Datamation 誌に寄稿した記事に端を発します。登場から半世紀が経つため、IT 業界ではよく知られた法則かと思います。
以下はその引用です。
原文を確認したい方は Wikipedia 記事 の「Selected publications」にリンクが記載されていますので、そちらをご確認ください。
システムを設計する組織は、そのコミュニケーション構造をそっくりまねた構造の設計を生み出してしまう
引用元: メルヴィン・コンウェイ – Wikipedia
コンウェイの法則は絶対的な法則ではなく、マーフィーの法則のようなある種の経験則です。
ですので、コンウェイの法則に当てはまらないシステムも存在することでしょう。
皮肉めいた場面で使われる印象があるコンウェイの法則ですが、多くの示唆も与えてくれます。
チームのコミュニケーション上の問題が不具合としてシステムに現れる
現代では、コンウェイの法則を「組織設計はシステム設計に勝る」とか「システム設計の前に組織設計をせよ」などと言い換えられるようになったり、そこから「逆コンウェイの法則」なる組織論も登場していたりします。
こういった話題を考察するのも楽しそうですが、本記事では触れません。
今回は自分なりにコンウェイの法則を解釈してみます。
題して「チームのコミュニケーション上の問題が不具合としてシステムに現れる」です。
例え話をします。
AさんとBさんが、それぞれシステムAとシステムBを開発したとします。
そのシステムAとBを結合した際に、不具合が発生したとしましょう。
通常であれば、システムAとBのソースコードやログを解析して、原因を探るでしょう。最終的に原因が見つかって解消できれば御の字です。
このアプローチ自体は真っ当な方法ですね。
ここで、「チームのコミュニケーション上の問題が不具合としてシステムに現れる」を念頭に、システムそのものではなく、AさんとBさんのコミュニケーションにも着目してみます。
もし、AさんとBさんのそれぞれが大量の業務を抱えており、システムの仕様について話す余裕がなかったとしたら…? そして、コミュニケーション不足の状態が続くとしたら…?
現在の不具合を解消できたとしても、新たな不具合がシステムAとBの結合部分に発生するかもしれません。
不具合が発生した際は該当箇所に注目しがちですが、チームのコミュニケーションも見直した方が良いのでは?という新しい切り口を、コンウェイの法則が示してくれます。
システムを見て、チームのコミュニケーションを改善していく
もしシステムの開発中・運用中に不具合が発生した場合、その詳細を調査するのは当然として、開発チーム・運用チームのコミュニケーションにも着目してみると良いかもしれません。
個人的な取り組みとして、システム開発中に少しでも「放置すると後で面倒だな。」と感じた課題は、早めに関係者に共有しようと心がけています。
課題を放置しない事も大切ですが、関係者に課題を共有してコミュニケーションのパスをつなげる事も同じように大切にしています。
直近の課題を解決しても、チームがコミュニケーション不足のままでは、また同様の課題が発生する可能性があるためです。
月並みですが、やはりコミュニケーションを密にしてチーム一体となり、開発・運用に取り組むと、より良きシステムになるのだなと感じています。
まとめ
今回は、コンウェイの法則と私なりの解釈を紹介しました。
「チームのコミュニケーション上の問題が不具合としてシステムに現れる」なんてネガティブなテーマを扱いましたが、逆に「チームのコミュニケーション上の長所が、ビジネス上の強みとしてシステムに現れる」とも言えるのではと思っています。
今までは「このサービスはXX機能がすごい! どんな設計とソースコードになっているんだろう?」と技術的観点に注目しがちでした。
最近では「XX機能を開発するのに、チームでどんなコミュニケーションをとったのだろうか? どんな背景・文化があればXX機能を実装しようと思うのだろうか?」と想像するのが、ちょっとした楽しみになっています。
Gaji-Labo ではコミュニケーションを大切にしたチーム開発を行っています。
興味のある方は、ぜひ採用情報をチェックしてみてください!
Gaji-Labo フロントエンドエンジニア向けご案内資料
Gaji-Labo は Next.js, React, TypeScript 開発の実績と知見があります
フロントエンド開発の専門家である私たちが御社の開発チームに入ることで、バックエンドも含めた全体の開発効率が上がります。
「既存のサイトを Next.js に移行したい」
「人手が足りず信頼できるエンジニアを探している」
「自分たちで手を付けてみたがいまいち上手くいかない」
フロントエンド開発に関わるお困りごとがあれば、まずは一度お気軽に Gaji-Labo にご相談ください。
オンラインでのヒアリングとフルリモートでのプロセス支援にも対応しています。
Next.js, React, TypeScript の相談をする!