こんにちは。 はじめまして。tkywtnb です。
ソフトウェア開発を行っていると様々な場面で人とのコミュニケーションが発生します。 コミュニケーションが上手くいっているかどうかがソフトウェア開発に大きな影響を与えることがあるのは、みなさんも心当りがあるのでないでしょうか?
今回は、コミュニケーションに必要なものは何なのか、私が考えていることを言語化してみたいと思います。
以降の文中に何度かコンテキストという言葉が出てきますが、知識、経験、立場、価値観などを統合した概念として、コンテキストを使っています。
そもそもコミュニケーションって何だろう?
先に進む前に、そもそもコミュニケーションとは何なのかについて確認しておきます。
コミュニケーション【communication】
1 社会生活を営む人間が互いに意思や感情、思考を伝達し合うこと。言語・文字・身振りなどを媒介として行われる。「コミュニケーションをもつ」「コミュニケーションの欠如」
2 動物どうしの間で行われる、身振りや音声などによる情報伝達。
引用元: デジタル大辞泉
今回取り扱う範囲のコミュニケーションは、 1 の 「社会生活を営む人間が互いに意思や感情、思考を伝達し合うこと」にあたります。
さっそく、伝達することの結果である「伝わる」までを詳しくみていくことにします。
伝わるということ
何かが伝わるまでは、どのような事が行われているのでしょう? 「わたし」から「あなた」へ何かが伝わるまでは、おおよそ次のようなプロセスを経ていると考えられます。
- 「わたし」が伝えるべき事を認識する
- 「わたし」が伝えるべき事を表現する
- 「あなた」が表現されたものから伝えられた事を読み取る
これはかなり単純化したモデルです。 実際のコミュニケーションにおいては、単純に 1 から 3 の順序に進むとは限りません。 例えば、伝えることを表現しようとすることによって伝えるべきことがよりはっきりと認識出来たり、表現したことによって伝えるべきことが違っていると感じたりすることがあります。それでも、この単純なモデルを使ってコミュニケーションで発生する問題を考えることが出来ます。
どんな問題が起きるのかひとつずつ確認していきましょう。
「「わたし」が伝えるべき事を認識する」段階で発生する問題
ここで起きそうな問題は、次のようなものでしょう。
- 何を伝えるべきなのかわからない
- 伝えるべき事を誤認する
これらの問題はなぜ発生するのでしょう?
まっさきに挙げられるのは事実と感情を区別できていないケースです。 個人的に観測している範囲では、かなりの割合でこの問題が発生しているように見えます。
また、何を取り扱うのかについて、伝える相手との間でまったく共有されていない状況だとしたら、容易に発生しそうです。 取り扱う対象への理解が十分でないことによっても引き起こされるでしょう。 相手が取り扱う対象をどのように理解しているのかについての認識が不十分であっても問題が発生すると考えられます。
さらに、何かを教えたりする状況において、相手のスキルや知識に適さないことを伝えるべき事として誤認してしまうことがあります。 学習する人が何かを学ぶ為には、前提となる知識やスキルが必要となることがほとんどです。 相手の状態を十分に把握していないと、あまり効果がない指導になってしまうでしょう。
「「わたし」が伝えるべき事を表現する」段階で発生する問題
ここで起きそうな問題は、次のようなものでしょう。
- どのように表現したら良いかわからない
- 表現の仕方を間違える
これらの問題の要因は、自身のスキルと知識によるものです。
どのように表現したら良いかわからないことの要因は、表現の手段により異なります。
まず言葉による表現を考えると、必要な語彙を持っていないことによって引き起こされます。 語彙が乏しいことによる影響は、表現が出来ないだけに留まらず、もっと大きなものになります。 語彙が乏しいことは、言葉の違いによる微妙なニュアンスの違いを認識出来ないことにも繋がり、先に述べた取り扱う対象などへの理解が浅くなる要因にもなり得ます。
言葉による表現は、細心の注意をはらったとしても曖昧さを含んでしまうものであり、図などを用いて表現することが有効なケースがしばしばあります。 プログラマ同士のコミュニケーションの場合、具体的なコードで表現することが可能なものはコードで表現するのが一番でしょう。 しかし、図解を用いたり適切なコードで表現するためには、ある程度のスキルが必要になります。 これらのスキルが不足していると、問題が発生することになります。
表現の仕方については、単に事実などの情報を誤って表現してしまうというのも問題となりますが、もう少しややこしい問題を含んでいます。
攻撃的な表現を使ってしまったり明言を避ける為に曖昧な表現を使ってしまったりといった問題も、適切な表現でないという意味で、表現の仕方を間違えていると言えるでしょう。 例えば、ただ相手の理解を確認すれば良いケースにおいて、まだ理解できないのか?といったプレッシャーを掛けてしまうようなものが、攻撃的な表現にあたります。 このような態度は意図が正しく伝わらないだけでなく、相手が理解することを諦めてしまう事などに繋がるのでとても有害です。 ここで挙げた表現の差異は性格の問題のように捉えられがちですが、スキルの問題です。
相手のスキルや知識に適していない表現を使ってしまうのも、表現の仕方の間違いの一種でしょう。 これは相手に関する理解が不十分な為に引き起こされます。
「「あなた」が表現されたものから伝えられた事を読み取る」段階で発生する問題
ここで起きそうな問題は、次のようなものでしょう。
- 表現に使用された言葉を知らない
- 表現に使用された言葉などの解釈が「わたし」と異なる
これらの問題の要因は、相手のコンテキストに適さない表現を選択したことによるものと考えられます。 つまり、このステップで問題が発生しているわけではなく、前の段階である表現の選択時点で問題が発生していることになります。
意図したとおりに伝わったかどうかは相手に確認してみるしかないのですが、その事が問題をややこしくしています。 この後に何が起きるのかをみてみましょう。
- 「あなた」が伝えられた事をもとに「わたし」へ伝える事を認識する
- 「あなた」が伝えるべき事を表現する
- 「わたし」が表現されたものから伝えられた事を読み取る
これらのステップは「わたし」から「あなた」への逆となっているだけで、1.の表現が少し異なるものの同じものと言えるでしょう。 よって、これらのステップにおいてもここまで見てきた問題が発生する可能性があり、2重3重に問題が積み重なってしまうこともあります。 その為、問題が発生した場合にどの時点で発生した問題かを特定するのは困難です。
実際のコミュニケーションにおいては、何か噛み合っていないな?という違和感に気が付き、ひとつずつ確認することによって問題を把握することになると思います。
問題の原因とその対策
各段階で発生する問題と原因についてみてきました。 改めて原因を分類しつつまとめます。
- 相手への理解に関するもの
- 相手が取り扱う対象をどのように理解しているか、十分に把握出来ていない
- 相手のスキルや知識を十分に把握出来ていない
- 自身のスキルに関するもの
- 事実と感情を混同して捉えてしまう
- アサーティブでない態度になっている
- 表現するのに使用するスキルが十分でない
- 事前準備に関するもの
- 何を取り扱うのかについて共有されていない
- 取り扱う対象への理解が不十分である
- 取り扱う対象を含む分野に関する語彙が乏しい
ここからは原因の分類ごとに対策を考えてみます。
相手への理解に関するもの
ここに挙げたものは、相手に尋ねるなどする必要があるものになります。 つまり、対策する為にコミュニケーションが必要になります。 コミュニケーションの矛盾ともいうべきところがここです。 冗長な表現になってしまうのを覚悟で矛盾について説明するならば、次のようになります。 総じてコミュニケーションの目的は何らかの共通理解を築くことだと捉えることができますが、共通理解を築かなければならない状況とは共通理解が築かれていない状況なのです。
ここに挙げられているような要因を解消していくことが、コミュニケーションだと言い換えられるかもしれません。
共通して理解出来る表現を探りながら、 それを足がかりとしてお互いのコンテキストについて理解を深めるよう、 丁寧に対話を重ねていく。 これ以外の方法は無さそうです。
自身のスキルに関するもの
ここに挙げたものも、基本的には事前に対策が可能なものです。 ただし、対策がスキルの習得となる為、必要な期間が長くなります。 それでは個別に見ていきます。
事実と感情を混同して捉えてしまう
客観的事実と、どのように感じたのかという感情を区別し整理することで、このケースは避けることが出来ます。 次に取りあげるアサーティブコミュニケーションのスキルを身に付けることで、自然と実践出来るようになるでしょう。
アサーティブでない態度になっている
突然アサーティブという言葉が出てきましたが、これは何でしょうか?
アサーティブネス(Assertiveness)の訳語は、「自己主張すること」。でも、アサーティブであることは、自分の意見を押し通すことではありません。 自分の気持ちや意見を、相手の気持ちも尊重しながら、誠実に、率直に、そして対等に表現すること を意味します。
引用元: はじめに | アサーティブジャパン
ポイントは性格を変えるのではなく伝え方を変えることにあります。 アサーティブなコミュニケーションはスキルとしてトレーニングする事が可能です。 詳細については、書籍*1などを参照いただければと思います。
表現するのに使用するスキルが十分でない
問題の記述の中では、図解とコードで表現するスキルを取りあげました。 これらは日頃の訓練によって身に付けておく必要があります。 特に図解するスキルについては、プログラマ以外の方とのコミュニケーションにも有効なので、積極的に身に付けると良いでしょう。
事前準備に関するもの
ここに挙げたものは、次のように事前に準備しておくことで対策が可能なものです。
- 何を取り扱うのか事前に共有しておく
- 取り扱う対象について調査するなどして理解を深めておく
もちろん、シンプルな状況においてはこのような準備が必要ないことも多いでしょう。 しかし、思い込みによって本来は準備が必要だった状況をみすごしてしまうこともあるので、注意が必要です。
コミュニケーションにおいて一番大切なこと
色々な問題に対する対策を見てきましたが、コミュニケーションにおいて一番重要な事はなんでしょうか?
対策の中で触れたように、スキルはもちろん必要です。 ですが、それ以上に大切なのは異なるコンテキストを持つことを受けいれ理解しようとする姿勢にあると、私は考えています。 どちらかが正しいというのではなく、違いを知り理解しない事にはすり合わせる事すらできません。
違いを受け入れることによって、異なる視点をもつことを強みに変えていくことが出来るでしょう。
おわりに
ソフトウェア開発は創造的な問題解決と捉えることが出来ます。 創造的な問題解決には多様性に富む集団の方がそうでない集団と比べると、 たいてい高い成果を出すという実験結果があるそうです*2。 しかし、多様性は摩擦の増加の要因になります。 異質な人同士がひとつの問題に取り組み成果を出すのは容易な事ではありません。 多様な視点から新たな気づきを得て成果につなげるには、異なるコンテキストを持つ事を前提としたコミュニケーションが不可欠です。
豊かなコミュニケーションにより多様性を生かして素晴しいものを生み出していく。 少しでもそのヒントになれば幸いです。
*1: それでも話し始めよう アサーティブネスに学ぶ対等なコミュニケーション
*2:出典: 「Learn Better――頭の使い方が変わり、学びが深まる6つのステップ」 P.221