🍣

認知で生まれる10倍の差 - 必要なのは認知の改善、認知の共有

2024/06/17に公開

以前、他人の10倍仕事ができる人に10倍の給与を支払うべきなのか問題という記事を書きました。
ここで10倍、100倍、などとざっくりと"差"について書きましたが、この差の本質の大部分はこれであろう、という事がわかったので書きます。
結論としては、この差を生じる要因は認知です。
※前提として、一般的なWebアプリの開発についての話です。

多くの場合、単純な作業量は10倍・100倍の差にならない

一定のトレーニングをした人間に、易しいパターン的な作業を継続させる場合、その成果の差が10倍になるという事はまずありません。例えば、タイピングを継続する仕事を考えた時、タイピングについての一定のトレーニングを実施した前提で、かつ集中力が続く限りでは、10倍の差は生じません。まして100倍という事はありえません。どんなに熟練であったとしても、普通の訓練を受けた人が1回打ち込む間に100打叩き込むという事は物理的にありえません。
数倍という事はあるでしょうが、10倍・100倍という事になると、単純な作業量などではない別の事に要因がある事は明らかです。

時間をかけても全く成果が生まれない場合がある

Webアプリ開発の仕事の場合、すごく時間をかけても成果が全くゼロ、あるいはゼロに近いという事象が発生する事があります。このような事象によって、成果ゼロの時間が多く存在することで結果的に10倍・100倍という差が生まれています。
このような差が生まれるパターンについて、いくつか考えてみます。
話を簡単にするため、クライアント・上司など仕事の成果を提供・収める相手がいるものとして、その相手の事を依頼者と呼ぶことにします。

作業が完全に止まって、悩んだり考えたりして、進捗がない

「何をしたらよいかわからない」ために、作業ができないというパターンがあります。これは、それを解決するために悩んだり考えたり、あるいは調べたりもしてみるものの、進捗がないというようなパターンです。
「何をしたらよいかわからない」理由は様々で、

  • 作業の目的や意味がわからなくて具体的な内容がわからない
  • 作業の目的・やりたい事はわかるが具体的にどう実現すればよいかわからない
  • 作業の目的も実現方法もわかるが、実現方法が複数あってどれを選べばよいかわからない
    • 過去に何かを選んだ時に思わぬリテイクが発生してしまい、どれを選べばよいかわからない、など

といった事が考えられます。

作業を進めることはできるが、間違った方向に進んで、進捗がない

これは、作業者の中では具体的な方策があってそれを実施しているが、依頼者が意図せぬことをしたり、間違ったことをしたりして、結果的に進捗がないというパターンです。これには、次のようなパターンがあります。

  • 作業の目的がずれていて、根本的に意味のないことをやっている。
    • 仮にある見方をすると意味のあることだったとしても、いま依頼者が重要だと思っている事とずれて噛み合わない。
  • 作業の目的は大きくは一致しているが、実現方法を具体化したときに、その実現方法が合っていない。
    • 実現方法が論理的に作業の目的と整合的でない。
    • 実現方法は論理的にざっくりとは作業の目的と整合的だが、細かく掘り下げると別の方法が適している。
  • 作業の目的・実現方法については一致しているが、実現方法を具体的に遂行する知識・能力がない。
  • 作業の目的・実現方法について一致していて、実現方法を遂行する能力もあるが、途中で自分が疑問に思う事があった場合に、それに引きずられてしまう。(だんだんずれていく)
    • 立ち入って考慮すべきではない事や、他のレイヤーで考慮して対応すべき事について、自分の作業内で無理やり対応しようとしてしまう。

このような状態がなぜ生まれるのか、考えましょう。

依頼者との認知のずれによって、進捗がない状態が生まれる

誰が悪いといった事は一旦さておき、このような状態が発生している理由は、単純に依頼者と作業者の認知がずれているからです。
作業者が依頼者の意図する認知で自然に作業できたとすれば、ここに挙げたような状態にはなりません。
もちろん、作業者には難しいタスクを振ってしまったという場合もあるでしょうが、その場合にも依頼者はできると思っている一方で、作業者は実際にやってできないという認知を得ているので、認知にずれが発生しています。
誰が悪いといった事とは関係なく、とにかく、依頼者と作業者の間で認知がずれている事が、作業を順調に進められない理由です。

質問や報告は「応急措置」、事前の対策が必須

このような状態になると、その状態を解消するために認知を揃える事が必要になります。
その場合は質問や報告などのコミュニケーションを通じて認知を揃えていく事になりますが、ここで気をつけないといけないのは、この場合の質問や報告は「応急措置」あるいは「事後対応」であるという事です。
たとえて言えば、重大な事故があった場合に救急車を呼ぶ行為が、この場合の質問や報告です。
それは重大な事故があった場合には100%必要で、欠かすと致命的な問題になることですが、一方で個人としては救急車を呼ぶ必要のある事故ができる限り発生しないようにする事、事前の対応が重要です。
つまり、具体的な仕事にあたって質問をしていく事は当然ですが、 それ以前にすでに認知が揃った状態になっている事 により大きな価値があります。
例えばシステムに新たな仕様を追加していく事を考える人は、依頼されたタイミングで依頼者の話をうまく理解できないと、うまく整理をしながら新たな仕様を検討していく事ができません。そのためには、事前に認知が揃っているという事が重要になります。

読む方も書く方も、認知に引きずられる

テキストによるやり取りなどを考えると、作業依頼・要件整理を読む方も書く方も、それぞれの認知によって解釈・記述する内容が変わってしまいます。言葉の上では複数の解釈ができたり、ときには言葉としては微妙に間違っている内容などを、意図を汲み取ったうえでコミュニケーションする必要があります。そのような時には、国語力がある事で解決できる場合もありますが、国語力ではなく認知によって結果的に正しいコミュニケーションができる場合もあります。国語力で解決できる事が理想的かもしれませんが、それができなくても、事前に認知を合わせておくことで正しいコミュニケーションができるので、それを目指しましょう。

面接・コーディングテストでの会話

余談ですが、面接やコーディングテストにおいて会話をしながら問題を解いていく必要があるのも、まさにお互いの認知を揃えながら作業が一緒にできるか、という事を見ています。たとえば会話が成立しない場合は、認知を揃える事が難しいという事になります。この「会話が成立しない」というのは、例えば技術的な知識の不足もそうですし、単純にコミュニケーションが取れるかということもそうです。技術的な知識とコミュニケーションの双方について問題なく認知を合わせていけるか、という事が重要になります。

認知を揃えるには

では具体的に認知を揃えるには、どうすればよいでしょうか。その集団・環境によって差がありますが、キャッチアップ・インプットに力を入れるという事があります。新しく集団に入った場合、自分の実力を示すためのアウトプットが必要、という心理になる場合がありますが、まずは認知を揃える事が大事なので、インプットに力を入れていく事が必要になります。
また、具体的な成果としてのアウトプットというよりは、自分の認知の確認を兼ねた、直接的に成果に結びつくとは限らないアウトプット(インプットのためのアウトプット)も有意義です。
まずは認知を揃える。そうすると、自然と進捗がない状態を避けられるようになります。

指摘を受けたときの考え方 - 認知まで遡る

認知が揃っていない状態では何らかの指摘を受けることがあります。ここで、受けた指摘については、常に「その指摘の元になった認知はなにか」という事まで遡って考えるようにします。というのは、指摘を表面的に修正すると認知に影響が出ない可能性があるからです。認知を揃えることが根本的に必要なことなので、それに繋がるように認知について考えるようにします。

認知のずれは自然に発生するので、善悪と切り離して修正する

認知がずれているからといって、誰が悪いという事ではありません。善悪のような考え方とは切り離して、ただ仕事を円滑に進めるうえで必要なこととして"淡々と"認知を修正していきます。

メンタルモデルを揃える

認知を揃えるにあたっては、特にメンタルモデルを意識して、「メンタルモデルの修正についてのメンタルモデル」を確立することが重要と考えます。
(メンタルモデルについては「プログラマー脳」の本の感想と賛辞 〜 意味波と具象と抽象との記述を参照してください。)

例えば作業者がなにか作業をしたとき、それが求められているものではない、想定の乖離があると手戻りが発生します。これの修正をするためのメンタルモデルをまず作りましょう。
ちなみに、作業者の目線では例えば質問を沢山するというメンタルモデルにもなり得ますが、ここでは別の方法を取ります。

想定の乖離のメカニズムを考えると、以下のような原因に分けられると思います:

  • 単純な考え不足(時間や量的なこと)
  • 方向性の間違い
    • 知識、文化
    • 考え方、戦略

まず、この枠組みで各原因を列挙して、乖離の原因となった事象について、依頼者とメンタルモデルを合わせるようにします。知識が足りなければ知識を増やす、文化的にずれていれば直す、考え方や戦略がずれていれば正しいものを中心に据える、といったことです。これを、一事象・一知識をすり合わせるという事を目的とせず、根本的な認知や考え方を合わせていく、という気持ちでやっていきます。

これによって、メンタルモデルを揃える感覚を養うことができ、認知を揃えることに大きく貢献します。

一般論ではなく、目の前の相手と認知を揃える

最後に、ここまでの手法を用いて認知を揃える相手は、必ず目の前の具体的な相手にします。
一般論に対して認知を揃える、というような事を狙ってはいけません。というのは、ここでいう一般論というのも既に自分の認知を通した一般論であるため、例えば部分的には正しくても全体観が欠如していたり、何らかの歪な状態である事が多いからです。特に自分が既に他の人と認知が合っていないと思うような状態では、具体的な相手を伴わない一般論と認知を合わせようとしてはいけません。

一般論に対して認知を揃えようとする事は、独学と並んで非常に難しい行為となり、当初から認知がかなりしっかりした人でなければ、ほぼ誤った方向に進んでしまいます。認知を揃えるべきは、目の前の具体的な人間です。

認知がずれる事は悪い事ばかりではない

ここまで、認知を揃えることについて述べてきましたが、認知がずれるという事は必ずしも悪いことばかりではありません。というのは、例えば組織のレベルで見た時、それぞれの構成員の認知の違いによって、特定の認知では検知できないような事を検知したり、比較して優れた対応を行えたり、といった事があります。また、全員が全く同じ特性のパーティが相対的に弱い・致命的な弱点を抱えるケースもあります。そのような意味で、必ずしも認知のずれはデメリットだけのものではないのですが、ただ、依頼者と作業者の間であまりに大きな認知の差があると、まともに仕事が進まない場合があるので、そのような邪魔な認知の差については解消した方がよいでしょう。
この認知の差をうまくコントロールすることによって、結果的に成果が10倍・100倍となるように感じており、揃えるところは揃える、多様なところは多様に保つ、という事を意図的に行えれば、安定して成果を出せる貴重な人材になれると思います。そのような自律的な人材が増えると良いですね。

Discussion