IT業界で気づいたことをこっそり書くブログ

くすぶってるアプリエンジニアが、日々気づいたことを適当に綴っていきます(受託→ベンチャー→フリー→大企業→ベンチャー→起業)

複雑なことを事実ベースで考える、説明する、理解する 

発見というよりは自分自身で実践していること

一部の人は当たり前に実践できているが、多くの人が驚くほどできていない(優秀な人でも)

 

 

複雑なことに満ちている

IT業界ではシステム、サービス、チーム、プロジェクトなどという複雑なものがたくさんあってその説明に窮することや自分でも訳がわからなくなることがよくある

それが複雑かどうかは、結構簡単にわかると思う

 

  • どうやら知らない情報がある
  • AかBか、1か0かじゃなくて、もやもやしてる(量的)
  • 多くの人が絡んでいる(多くの認識がある)
  • 予測が多く含まれている(もし〜)
  • 予測の予測が入っている(ex:もし〜なら、〜かもしれないから、〜したいかも)
  • 感情がとても絡んでいる
  • 時系列で状況が変化している

 

こういうのは触れないに限るわけだが

それらを元に、どうにか「ジャッジ」をしなければならないことがある

 

 

コミュニケーション(言葉)は難しい 

複雑なことの中でも、最上級に複雑なものにコミュニケーション(言語)があると思う

 

例えば「ラーメンが好き」という情報が与えられたとしても、その言葉の影には多くの例外が潜んでいるかもしれない

「ラーメン全般が好きだが、味噌ラーメンは嫌いだし、もちろんまずいラーメンは嫌いだ。あと3日連続では好きではないし、朝食に食べるのは勘弁だ」が、本当のところかもしれないし、「ラーメンが好きだというキャラクターとして周囲から認識してほしい」だけかもしれない

  

コミュニケーションというものはものすごく複雑な情報を丸めているわけだ

そしてその例外は、本人でさえ気づいていない場合が多い

「3日連続で食べられるくらい?」と聞かれて初めて考えるはずだ

 

更に、この情報に形容詞や副詞がついたらもっと頭が痛い

「ラーメンがそこそこ好きだ」「ラーメンが人並に好きだ」とか

 

更に更に、この情報の話者や主語が変わってくるとどうなるだろう

私は社内の多くの人が私が『結構なラーメン好きだ』と認識していると思う

 

これを数人、数十人規模で想像すると、考えきれなくなって簡単に破綻する

人工知能が難しいのはこういうところなのだけど)

これがコミュニケーションと言っているものの本性だと思う

※ちなみに、これを全部深いところまで考える仕事が小説家や脚本家だったりする

 

 

事実ベースで考えてみる

コミュニケーションに限らず、何が何やら分からなくなることとか、どう表現していいか分からないこととか、そもそも何の目的で悩んでいるのか分からなくなることが多々ある

 

そんなとき、私はよく状況を俯瞰して、事実ベースで考える

 

事実ベースで考えるとは、「事実以外をまず除く」ことから始まると思う

言葉や概念というのはとても便利なもので、事実で言い表せないことは、実は殆ど無い

 

例えば

「これはとても複雑な状況です」

と言えば嘘ではない(論理的に正しい)

 

次にできれば行いたいのは、事実の掘り下げの前に、帰結を出すことだ

「これはとても複雑な状況だ」 → 「考えるのはやめよう」

これでもいい

(これは誰しもがやっているだろうけど、問題が難化すると忘れがちになる

 難しい問題は具体的答えに行き着かないことがあるので、これは重要なステップだと思う)

 

でももちろん、多くの場合こうならないから考えているのだと思う

改めて理詰めで書くと

「これはとても複雑な状況だ」 → 「しかし○○を解決しなければならない」 → 「○○を解決するために、まず状況の整理が必要だ」

みたいな感じ

 

ここからようやく、事実ベースで掘り下げていく

そのとき、主語、述語、条件はかなり注意をはらいたい

まるでプログラミングするとか、法律の文章を作る時のように事実を述べる

さっきの例で言うと、

 

事実「私は、自分がラーメン好きだと認識している」

事実「しかし、それには多くの例外がある」

 

これも事実なのでOKだと思う

 

この事実に対して、質問をするようなイメージで掘り下げていくとうまくいく

事実「私は、自分がラーメン好きだと認識している」

質問:ラーメン好きって、どういう認識での話?

回答=事実:「私にとってラーメン好きというのは、旨いラーメンが定期的に食べたくなってしょうがない人のイメージだ」

事実:「そして実際、私はそうだ」

帰結:「だから、私は自分がラーメン好きだと思っている」

 

事実「しかし、それには多くの例外がある」

質問:例えば?

回答=事実:「例えば、味噌ラーメンは苦手だ。あとバリカタも正直嫌い」

事実:「もちろんその他にも、例外はある

 

こういうイメージ

あくまで事実から外れず、感情も込みで事実として捉えて

情報量を増やしていく

 

これを、あくまで目的が達成するまで掘り下げていく

(元から複雑なんだし、全てを明らかにしようと欲張らない)

  

 

もっと複雑で意味不明な状況

ところで、あまりに複雑な状況だと、もうちょっと違う方法になる

例えば時系列が混ざる場合などがある

 

子供の頃に食べた札幌ラーメンが死ぬほど好きだが、その他のラーメンはあまり好きとはいえない」

 

この状況を、自分でも何となーく認識していたとする。

 

その時、「あなたはラーメン好きですか?」と言われると、難しい。

好きといえば嘘になるし、嫌いと言っても嘘になる。

(一番近いのは「好きだったこともある」とか?)

 

こういう風に、あまりに複雑な状況だとそれを自分自身も認識できない

(あまりに、と言っても日常的に普通に見かけるレベルだけど)

 

そういう時は、よくよく事実を探してみる

「好きと言っても嘘になる」

「嫌いと言っても嘘になる」

これは何も言っていないようで居て、実は事実にできる

 

事実「好きと言っても嘘になる」

事実「嫌いと言っても嘘になる」

 

 

これ以降はさっきのように掘り下げる

 

複雑なので欲張らず、まず事実を1つだけ述べてみる

 

事実「好きと言ったら嘘になる」

質問:じゃあ嫌いなんですね

回答=事実:「違う違う! そうじゃないんだよ!」

 

気づきにくいけど、この回答は事実であって、情報量が増えている 

この先もやってみると

 

質問:「好きと言ったら嘘になる」理由は何ですか?

回答=事実:ラーメンの多くがそんなに好きではないんだ

 

ここで気をつけたいのが、副詞・形容詞はあまり使わないことだ

(二階述語論理とかファジィが入ってくるから)

少し硬い言い方に変えてみる

 

質問:「好きと言ったら嘘になる」理由は何ですか?

回答=事実:好きとは言えないラーメンがあるからだ

 

こう書くと、すごくもどかしいかもしれない

この文章は本質を十分に述べていない、これでは誤解されてしまう!

と思いそうになるが、あくまで頭のなかの優しい質問者なので、そんな心配をせずに一歩ずつ事実を吐き出していくのが近道だ

 

もちろん、「ああっその言葉では足りない!」という思いがあれば、それは事実を吐き出すチャンスでもある

こういう風に書いたら少しスッキリすると思う

 

質問:「嫌いと言ったら嘘になる」理由は何ですか?

回答=事実:好きなラーメンがあるからだ

 

これで二歩進んだ

 

多分この後、「好きとはいえないラーメンとは?」「好きなラーメンとは?」

のように続いていくが、毎回あくまで目的が達成するまで掘り下げていくを意識しないといけない

 

「そもそも何で好きかどうかって話になったんだっけ、何が目的なんだっけ」

これの答えによってはこの思考が無意味なものかもしれない

 

ルール化

 

簡単にまとめれば

複雑な状況から、まずは事実を1つでも見つける 

→ 事実のみで受ける印象 と、実際とのギャップを考える

→ ギャップに対しその正体を探っていく(質問してみる)

→ 目的に沿った思考になっているかチェックする

このループ処理を、あくまで一歩ずつ行っていく

 

もちろん複雑で曖昧な対象を表現するので、だんだん曖昧になっていき最期には分からなくなるわけだけど、それが自分の脳内でできる認識の限界

それ以上を確かにしていくためには行動が必要になる

 

分からないことが分かる

 

この方法をもちいれば、どんなに難しい問題も複雑なままたちどころに理解できてしまう!!!

「分からないということが分かった」という浅い理解だけど・・・

 

しかしこれが重要で、理論や議論を着実に前に進めるにはこの方法しかない

研究領域では年単位でこれをやっているだろうし

仕事での成長も、結局大きな謎解きを一個ずつ紐解いていく作業だと思う

 

 

何故かできている人があまり居ない

 

ただ、複雑な問題に対してこれがキチンとできている人は10人中1人かそこらだと思う。意外なことに頭がいい人でもできていないし、地頭が良いほうができていないケースもよくみる。地頭がいい人は、一見できているようでいて、実は単に1個の複雑なものを丸ごと理解できる脳を持っているだけで、破綻レベルの複雑なことには頭が悪い人と同じ反応を示すことが多いと思う

 

そして恐ろしいことに、破綻レベルの複雑なことはそこら中に転がっている

(特にIT企業)

 

もしこれがナチュラルにできれば、5人くらいのミーティングで誰が何に対してどういう話をしていて、何を誤解しているかなど大体わかるのではないかと思う。

 

(ちなみに私ができている理由は、大学院で論理学と自然言語理解を研究領域にしていたからかもしれない。あと小説を書いたりするのもすごくこのスキルを使う)

 

 

 

_________

 

おまけ

 

難しい問題を無理やり事実にしてしまう方法 

 

・これは複雑だ

・事実かどうかはともかく、彼の現在の認識は~~だ

・事実かどうかはともかく、皆(~%の人が)こういう認識をしている

・事実かどうかはともかく、皆(~%の人が)こういう状況でこういう選択をした

・理由はさておき、彼はこういう行動をして、結果こうなった(と認識している)

・良いか悪いかはともかく、平均値からこれだけ離れている

・皆がどう思ってるかは知らないが、私は~~と思っている

などなど

 

こう考えると、やっぱりスケジュールと仕様は大事だね(予実績とのズレ=事実として話が始められるので)

 

_________

 

蛇足だが

この方法を使った場合、議論は上手くいくが、やはりそれでもコミュニケーションは上手くできない事が多い

結局コミュニケーションというのは、自分と相手で作るものなので、この方法が取れる数人が集まって初めて成り立つわけだ

大体は変な方向に向かうので、全部ひっくるめてウソやオベッカで乗り切るスキルが必要になる

 

よく遭遇するパターンはこんな感じ

 

事実 :事実として、○○だ

反応 :本来は△△すべきだが△△していないから○○なんだ → **さんが△△するべき

事実 :**さんは△△していない

反応 :するべきだ

事実 :していない

反応 :すれば解決する

 

これをキチンと「反論」にするとこうなる

 

事実 :事実として、○○だ

同意 :その通りだ

事実 :**さんが、△△すれば解決すると私は思う

反論 :**さんが、△△しても解決しないと私は思う

事実 :AAさんが、△△したら解決した。AAさんと**さんは同質だ。だから**さんが、△△すれば解決するはずだ

反論 :AAさんと**さんは同質ではない   ← 議題の遷移

反論 :AAさんと**さんは同質だ

反論 :AAさんと**さんはXXという違いがある。 ← 議題の遷移

同意 :その通りだ

事実 :XXが違うから、**さんが、△△しても解決しないはずだ  ← 議題の遷移

反論 :XXは、誰かが△△して解決するか否かに寄与しない

 

もちろん普段からこんな硬いやり取りをするべきというわけではないけど

例えばプロダクトを作るとき、チーム化するときはこれに近いやり取りができるときに限りうまくいくと思う