はじめに
この記事は コミュニケーション Advent Calendar 2016 の 20 日目の記事として書いています。
感情や論理的思考について、ファストとスローという二つに分けて捉えることからはじめ、その観点から自分の意見をどう上手く話すか、どう議論をよりよく発展させるかなどについて書きます。
ファスト・アンド・スロー
リファクタリング・ウェットウェア や、ファスト&スロー で述べられているように、人の思考を早いものと遅いものに分けて考えることができます。
- ファスト: 即座に結果が出る。コントロール不可能で直感、感情的な思考
- スロー: 時間をかけて結果が出る。コントロール可能で論理的な思考
ファストとスローはそれぞれ異なる性格や得意分野があり、例えば人の表情を読み取るのはファストが、暗算をするのはスローが担当します。ふたつの分け方についてちゃんとした定義は知らないので、この記事ではこう捉えると便利だというツールとして用います。
私の中でのイメージを次の図のように表現していきます。スローはファストの後に出てくるもの、矢印の方向は思考の方向性を表すふわっとした図です。
即座に反応しない
直感的な良い、悪いの判断はファストが下しますが、ファストは論理的な課題は得意ではないので、少し待って考えるべきです。
とりわけプログラミングは難しい論理的な思考が必要とされるので、
「このクラスはシングルトンにしたい」
といった意見に対して、即座に
「シングルトンはアンチパターンだ」
という反応を示さないように気をつけるべきです。
自分のファストがどういう反応をしているかを自覚することが大切だと思います。
「どうしてシングルトンに?サービスロケータから取得したほうがいいんじゃない?」
というようなやり取りができると、例えばリリース直前で仕方なくだとかの事情が分かったり、知識レベルのすり合わせができて良いです。
スローで方向修正する
スローで方向修正することで、より論理的に正しい判断を下すことができます。
「嫌いな人が言ったことだけど、論理的に正しいからこれをやるべきだ」
「この言語で書きたくないけど今のチーム構成ではこれで書くべきだ」
ただ、ファストを無視せず、どう感じたかは表明すべきだと思います。
そうでなければ、「全員がこのフレームワークが嫌いだけど他の人が使ってるので仕方なく使う」などの情報不足によって、部分最適よりも全体最適を目指したつもりがどちらも得られないという問題が起きる可能性があるからです。
「この言語を使ってみたいけど、誰も書けないから今までと同じにするべきだよね?」
「実は家でちょっと書いてたからできるんだよね。それでやろうよ」
というようなコミュニケーションが促進されるといいと思います。
感情に振り回されない
ファストの判断に振り回されないよう、感情を自覚することが大切です。
自分の怒りに気づかずに相手を否定してしまい、あとから論理的な間違いに気付いてもバツが悪く訂正できないというような事態が起こると最悪だからです。
「嫌な人が言った事だから嫌だ。多分コードも最悪だ」
ファストの活用
これまで、ファストを否定する事を書いてきましたが、大事なのはファストを自覚して振り回されないことであり、上手く利用することでよりよいコミュニケーションが取れると思います。
ファストの部分には自分の感性を知ることができるヒントが入っているので、これを知ることで、自分が何が好きで何が嫌いかが分かりやすくなると思います。
ブレインストーミング等においては感性や直感を活用することが求められるので、ファストにうまくスローを乗せることでよりよいアイデアを出したり、よりポジティブなモチベーションを出すことができると思います。
よりよく人と話す方法
ファストとスローそれぞれ性格の違う思考とうまく付き合うことで、よりよいコミュニケーションをとることについて書きましたが、具体的に私が普段気をつけていることについて書きたいと思います。
意見と目的
意見するときに気をつけている事について書きます。
「アプリからバグを無くしたい」
といった意見があったとき、
「プログラムから全てのバグを無くすのは不可能、カバレッジが云々」
といった意見をしないように気をつけています。
このような返事はモチベーションを下げ、コミュニケーションを減らすため問題があります。
この返事の問題は、意見の真の目的、思いを捉えていないことで、修正すべき点は二つあります。
- 目的に対して賛成か反対か表明できていない
- 目的に対して意味のある意見になっていない
ファストで反応してしまい、目的を察することができないので、この意見の元となった思いは何かについて考えたり、訪ねたりすべきです。
その結果、次のような思いが分かるとします。
「バグを減らしてユーザーを満足させたい」
その上で、次のように賛成か反対かを表明した上で、意見を出せると良いと思います。
「確かに最近バグ報告が多いから、ちゃんと減らしていきたい」
「issue の管理に問題があるので、こうしたらどうか」
このようにすることで、知らなかった問題について意識を共有し、モチベーションを上げるきっかけになると思います。
議論を肯定的に発展させる
どんな緻密な意見でも否定的な批判の余地がありますが、それをすべて指摘するのは息苦しく、議論の妨げになります。
一方で、会社組織やチームは同じ目的を持った人の集まりなので、どんな意見でも大きく捉えれば必ずどこかで肯定することができます。
モチベーションを保って活発にコミュニケーションするには、議論やアイデアを肯定的に発展させることが大切だと思います。
例えば、面白い画像加工のアイデアが思いついたとします。
否定的に批判してコミュニケーションを終了させるのは簡単です。
「パンケーキの画像を可愛いワンちゃんに加工するアプリを作ったらどうだろう」
「(処理に5分はかかるし)それは無理」
「(あまりいいアイデアじゃなかったのかな、それにプログラミングのことは分からないし、しょうがない)そうか、残念」
この場合、お互いがどう思ってるのかわからないので雰囲気が悪くなることさえあります。
もしかしたら「やる気のないプログラマーだ」「企画のアイデアが悪い」とお互いに思ったまま過ごすのは居心地が悪いです。
ここでも、 目的に対して賛成か反対かを表明し、意味のある意見を言えると良いでしょう。
「そのアイデアは面白いね。ワンちゃんは好きだし。でも、処理に時間がかかるから難しいかもしれない」
「どのくらい時間がかかる?」
「5分はかかると思う」
「いいんじゃないかな。待ってる時間も楽しめるようにネコちゃんのメリーゴーランドが表示されるようにしよう」
例は意味不明ですが、このようにしてお互いが知りたい事を引き出し、自分にないアイデアを組み合わせて議論を発展できると最高だと思います。
ここで、さらなるコツとして次の 3. 判断をしないことを追加します。
- 賛成か反対かを表明する
- 意味のある意見を言う
- 判断しない
「処理に時間がかかるから無理だよ」と判断をぶつけるのではなく、「処理に時間がかかるから難しいかもしれない」
といった風に判断材料を提示して、同じ問題意識を持った上で一緒に判断することが大切です。
そうすることで、課題を共有して合意を得ることができ、その後のコミュニケーションがスムーズになります。
さいごに
- ファストを自覚し、スローで方向修正する
- 意見の言葉そのものよりも目的をみる
- 目的に対して意見を表明する
- 一人で判断しない
という気をつけているポイントについて書きました。