コミュニケーションにはスコープがある。
僕が、時折口走っている様なので、まとめておく感じで。
前提となるコンテキストとしては、
既存の開発用ツールの中で、コミュニケーションを取る為のツールって、何かモノ足りないよね。
って話から、ふと気付くと口走っている。
例えば、こんな時、コミュケーションを取る必要がある感じ
- 機能の仕様をまとめる
- 何かを変更する際に、理由、目的、方法をまとめる。
- 原因はバグだったり、機能追加だったりするけども。
- 新しい何かを考える
で、「コミュニケーションにはスコープがある」って話になる。
僕が知ってる範囲の話だと、自分も含めて大体こんな方法で、
コミュニケーションを取っている。
そもそもコミュニケーションって何さ?みたいな話はスルーして列挙してみると、
- MSN Messenger、Skype、IRC、みたいなチャットアプリケーション
- 掲示板とか、mixiのトピみたいなコメント追記型のアプリケーション
- 1:1の電子メール
- メーリングリスト
- CVSやSVNのコミットログ
- Wikiみたいな共有型の文書管理システム
- ExcelやWordみたいなファイルを共有サーバやメールの添付ファイルで共有。
- 口頭
大体こんな感じかなぁ…と。で、スコープって言ってるのは、
こんな要素を持つ多次元的マトリックスになる。
で、何かモノゴトを決める時って、
より狭い範囲でのコミュニケーションから始まって、
より広い範囲でのコミュニケーションに広がっていく過程の中で、
参加者がある程度の妥当性を共有した所で、確定するんじゃないかな…と。
その範囲が狭ければ狭い程に、閉鎖的だし、広ければ広い程開放的。
一つの仮定として、コミュニケーションを取らない事によって絶対的閉鎖性が確保されるが、
絶対的に広いコミュニケーションと言うのは存在しないって事がある感じ。
話を戻すと、こういう前提を元に考えると、
バグトラッカとか、バージョン管理システムとか、
そういう既存の開発用コミュニケーションツールって、
そもそも、特定のスコープでのコミュニケーションしかサポートしてくれないよねぇ…と。
僕の感覚だけども、不確定要素が多くて、
そもそも何を決めなきゃいけないのかすら不安定な時には、
広い範囲でのコミュニケーションは、成立し難い。
でも、ステークホルダが多い時には、
初めは狭い範囲でコミュニケーション取ってても、
最終的にはより広い範囲でのコミュニケーションによって合意形成を為すべきなのかな…と。
但し、どこまで広い範囲でコミュニケーション取るべきなのかは、難しい。
最初の二人だけが知ってれば良いのか、その周りの10人が知らなきゃいけないのか、
更にその周りの50人が知らなきゃいけないのかは、絶対的指標によって決められないよねぇ…。
また、話が脱線した。
結局何が言いたいのかと言うと、
色んなスコープでのコミュニケーションをサポートしたツール欲しいなぁ…と。
例えば、長いけどこんな感じ。
最初、AさんとBさんは、Skypeでしょーもない話をチャットしてたんだけど、
なんかの拍子に開発中のアプリケーションの話になりました。
そこで、ちょっとしたスイッチをオンにしてチャットを続けると、
どっかのサーバにそのログが記録されます。
チャットが一段落した所で、Aさんがサーバにログインすると、
ログが残っているので、Wiki記法とか、そんなんでサマリを作ります。*3
後日、今度は、CさんとDさんが、そのサマリを見ながらチャットします。
またチャットが一段落した所で、Dさんはサマリを修正します。
って、テキトーに繰り返していると、
恐るべき事に、Eさんがサマリを見てコードを実装してしまいました。
Eさんは、そのサマリと書いたコードに対応関係がある事を、
極めて単純かつ直線的であり、ど忘れが無い手順を使って表現した上で、
コードをサーバのバージョン管理システムに登録しました。
後日、AさんとDさんは、登録されたコードをみながらチャットします。
……………以後繰り返し