ソフトウェアづくりにおける対話についての考察

インセプションデッキ、User Stories, BDD, DDD, ペアプログラミング、デモ、ふりかえり。これらの活動ですべてに共通して重要視していることは、対話である。対話(dialogue)の語源をたどると [人々の間を通って流れている「意味の流れ」という映像やイメージ]があるそうだ。哲学の一派では、対話という活動に、知の生成過程として、とても重大な意味合いを持たせている。対話の重要性に触れている哲学は少なくともソクラテスまではたどれる。対話のフォーマットは多数提示されている。

ソフトウェアづくりのコンテキストにおいて、対話を通じて人々は、一体何を生成しているのだろうか? 目に見えるかたちあるものに注目すると、インセプションデッキ、ストーリーカード、仕様の具体例の記述、ドメインモデル、コード、動作するソフトウェア、ふりかえり結果のホワイトボードや付箋などなど、それぞれバラバラである。

ただ、もう一つ目を向けるべき箇所がある。個体レベルであれば人の脳内のシナプス信号のつながり、群衆レベルであれば、人々の繋がりだ。

対話を通じて生成された、シナプス信号のつながりや人々の繋がりと 先の成果物には 深い深い相関関係があると考えられる。

対話前と対話後では、シナプス信号のつながりは変容しており(人々のつながりは変容しており)、それに伴って、人々のソフトウェア(づくり)への関わりが変化を起こしていることが考えられる。これが Kent Beckが言う Social Change に近いのかは解らない。

イテレーション期間中、User Stories を通じて Whyの確認の対話、仕様の具体例 を通じて Given When Thenの擦り合わせの対話、ペアワークやペアプロを通じて良いドキュメントやコードのかたちについて考えの擦り合わせの対話、デモを通じてユーザーとマシンのインタラクションの良いあり方についての対話。
対話を通じて対象に対するの見方が、僕らの対象へのかかわり合いの活動が変容し続けている。

対話やかたちづくっていく運動が継続することで、(かたちあるもの <=> こころ)が絶えず差異化し、成長を続ける。

ただし、先にあげた道具と対話だけでは、良い方向に進んでいくシナプスのつながりがつくれるとは限らない。良い方向に人々のつながりがつくられるとは限らない。

良い方向にかたちづくっていくのに、欠けてはならないことがある。 Jim Coplien なら Community of Trust を上げるであろう。


では 信頼関係(とよばれるシナプスのつながり、人々のつながりの振る舞い)はどのようにして生成されるのであろうか??