開発における認知バイアス: 実際の環境でどのように現れるか

公開: 2023-03-17
cognitive bias dev 1

今日私たちが住んでいる世界は、大量のデータの収集と処理に基づいて構築されています。 ある時点で、企業は、十分な量のデータセットと適切な処理により、顧客に関する非常に価値のある洞察を見つけ、それを活用できる可能性があることに気付きました。 日常生活で最新のテクノロジーに依存している私たちにとって、私たちが行うことのほとんどすべてが何らかの方法で追跡および測定されているように感じます. 現在、あらゆる場所から大量のデータが供給されています。 結局のところ、この情報はすべて、私たちの脳という 1 つの処理ポイントに到達する必要があります。 情報の世界は急速に成長しており、人間の脳はそれに適応して成長するためにできる限りのことを行っていますが、できることは限られています。

認知バイアスとは?

認知バイアスを入力します。 SimplyPsychology (2021) の Ruhl は、認知バイアスを「記憶、注意、およびその他の精神的誤りに関連する問題から生じる、思考における無意識の誤り」と説明しています。 彼女は、これは「私たちが住んでいる信じられないほど複雑な世界を単純化しようとする私たちの脳の努力の結果」であると説明しています. 言い換えれば、新しい情報が絶えず提示されると、私たちの脳は、すべてが理にかなっているのを助けるために仮定を立てることによって、これを効率的に処理しようとしますが、その中には間違っているものもあります.

認知バイアスはソフトウェア エンジニアリングにどのように現れるのでしょうか?

これをソフトウェア エンジニアリングの文脈に当てはめると、テクノロジは指数関数的に進歩しており、エンジニアは構築したシステムを維持および更新できるように、迅速に学習する必要があります。 生産的なペースを維持するには、何かを確実に知るには時間がかかるため、仮定を立てることは避けられませんが、それには限りがあります。 したがって、どのような仮定が立てられているかを特定し、慎重に検討できるようにすることは、エンジニアの仕事の一部になります。 これは通常、ソリューションの設計プロセス中に行われ、失敗した結果の潜在的なコストの分析が伴います。 ただし、この方法で行われる仮定と認知バイアスから生じる仮定との違いは、一方が意識的であり、他方が無意識であるということです。 したがって、後者を防ぐためには、その存在を認識する必要があります。

エンジニアとして、自分自身の認知バイアスを特定できることは、コストのかかる間違いを防ぐのに役立つため、非常に強力です。 ただし、このスキルを構築する方法を知ることは、工学よりも心理学に縛られているため、自然にできるとは限りません。 ありがたいことに、この分野ではかなりの量の研究が行われており、一般に公開されています。 組織はこの情報を使用して、エンジニアが従うのに役立つ開発プラクティスを設計および実装して、間違いを回避することができます。

Chattopadhyay等。 オレゴン大学の (2020) は、実務経験が 1 ~ 23 年の新興企業の開発者を対象に、塹壕からの物語: 認知バイアスとソフトウェア開発と呼ばれる研究を実施しました。 これには、開発者が自分の考えを言語化し、声に出して表現しながら、日常の作業タスクを実行するのを観察することが含まれていました。 基本的にペアプログラミングの演習ですが、開発者仲間の代わりに静かな研究者がいます。 10 人の異なる開発者を観察した後、研究者は認知バイアス カテゴリのリストと、それらの結果として発生した間違いの例をまとめました (下の表を参照)。

バイアスカテゴリバイアス
先入観確認、選択的知覚P1 は、他のデータ構造がデータ クエリ API により適しているときに、ハッシュマップを継続的に追加しました。
所有IKEA効果、寄付効果P8 は、Bootstrap プロジェクトから事前に作成された CSS ファイルの代わりに、彼女の古い CSS ファイルを再利用することにしました。
固定アンカリングと調整、信念の保存、センメルワイス反射、凝視P9 は、環境をリロードする必要があるときに関数定義を変更することに固執しました。
デフォルトに頼るデフォルト、現状維持、サンクコストP2 は新しいコード ファイルを開き、未使用のテンプレート コードをファイルの先頭に残しました。
楽観価数効果、無敵、希望的観測、楽観主義、自信過剰P4 は彼の新しい集約マップ コードを誇りに思っていましたが、印刷後にエラーが発生しました。
快適双曲線割引、時間ベースのバイアス、けちな情報処理、代表性P2 は、彼の現在のニーズに対応する過度に冗長なコードを作成しましたが、将来の進歩を遅らせるスパゲッティ コードになりました。
潜在意識の行動誤解を招く情報、有効性効果P6 は、システム全体でエラーを引き起こすコア依存ファイルではなく、エラー メッセージにリストされているファイルの修正に重点を置きました。
至福の無知正常化効果P10 は習慣からコンパイラの警告をすべて無視し、ビルドの失敗の原因を詳述する新しい例外に気付きませんでした。
表面的な選択コントラスト効果、フレーミング効果、ハロー効果P4 は、ドキュメントから関数をコピーして、最初に調べずに構文に直接貼り付けました。
メモリ バイアス優位性と最新性、可用性P1 は、コードの構造を簡単に思い出すことができたので、最近のタスクでうまく機能したデザイン パターンを再利用しました。
2020 年 5 月 23 ~ 29 日、Chattopadhyay らによる「A Tale in the Trenches: Cognitive Biases and Software Development」から再作成。 https://dl.acm.org/doi/pdf/10.1145/3377811.3380330 から取得

偏見を理解して悪循環を断ち切る

私自身の開発者としての経験の中で、これらの間違いのいくつかをはっきりと認識していました。 認知バイアスが何であるかを知る前に、なぜ私がこれらの間違いを犯したのかと誰かに尋ねられたら、おそらく「これが正しい方法だと思ったからです」と答えるでしょう。 無意識の行動に関して言えば、それがどこから来ているのか、あるいは存在しているのかを理解することさえ困難です。 現時点では無害で無害に見えますが、時間が経つにつれて、これらの間違いは悪い習慣が形成され、破るのが難しくなるため、深刻な悪影響につながる可能性があります. チェックしないままにしておくと、ますます多くのバグがシステムに導入され、これらのバグを修正するためにリソースが浪費されます。これは、誤った方法で行われる可能性もあり、悪循環に陥る可能性があります。

物言わぬ研究者のように外部の視点を持つことで、こうした行動を見つけやすくなります。 オブザーバーがこれらの動作が存在することを知っていて、見られたときに指摘する許可が与えられている場合は、さらに役立ちます。 これらの間違いは最終的にビジネスに影響を与えるため、高速で生産することによるこれらの影響を理解するのは組織次第です。 この理解は、適切な手順とトレーニングの実施への投資を正当化することができます。 認知バイアスがソフトウェア開発でどのように現れるかだけに焦点を当ててきましたが、これらが他の部門でもどのように発生するかは想像できます。 基本的に、仕事で生産性を高めたいと考えている人なら誰でも、認知バイアスを理解することで恩恵を受けることができます。

このようなチーム文化の中でキャリアを積むことに興味がありますか? 以下の募集中のポジションをチェックして、新しい機会についていち早く知りましょう。


nhu ヌー・チャン”>
ヌー・チャン

Nhu Tran は Rewind のソフトウェア開発者です。 Tran は、設計から開発、実装、テストに至るまで、ソフトウェア開発のライフサイクル全体に精通した経験豊富なプログラマーです。 彼女がスクリーンの前にいないとき、トランは冬に山を細断しているのを見つけたり、夏に居心地の良いグランピング施設を建てたりすることができます.

このトピックに関する洞察を提供してくれた Rewind の友人に感謝します。
共有
つぶやき
共有
0