プログラミング倫理

本稿では、コンピュータプログラミングソフトウェア開発に適用される職業倫理、特に開発者がアプリケーションソフトウェアのソースコードを設計・開発する際、そしてプログラマーと顧客、あるいは従業員と雇用主の関係において従い、適用することが期待される倫理ガイドラインについて概説する。これらの規則は、ソフトウェアを開発する際、あるいはプログラミングプロジェクトに関する重要または繊細な問題について意思決定を行う際に、良い慣行や態度と間違った慣行や態度を形作り、区別する[1]。また、専門的な業務を遂行する上での倫理的な意思決定スキルの基礎でもある。

歴史

マサチューセッツ工科大学の数学・工学教授であったアメリカの学者ノーバート・ウィーナーは、1940年代半ばに新しいタイプの倫理学の基礎を築いた最初の人物でした。彼は、科学技術の革新と進歩、そして急成長するコンピュータ産業が、この種の倫理学の出現を促していることに気づき、これを「サイバネティクス」(ギリシャ語で船の操舵手を意味する)と名付けました。コンピュータやその他の技術の新たな利用は、新たな倫理的問題を引き起こし、新たな倫理的ガイドラインを用いて慎重に分析する必要がありました。

第二次世界大戦後、ウィーナーは倫理学の新たな分野の基礎を築く3冊の本を著した。それらは『サイバネティクス』(1948年)、『人間による人間の利用』(1950年)、『神とゴーレム株式会社』(1963年)である。ウィーナー自身は倫理学の新しい分野を創始するとは考えていなかったものの、コンピュータの利用によって生じる倫理的・社会的問題とその影響を特定できる詳細な例を示した。しかし、彼の考えは他の学者に真剣に受け止められなかった。彼らは彼を倫理学について空想する風変わりな科学者とみなしたからである(バイナム[2]) 。

1976年、ノーバート・ウィーナーの思想と原則に基づき、ウォルター・マナーが倫理に関する新しい用語「コンピュータ倫理」を提唱しました。マナーは、当時の医療業界やビジネス業界と同様に、コンピュータ業界にも倫理学の分野が必要であると感じました。また、マナーはこの分野を「コンピュータ技術によって悪化、変容、あるいは創出される倫理的問題を研究する分野」(バイナム)[2]と定義し、大学の学生向けにコンピュータ倫理のコースを設計しました。

1990年代初頭、ドナルド・ゴッターバーンは、コンピュータ倫理は、コンピューティング専門家のための優れた実践基準と行動規範の開発と発展を導く力を持つ職業倫理として捉えられるべきだと主張した(バイナム)。[2]彼は、複数の職業倫理擁護者と協力し、倫理規定を作成するための倫理ガイドラインを作成した。彼は、 1992年に計算機協会(ACM)が採択した倫理・職業行動規範、そして電気電子学会(IEEE)とACMが採択したソフトウェアエンジニアリング倫理・職業実践規範の策定に携わった。これらの規範には、プログラミング倫理の原則も含まれている。

プログラミング倫理ガイドライン

計算機協会(ACM)、世界最大の教育および科学計算学会です。ACMは独自の倫理規定と、IEEEによってソフトウェアエンジニアリングの教育と実践の標準として承認された倫理原則を有しています。これらの規定はそれぞれ「倫理および職業上の行動規範」と「ソフトウェアエンジニアリング倫理および職業上の実践規範」と呼ばれ、そのガイドラインの一部を以下に紹介します。

倫理および職業行動規範(ACM)より:[3]

  • 社会と人類の幸福に貢献する。プログラマーは、安全や健康への脅威といった社会への悪影響を軽減し、日々の活動や仕事をより容易にするコンピュータシステムの開発に努めるべきである。「高い水準で開発することは義務である」(サベージ)。[4]
  • 他者への危害を避ける。コンピュータシステムは第三者に間接的な影響を与えます。情報やリソースの損失を引き起こし、ユーザー、一般市民、あるいは雇用主に深刻な損害をもたらす可能性があります。したがって、ソフトウェア開発者は、システムの設計とテストに関する標準(倫理規定および職業行動規範)に従うことで、コーディングエラーやセキュリティ問題によって他者に危害を加えるリスクを最小限に抑える必要があります。[3]
  • 正直で信頼できる人であること。この原則は、プログラマーがコンピュータシステムを開発する際に、正直であること、そして自身の知識と教育の限界を認識することを促します。また、プログラマーがコンピュータシステムに何らかの問題があることに気づいた場合は、望ましくない結果を避けるために、直ちに報告するべきです。
  • 知的財産権を適切にクレジットしましょう。すべてのソフトウェア開発者は、たとえ著作権法や特許などで保護されていない場合であっても、他者の著作物を決して使用したり、その著作物のクレジットを主張したりしてはいけません。ソフトウェア開発者は、他者の著作物を認識し、その著作物に十分なクレジットを付与するとともに、自身のアイデアに基づいてソフトウェアを開発する必要があります。
  • 他者のプライバシーを尊重しましょう。コンピュータシステムは、一部の人々によって不正に使用され、他者のプライバシーを侵害することがあります。ソフトウェア開発者は、ユーザーの個人情報を保護し、望ましくない他者による不正アクセスを防止できるプログラムを作成する必要があります(倫理規定および職業行動規範)。
  • 機密保持を厳守してください。法律またはその他の倫理ガイドラインで義務付けられている場合を除き、プログラマーはプロジェクトでの作業中に生じた雇用主に関する追加情報を秘密に保持しなければなりません。

ソフトウェアエンジニアリングの倫理および専門職実践規範[5] (IEEE、ACM)より:

  • ソフトウェアは、安全性と仕様への適合性について十分な根拠がある場合にのみ承認してください。プログラマーは、必要なタスクを実行できるという理由だけで、システムが使用可能であると判断することはできません。プログラマーは、システムが安全であり、ユーザーが要求するすべての仕様を満たしていることも確認する必要があります。プログラムが安全でなければ、ユーザーは重要な情報や金銭を盗む可能性のあるハッカーから保護されません。したがって、承認前にシステムのセキュリティを確保するために、複数のテストを実施する必要があります。
  • 自分の仕事に対して全責任を負う。プログラムにエラーが発生した場合、ソフトウェア開発者は自分の仕事に対して全責任を負い、修正、修正、変更、テストに取り組む必要があります。
  • 違法または非倫理的に取得または保持されたソフトウェアを故意に使用しないこと。コンピュータシステムを別のコンピュータシステムの作成の基盤として使用する場合は、プログラマーの許可を得る必要があります。この原則は、入手方法が不明な場合、または違法または非倫理的であることがわかっている場合、いかなる目的であっても他のソフトウェアを使用することを禁止しています。
  • 業務プロジェクトに関連する倫理的、経済的、文化的、法的、環境的問題を特定、定義し、対処します。プログラマーがプロジェクトへの取り組みが何らかの問題につながる可能性があることに気づき、それを特定した場合、プログラマーは作業を続行する前に雇用主に報告する必要があります。
  • 開発するソフトウェアの仕様がユーザーの要件を満たし、適切な承認を得ていることを確認してください。ソフトウェア開発者は、次の作業に進む前に、開発中のシステムについて雇用主に適切な承認を求める必要があります。要件を満たしていない場合は、システムのソースコードを修正する必要があります。
  • ソフトウェアの適切なテスト、デバッグ、レビューを確実に実施してください。プログラマーは、取り扱うソフトウェアに対して適切なテストを実施し、エラーやシステムのセキュリティホールがないか確認して、プログラムが適切に実装されていることを確認する必要があります。
  • 賄賂、二重請求、その他の不適切な金融行為といった欺瞞的な金融行為に関与しないこと。プログラマーは、金銭を得るために違法行為に加担する危険性があります。脅迫、経済的な問題、あるいは単にコンピュータシステムの仕組みに関する知識を利用して簡単に金銭を得たいという理由から、違法行為に加担することもあります。このガイドラインは、プログラマーがこのような違法行為に関与することを禁止しています。
  • 安全で信頼性が高く、有用な高品質のソフトウェアを作成する能力を向上させる。技術の進歩は年々加速しており、仮想犯罪も同様に加速しているため、適切に構造化され設計されたプログラムの必要性が高まっています。コンピュータシステムは古くなり、新しいシステムやデバイスによって制限されます。プログラマーは、より優れたソフトウェアを作成するために、「ソフトウェアおよび関連文書の分析、仕様、設計、開発、保守、テストにおける進歩に関する知識を深める」必要があります(ソフトウェアエンジニアリングの倫理および専門的実践規範)[5]

大学の役割

オハイオ大学では、コンピュータサイエンス専攻の学生にプログラミング倫理の分野についても教育を行っています。大学は、すべての学生がACMの原則と責任を理解し、遵守することを期待しています。[6]

安全でないパスワードを作成したり、プログラムの実装にセキュリティホールを残したりといった、システムのセキュリティと信頼性を損なう可能性のあるミスを故意に犯した場合、プログラマーは裁判にかけられる可能性があります。[4]プログラミング関連の法的紛争で生じる可能性のある具体的な制裁は州によって異なります。制裁には、是正措置、一定時間の社会福祉活動、または数ヶ月から数年の懲役が含まれる場合があります。

参照

参考文献

  1. ^ 非倫理的なソフトウェアエンジニアリング:ダークパターン。LeanPub。2024年12月25日。
  2. ^ abc Bynum, Terrel (2015-10-26) [2001-08-14]. 「コンピュータと情報倫理」. Edward N. Zalta (編) 『スタンフォード哲学百科事典』(2011年春版) . 2021年6月21日閲覧
  3. ^ ab ACM Code 2018 Task Force. 「ACM倫理・職務行動規範」. Association for Computing Machinery . 2013年9月28日閲覧。{{cite web}}: CS1 maint: 数値名: 著者リスト (リンク)
  4. ^ ab Savage, Brandon (2009年8月12日). 「プログラマーのための倫理?」BrandonSavage.net . 2013年9月29日閲覧
  5. ^ Donald Gotterbarn、Keith Miller、Simon Rogerson (2013年9月28日). 「ソフトウェアエンジニアリングの倫理規定と専門職としての実践」. Association for Computing Machinery , IEEE . doi : 10.1145/265684.265699 . S2CID  9789551. {{cite journal}}:ジャーナルを引用するには|journal=ヘルプ)が必要ですCS1 maint: 複数の名前: 著者リスト (リンク)
  6. ^ 「プログラミングの世界」オハイオ大学. 2021年5月8日.
「https://en.wikipedia.org/w/index.php?title=プログラミング倫理&oldid=1296859509」より取得