コミュニケーションにはスコープがある。

僕が、時折口走っている様なので、まとめておく感じで。


前提となるコンテキストとしては、
既存の開発用ツールの中で、コミュニケーションを取る為のツールって、何かモノ足りないよね。
って話から、ふと気付くと口走っている。


例えば、こんな時、コミュケーションを取る必要がある感じ

  • 機能の仕様をまとめる
  • 何かを変更する際に、理由、目的、方法をまとめる。
    • 原因はバグだったり、機能追加だったりするけども。
  • 新しい何かを考える


で、「コミュニケーションにはスコープがある」って話になる。


僕が知ってる範囲の話だと、自分も含めて大体こんな方法で、
コミュニケーションを取っている。
そもそもコミュニケーションって何さ?みたいな話はスルーして列挙してみると、

  • MSN MessengerSkypeIRC、みたいなチャットアプリケーション
  • 掲示板とか、mixiのトピみたいなコメント追記型のアプリケーション
  • 1:1の電子メール
  • メーリングリスト
  • CVSSVNのコミットログ
  • Wikiみたいな共有型の文書管理システム
  • ExcelやWordみたいなファイルを共有サーバやメールの添付ファイルで共有。
  • 口頭

大体こんな感じかなぁ…と。で、スコープって言ってるのは、
こんな要素を持つ多次元的マトリックスになる。

  • 人数
    • 1:1、1:N、N:1、N:M
  • 公開範囲
    • 特定の一人、特定多数、不特定多数
  • 永続性
    • 永続的*1、即時的*2


で、何かモノゴトを決める時って、
より狭い範囲でのコミュニケーションから始まって、
より広い範囲でのコミュニケーションに広がっていく過程の中で、
参加者がある程度の妥当性を共有した所で、確定するんじゃないかな…と。
その範囲が狭ければ狭い程に、閉鎖的だし、広ければ広い程開放的。
一つの仮定として、コミュニケーションを取らない事によって絶対的閉鎖性が確保されるが、
絶対的に広いコミュニケーションと言うのは存在しないって事がある感じ。


話を戻すと、こういう前提を元に考えると、
バグトラッカとか、バージョン管理システムとか、
そういう既存の開発用コミュニケーションツールって、
そもそも、特定のスコープでのコミュニケーションしかサポートしてくれないよねぇ…と。


僕の感覚だけども、不確定要素が多くて、
そもそも何を決めなきゃいけないのかすら不安定な時には、
広い範囲でのコミュニケーションは、成立し難い。
でも、ステークホルダが多い時には、
初めは狭い範囲でコミュニケーション取ってても、
最終的にはより広い範囲でのコミュニケーションによって合意形成を為すべきなのかな…と。
但し、どこまで広い範囲でコミュニケーション取るべきなのかは、難しい。
最初の二人だけが知ってれば良いのか、その周りの10人が知らなきゃいけないのか、
更にその周りの50人が知らなきゃいけないのかは、絶対的指標によって決められないよねぇ…。


また、話が脱線した。
結局何が言いたいのかと言うと、
色んなスコープでのコミュニケーションをサポートしたツール欲しいなぁ…と。


例えば、長いけどこんな感じ。


最初、AさんとBさんは、Skypeでしょーもない話をチャットしてたんだけど、
なんかの拍子に開発中のアプリケーションの話になりました。
そこで、ちょっとしたスイッチをオンにしてチャットを続けると、
どっかのサーバにそのログが記録されます。
チャットが一段落した所で、Aさんがサーバにログインすると、
ログが残っているので、Wiki記法とか、そんなんでサマリを作ります。*3
後日、今度は、CさんとDさんが、そのサマリを見ながらチャットします。
またチャットが一段落した所で、Dさんはサマリを修正します。
って、テキトーに繰り返していると、
恐るべき事に、Eさんがサマリを見てコードを実装してしまいました。
Eさんは、そのサマリと書いたコードに対応関係がある事を、
極めて単純かつ直線的であり、ど忘れが無い手順を使って表現した上で、
コードをサーバのバージョン管理システムに登録しました。
後日、AさんとDさんは、登録されたコードをみながらチャットします。
……………以後繰り返し

*1:掲示板のログは、消さない限り消えない。メールはちょっと微妙

*2:口頭だと、何かに記録しない限り消える、そんな感じ

*3:イメージとして、2chのスレ→まとめWikiでもいい