プログラミング心理学( PoP )は、プログラム(多くの場合、コンピュータプログラム) の作成に関する心理学的側面を扱う研究分野です。この分野は、プログラミングの経験的研究( ESP )とも呼ばれています。コンピュータ プログラマーの認知、プログラミング関連の活動のためのツールと方法、プログラミング教育に関する研究をカバーしています。
心理学的には、コンピュータプログラミングは、コンピュータ言語の読み書き、学習、問題解決、推論などの認知を伴う人間の活動です。
歴史
プログラミング心理学の歴史は、1970年代後半から1980年代前半にさかのぼります。この頃、研究者たちは、プログラミングツールやテクノロジーでは計算能力だけでなく、ユーザーにとっての使いやすさも評価されるべきだと認識していました。[1]最初の「プログラマの経験的研究に関するワークショップ」で、ベン・シュナイダーマンは研究者にとって重要な目的地をいくつか挙げました。これらの目的地には、現在の言語の使用の改良、現在および将来の言語の改善、専用言語の開発、ツールと方法の改善が含まれています。過去20年間で、プログラミング心理学をテーマにした重要なワークショップシリーズが2つありました。米国を拠点とする「プログラマの経験的研究に関するワークショップ (ESP)」と、ヨーロッパを拠点とする「プログラミング心理学インタレストグループ ワークショップ (PPIG)」です。ESP は、純粋なプログラミング心理学よりも対象範囲が広く、一方、PPIG は PoP の分野に重点を置いています。ただし、PPIG ワークショップと PPIG 組織自体は非公式な性質のものであり、PoP に関心を持つ人々が集まって議論を公開するグループです。
目標と目的
プログラムの作成が仕様を満たし、スケジュールどおりに行われ、将来に適応でき、効率的に実行されるようなプログラミングパフォーマンスを達成することが望ましい。[2]これらすべての目標を低コストで満たすことができることは、ソフトウェアエンジニアリングとプロジェクト管理における困難で一般的な問題です。コンピュータプログラミングの心理的側面を理解することで、より高いプログラミングパフォーマンスを達成する方法をよりよく理解し、プログラマーがより少ないエラーでより良いソフトウェアを作成できるように支援することができます。
研究方法
コンピュータプログラミングの心理学的側面を研究するために使用できる方法には、内省、観察、実験、質的研究などがあります。[2]
認知バイアス
認知バイアスとは、何かについて推論する最適な方法からの体系的な違いです。研究により、プログラミングには多くのバイアスが関係していることが示唆されています。[3] アンカリングバイアスは、見積もりとアイデアの再利用で特定されています。 [3] : 7 実行 中の作業には楽観バイアスが適用されます。[3] : 7可用性バイアスにより、プログラマーはドキュメントを検索するときに間違ったキーワードを使用し、関連する情報を見つけられず、組織内の以前のプロジェクトから学んだ教訓をプログラマーが適用できなくなります。[3] : 7
確証バイアスはテストにも適用され、開発者は失敗する可能性のあるテストケースではなく、コードに有効なテストケースを書くようになります。また、ドキュメントを検索してプログラマーの現在の仮説だけを探す場合にも適用されます。論理的推論と仮説検定のトレーニングにより、この確証バイアスは軽減されました。[3] : 7
参照
参考文献
- ^ ヨルマ・サヤニエミ。プログラミングの心理学:プログラマの頭の中を探る。ヒューマンテクノロジー[インターネット]。2008年5月4~8日[2012年10月4日引用]; 4(1): http://www.humantechnology.jyu.fi/articles/volume4/2008/ge-sajaniemi.pdf から入手可能
- ^ ab Weinberg, Gerald M. (1998)、コンピュータプログラミングの心理学 (Silver ed.)、ニューヨーク: Dorset House、ISBN 0-932633-42-0
- ^ abcde Mohanani, Rahul; Salman, Iflaah; Turhan, Burak; Rodriguez, Pilar; Ralph, Paul (2020-12-01). 「ソフトウェアエンジニアリングにおける認知バイアス:体系的なマッピング研究」. IEEE Transactions on Software Engineering . 46 (12): 1318–1339. arXiv : 1707.03869 . doi :10.1109/TSE.2018.2877759. ISSN 0098-5589. S2CID 2172676.
外部リンク
- プログラミング心理学ウェブサイト
