ソフトウェア・エンジニアリングのための

倫理ならびに専門職実務綱領

――――――――――

 

(第5.2版)

 この綱領は,ソフトウェア・エンジニアリングのための倫理ならびに専門職実務に関するIEEE-CS/ACM合同タスクフォースの推奨を受けています。また,ソフトウェア・エンジニアリングの教育と実務に関する標準としてACMIEEE-CSから共に承認されています。

 

綱領縮約版

 

序言

 

 この縮約版は,この綱領が何を希求し,意図しているのかをきわめて簡潔に要約したものである。綱領全文の各項目には,ソフトウェア・エンジニアリング専門家としてのわれわれの行動のあり方を,これらの希求・意図に基づいてどのように変化させるべきなのかということについての具体的な例と説明が述べられている。希求・意図が明確にされなければ,綱領全文にある諸項目はその記述をただ表面的に守ることを要求するものとなり,冗長で,退屈なものになってしまう。その一方で具体的な説明がなければ,希求・意図は,それがいかに高尚なものであったとしても,空疎なものになってしまう。希求・意図と具体的な説明の両者があってはじめて一つの完結した綱領となる。

 ソフトウェア・エンジニアはソフトウェアの分析,仕様決定,設計,開発,テスト,メンテナンスを有益で尊敬に値する専門職の仕事とするよう最大限の努力を投じなければならない。社会の人々の健康,安全,福利に対する責務に従い,ソフトウェア・エンジニアは以下の8原則を遵守すべきである:

 

1 公共性‐ソフトウェア・エンジニアは公共の利益と調和するよう行動すべきである。

 

2 顧客ならびに雇用者‐ソフトウェア・エンジニアは,公共の利益と調和しながら,顧客と雇用者の最高の利益を実現するよう行動すべきである。

 

3 製品‐ソフトウェア・エンジニアは,その製品と,製品に関する変更が,専門家として可能な限り最高の基準に合致していることを確保すべきである。

 

4 判断‐ソフトウェア・エンジニアは専門家としての判断において誠実さと独立性を維持すべきである。

 

5 管理‐ソフトウェア・エンジニアリングの管理者とリーダーは,ソフトウェア開発の管理ならびにソフトウェア・メンテナンスの管理に対する倫理的アプローチに賛同し,それを推し進めるべきである。

 

6 専門職‐ソフトウェア・エンジニアは公共の利益と調和するよう,その専門職の倫理性と評判を高めていくべきである。

 

7 職業上の同僚‐ソフトウェア・エンジニアは他のソフトウェア・エンジニアに対して公正で協力的であるべきである。

 

8 自己の向上‐ソフトウェア・エンジニアは自己の専門職実務に関する生涯続く学習に参加し,かつその専門職実務に対する倫理的アプローチを推し進めるべきである。

 

 

ソフトウェア・エンジニアリングのための倫理ならびに専門職実務綱領

 

ソフトウェア・エンジニアリングのための倫理ならびに専門職実務綱領に関するIEEE-CS/ACM合同タスクフォース

 

綱領全文

 

序言

 

 コンピュータは商取引,産業,行政,医療,教育,娯楽,社会全体において中心的な役割を果たしており,その役割はますます増大しつつある。ソフトウェア・エンジニアはソフトウェア・システムの分析,仕様決定,設計,開発,保証,メンテナンス,テストに,直接的な参加あるいは教育を通じて貢献している。ソフトウェア・エンジニアは,ソフトウェア・システムの開発に対して果たすその役割ゆえに,

・自らが善いことをするのか,害をもたらすのか,

・他者が善いことをするのを可能にするのか,害をもたらすことを可能にするのか,

あるいは,

・他者が善いことをするよう影響を与えるのか,害をもたらすよう影響を与えるのか,

を決定づける,重大な機会に直面する。自らの取組みが善いことのために利用されることを可能な限り確実なものにするために,ソフトウェア・エンジニアはソフトウェア・エンジニアリングを有益で尊敬に値する専門職の仕事とするよう最大限の努力を投じなければならない。こうした責務に従い,ソフトウェア・エンジニアは以下の倫理ならびに専門職実務綱領を遵守すべきである。

 この綱領には,実務担当者,教師・教育担当者,管理者,監督者,方針・政策立案担当者といった専門ソフトウェア・エンジニアと,さらにはこの専門職の訓練を受けている者や学生の行動と決定に関する8原則が述べられている。これらの原則は,個人,グループ,組織が倫理的責任を負うべきどのような関係性の中に置かれているのかを示し,そしてそうした関係性における主要な義務を定めている。それぞれの原則の中で列挙されている諸項目は,これらの関係性における義務のいくつかを説明するものである。こうした義務はソフトウェア・エンジニアの人間性と,ソフトウェア・エンジニアの仕事に影響を受ける人々に対して払うべき特別な配慮,ならびにソフトウェア・エンジニアリングの実務に特有の要因に基づいている。この綱領は,ここに書かれた義務を,自らをソフトウェア・エンジニアであると考える者,あるいはソフトウェア・エンジニアになりたいと考える者すべてにとっての義務として規定する。

 この綱領のある一部分が取り出されて,それが不作為あるいは作為の過誤を正当化するために使われることは意図されていない。ここに述べられている原則と諸項目とがすべてを網羅しているわけでもない。これらの諸項目が実務のあらゆる状況における専門家の行動について,受け容れ可能なものとそうでないものとを区別するものであると考えてはならない。この綱領は倫理的意思決定を生み出す単なる倫理的アルゴリズムではない。ときには,この綱領に書かれた基準同士が対立することもあるであろうし,この綱領の基準とこの綱領以外のものに述べられている基準とが対立することがあるかもしれない。こうした場合,ソフトウェア・エンジニアには,その置かれた状況を前提として,この倫理ならびに専門職実務綱領の精神に最も合致するよう自らの行動に関する倫理的判断を行うことが要求される。

 倫理的な対立状況では,詳細な規則を盲目的に信頼するよりもむしろ,基本的な原則について注意深く考えることによって,それに最もよく取り組むことが可能となる。そうした原則とは,ソフトウェア・エンジニアに以下のようなことをするよう促すものである:

・誰が自分達の仕事に影響を受けるのかについて広い視点で考え,

・自分達ソフトウェア・エンジニアが他の人々を,当然払うべき尊敬の念をもって扱っているかどうかについて考察し,

・社会の人々が自分達の決定を,もしその内容がきちんと知らされるならば,どのように思うのかについて考え,

・最も権限・権力のない人達が,自分達の決定によってどのように影響を受けるのかについて検討し,

・自分達の行動がソフトウェア・エンジニアとしての理想的な専門家の仕事であると判断されるに値するものであるかどうかを考える。

これらのすべての判断において,社会の人々の健康,安全,福利への関心・配慮が最も重要である。すなわち「公共の利益」こそが,この綱領の中心に存在するものである。

 ソフトウェア・エンジニアリングを取り巻くダイナミックで,しかも非常に多くのことが要求される状況は,新しい事態が発生したときに,それに適応可能でかつ適切な綱領を必要とする。しかしながら,こうした一般性が求められるという点においてもなお,この綱領は,ソフトウェア・エンジニアという専門職の倫理的立場を文書化することによって,特定の問題状況において善く行動しなければならないソフトウェア・エンジニアとその管理者を支援するものである。この綱領はチーム内の個々のソフトウェア・エンジニアやチーム全体が拠り所としうる倫理的基礎を与え,ソフトウェア・エンジニアやそのチームに依頼することが倫理的に妥当ではない行動を定めるのに役立つ。

 この綱領は単に問題のある行為とはどのようなものであるかを定めるためのものではなく,重要な教育的機能をあわせもつものである。この綱領は倫理的な問題点に関するソフトウェア・エンジニアという専門職の一致した見解を書き表すものであるから,社会の人々と専門家になろうとする人々の双方に,すべてのソフトウェア・エンジニアに課せられた倫理的義務について教育を行うための手段となるのである。

 

原則

 

原則1 公共性

 ソフトウェア・エンジニアは公共の利益と調和するよう行動すべきである。特に,ソフトウェア・エンジニアは,その職に就く者としてふさわしく,以下のように行動すべきである:

 

1.01. 自らの仕事に関し,全面的な責任を負う。

 

1.02. ソフトウェア・エンジニア,雇用者,顧客,ユーザーの利益を,公共の利益に反しない範囲に止める。

 

1.03. ソフトウェアが安全で,仕様を満たし,適切なテストをパスし,かつ生活の質(QOL)の低下,プライバシーの侵害,あるいは環境への危害をもたらさないということを,十分な根拠に基づいて確信している場合に限り,そのソフトウェアを承認する。ソフトウェア・エンジニアの仕事は,最終的に公共の利益に資するものでなければならない。

 

1.04. ソフトウェア・エンジニアの理にかなった賢明な判断においてソフトウェアあるいはその関連の文書に関係すると考えられる,ユーザー,社会の人々,環境に対して現実にまたは潜在的に存在するあらゆる危険性を,適切な者あるいは権限を有する者・組織に対して公表する。

 

1.05. ソフトウェア,あるいはそのインストール,メンテナンス,サポート,文書化によって生じる重大な社会的懸念・関心事に対する取組みに協力する。

 

1.06. ソフトウェア,あるいはそれに関連する文書,手法,ツールに関するあらゆる説明・記述を,公開されるものであるときには特に,公正で,ごまかしのないものにする。

 

1.07. 身体障害,資源分配,経済的不利,さらにはその他の,ソフトウェアからもたらされる便益へのアクセスを減退させうるような問題点に配慮する。

 

1.08. 専門職のスキルを善いことをするために進んで提供するよう,またソフトウェア・エンジニアリングという学問分野に関する公教育に貢献するよう心がける。

 

原則2 顧客ならびに雇用者

 ソフトウェア・エンジニアは,公共の利益と調和しながら,顧客と雇用者の最高の利益を実現するよう行動すべきである。特に,ソフトウェア・エンジニアは,その職に就く者としてふさわしく,以下のように行動すべきである:

 

2.01. 自らの経験と教育に関するいかなる限界についても正直かつ率直になり,自らの能力の範囲内でサービスを提供する。

 

2.02. 不法にまたは非倫理的に獲得,あるいは保有されているソフトウェアを,それと知っていながら使用しない。

 

2.03. 顧客あるいは雇用者の財産を,正当に認められた方法でのみ,しかも顧客または雇用者の認識と同意のもとで使用する。

 

2.04. ソフトウェア・エンジニアが依拠するいかなる文書も,必要に応じて,それを承認する権限を有する者・組織によって事前に承認されたものであることを確保する。

 

2.05. 自らの専門職としての仕事の中で得られたいかなる秘密情報についても,その秘密性が公共の利益ならびに法と矛盾しない限り,それを維持する。

 

2.06. プロジェクトが失敗する可能性が大きい,あまりに高額になることが判明しそうである,知的財産権法を犯しそうである,あるいは何か問題がありそうだと自らが考えた場合,すみやかにそれがどのようなものであるかを確認し,文書化し,証拠を集め,顧客あるいは雇用者に報告する。

 

2.07. ソフトウェアあるいは関連する文書に関して自らが気づいた重大な社会的懸念・関心事について,それがどのようなものであるかを確認し,文書化し,雇用者あるいは顧客に報告する。

 

2.08. 自らの主要な雇用者のもとで行っている仕事に弊害をもたらす外部の仕事を引き受けない。

 

2.09. より高次の倫理的懸念・関心事との妥協・和解をはかっているのではない限り,自らの雇用者あるいは顧客に不都合ないかなる利益も求めない。より高次の倫理的懸念・関心事との妥協・和解をはかろうとする場合は,その懸念・関心事について雇用者または権限を有する他の適切な者・組織に報告する。

 

原則3 製品

 ソフトウェア・エンジニアは,その製品と,製品に関する変更が,専門家として可能な限り最高の基準に合致していることを確保すべきである。特に,ソフトウェア・エンジニアは,その職に就く者としてふさわしく,以下のように行動すべきである:

 

3.01. 高品質,受容可能なコスト,理にかなった賢明なスケジュールを追求する。このとき,これらの間の重要なトレードオフが雇用者と顧客に明確化され,受容されており,かつユーザーと社会の人々がそれについて考えることが可能であることを確保する。

 

3.02. 自らが携わる,あるいは提案するあらゆるプロジェクトに関し,適切で達成可能な目標と目的を確保する。

 

3.03. 作業プロジェクトに関連する倫理的,経済的,文化的,法的問題点,さらには環境に関わる問題点について,それがどのようなものであるかを確認し,定義し,取り組む。

 

3.04. 教育,トレーニング,経験の適切な組合せを通じ,自らが携わる,あるいは携わろうとするあらゆるプロジェクトに対して自分自身が適任であることを確保する。

 

3.05. 自らが携わる,あるいは携わろうとするあらゆるプロジェクトにおいて,適切な手法が用いられることを確保する。

 

3.06. 携わっている仕事にとって最も適切な専門職の基準が利用可能であるなら,それに従うよう仕事をする。そこからの逸脱は倫理的あるいは技術的に正当化されるときのみ許される。

 

3.07. 自らが携わっているソフトウェアの仕様に対する完全な理解を追求する。

 

3.08. 自らが携わっているソフトウェアの仕様が,よく文書化され,ユーザーの要求を満たし,適切な承認を受けていることを確保する。

 

3.09.  自らが携わる,あるいは携わろうとするあらゆるプロジェクトについて,コスト,スケジューリング,必要人員,品質,成果に関する現実的な定量的推定を確実に行い,あわせてこれらの推定の不確実性に関する評価を行う。

 

3.10. 自らが携わっているソフトウェアとそれに関連する文書に対する適切なテスト,デバッグ,検査を確実に行う。

 

3.11. 自らが携わるあらゆるプロジェクトについて適切な文書化を確実に行う。このとき,発見された重要な問題と,それに対して適用された解決策が文書に記載されるようにする。

 

3.12. ソフトウェアによって影響を受ける人々のプライバシーを尊重するようなソフトウェアの開発とそれに関連する文書の作成を行うよう努める。

 

3.13. 倫理的かつ合法的手段によってもたらされた正確なデータのみを使用し,あわせてそれを正当に認められた方法でのみ使用するよう留意する。

 

3.14. データが古くなったり,データに不備があったりしないよう注意し,データの完全性を維持する。

 

3.15. ソフトウェアのメンテナンスを,それがどのようなものであっても,新しいソフトウェアの開発のときと同じ専門家意識をもって行う。

 

原則4 判断

 ソフトウェア・エンジニアは専門家としての判断において誠実さと独立性を維持すべきである。特に,ソフトウェア・エンジニアは,その職に就く者としてふさわしく,以下のように行動すべきである:

 

4.01. あらゆる技術的決定を,人間的価値を支え,維持することの必要性を前提として調整する。

 

4.02. 自らの監督・指揮下で作成された文書か,あるいは自らの能力の範囲内にあり,かつその内容に同意した文書のみを是認・推奨する。

 

4.03. 評価を依頼されたいかなるソフトウェア,あるいはそれに関連するいかなる文書に対しても,専門職としての客観性を維持する。

 

4.04. 贈収賄,二重請求,あるいはその他の不当な金銭的行為といった,金銭に関わる詐欺的な行為に手を染めない。

 

4.05. 理にかなった賢明な対応をしたとしても避けたり逃れたりすることのできない利害の対立を,そのすべての関係者に対して公表する。

 

4.06. 自らが,あるいは雇用者や顧客がその潜在的な利害の対立を公表していないようなソフトウェア関連の問題点に関する私的な,または政府や専門職の団体に,メンバーとしてあるいはアドバイザーとして参加することを拒否する。

 

原則5 管理

 ソフトウェア・エンジニアリングの管理者とリーダーは,ソフトウェア開発の管理ならびにソフトウェア・メンテナンスの管理に対する倫理的アプローチに賛同し,それを推し進めるべきである。特に,ソフトウェア・エンジニアを管理する,あるいは指揮・指導する者は,その職に就く者としてふさわしく,以下のように行動すべきである:

 

5.01. 自らが携わるあらゆるプロジェクトに対し, 品質の向上とリスクの削減のための効果的な処置をとるといった,よい管理を確実に行う。

 

5.02. ソフトウェア・エンジニアに基準を守らせるにあたり,事前にその内容が確実に周知されているようにする。

 

5.03. パスワードやファイル,さらには雇用者あるいは他の者に秘密の情報を保護することに関する雇用者の方針と方法を,ソフトウェア・エンジニアが確実に知っているようにする。

 

5.04. 仕事の割り当てについては,それにふさわしい教育と経験を有するかを,そうした教育と経験を積ませるという意図をもあわせ考えた上で初めて執り行う。

 

5.05. 自らが携わる,あるいは携わろうとするあらゆるプロジェクトについて,コスト,スケジューリング,必要人員,品質,成果に関する現実的な定量的推定を確実に行い,あわせてこれらの推定の不確実性に関する評価を行う。

 

5.06. ソフトウェア・エンジニアの募集にあたっては,完全で正確な雇用条件を提示する。

 

5.07. 公平で正当な報酬を提供する。

 

5.08. ある者がまさに適任であるポジションに就くことを不当に妨げない。

 

5.09. ソフトウェア・エンジニアが貢献した,あらゆるソフトウェア,処理,調査・研究,著作,その他の知的財産の所有に関する公正な合意の存在を確保する。

 

5.10. 雇用者の方針やこの綱領に違反したという告発について審問するためのデュー・プロセスを設定する。

 

5.11. この綱領に矛盾するいかなる行為もソフトウェア・エンジニアに要求しない。

 

5.12. プロジェクトに関する倫理的懸念・関心事を表明したことを理由に,ある者を罰することをしない。

 

原則6 専門職

 ソフトウェア・エンジニアは公共の利益と調和するよう,その専門職の倫理性と評判を高めていくべきである。特に,ソフトウェア・エンジニアは,その職に就く者としてふさわしく,以下のように行動すべきである:

 

6.01. 倫理的に行動することに対して好意的な組織環境を作り上げるよう努める。

 

6.02. ソフトウェア・エンジニアリングについて広く社会に知らせるよう努める。

 

6.03. 専門職組織,会議,発表・出版への適切な参加を通じてソフトウェア・エンジニアリングの知識を拡張する。

 

6.04. 専門職の一員として,他のソフトウェア・エンジニアがこの綱領を守るよう努めることを支援する。

 

6.05. ソフトウェア・エンジニアという専門職,顧客,あるいは雇用者の利益を犠牲にして自らの利益を求めることをしない。

 

6.06. 法に従うことが公共の利益に矛盾するという例外的状況に置かれた場合を除き,自分達の仕事について規定しているすべての法に従う。

 

6.07. 自らが携わるソフトウェアの特性について正確に説明・記述する。このとき,虚偽の説明・記述を避けるだけではなく,それが読まれたときに,思惑が入っている,無意味,人を惑わせる,誤解を招く,あるいは疑わしいと当然考えられてしまうような説明・記述も行わないようにする。

 

6.08. 自らが携わるソフトウェアとそれに関連する文書のエラーを発見し,修正し,報告することについての責任を負う。

 

6.09. ソフトウェア・エンジニアのこの倫理綱領に対する真摯な取組みと,そうした取組みがどのような結果をもたらすのかということについて,顧客,雇用者,監督者が確実に知っているようにする。

 

6.10. この綱領と矛盾・対立するようなビジネスならびに組織への関わりを回避する。

 

6.11. この綱領に違反することが,専門職としてのソフトウェア・エンジニアであることと矛盾するものであることを認識する。

 

6.12. この綱領に対する重大な違反行為が発見されたときには,それにともなう懸念・関心事を関係する人々に公表する。ただし,このことが不可能であったり,逆効果であったり,危険であったりする場合はその限りではない。

 

6.13. この綱領に対する重大な違反行為に関係する人々との協議が不可能であったり,逆効果であったり,危険であったりすることが明らかな場合,そうした違反行為を,権限を有する適切な者・組織に報告する。

 

原則7 職業上の同僚

 ソフトウェア・エンジニアは他のソフトウェア・エンジニアに対して公正で協力的であるべきである。特に,ソフトウェア・エンジニアは,その職に就く者としてふさわしく,以下のように行動すべきである:

 

7.01. 他のソフトウェア・エンジニアがこの綱領を遵守するよう働きかける。

 

7.02. 他のソフトウェア・エンジニアの専門的能力の開発を援助する。

 

7.03. 他のソフトウェア・エンジニアの仕事については,それが完全にその者の功績であることを認め,それを不当に自分の手柄とはしない。

 

7.04. 他のソフトウェア・エンジニアの仕事の批評は,客観的,率直,かつ適切に記録される方法で行う。

 

7.05. 他のソフトウェア・エンジニアの意見,懸念・関心事,あるいは不満について,公正に耳を傾ける。

 

7.06. 他のソフトウェア・エンジニアが,パスワード,ファイル,その他の秘密情報の保護に関する方針と方法,ならびにセキュリティ対策一般を含む,現行の標準的な仕事のやり方について完全に知ることができるよう援助する。

 

7.07. 他のあらゆるソフトウェア・エンジニアに関し,彼/彼女がどのような仕事に携わるのかについて不当に干渉してはならない。ただし,雇用者,顧客,あるいは公共の利益にとっての懸念・関心事がある場合,ソフトウェア・エンジニアは誠意をもって,他のソフトウェア・エンジニアの能力に対し疑問を示すことができる。

 

7.08. 自分自身の能力の範囲外にある状況においては,そこで必要とされる能力をもつ他の専門家の意見をあおぐ。

 

原則8 自己の向上

 ソフトウェア・エンジニアは自己の専門職実務に関する生涯続く学習に参加し,かつその専門職実務に対する倫理的アプローチを推し進めるべきである。特に,ソフトウェア・エンジニアは,その職に就く者としてふさわしく,以下のように行動すべきである:

 

8.01. ソフトウェアとそれに関連する文書の分析,仕様決定,設計,開発,メンテナンス,テストに関する新たな知識の獲得を,そうした知識を獲得するプロセスの管理とともに推進する。

 

8.02. 安全で,信頼性が高く,有用で良質のソフトウェアを,受容可能かつ適切なコストで,しかも受容可能かつ適切な時間内に作成する能力を向上させる。

 

8.03. 正確で,有用な情報を与え,かつ適切に記述された文書を作成する能力を向上させる。

 

8.04. 自らが携わるソフトウェアならびにそれに関連する文書と,それらが使用される環境に関する理解を向上させる。

 

8.05. 自らが携わるソフトウェアとそれに関連する文書について規定している適切な基準ならびに法に関する知識を向上させる。

 

8.06. この綱領ならびにこれについての解釈,およびこの綱領の自分達の仕事への適用に関する知識を向上させる。

 

8.07. どのような者に対しても,不適切な偏見によって不公正に取り扱うことをしない。

 

8.08. この綱領を破るいかなる行為についても,他者がそれを行うよう影響を及ぼすことをしない。

 

8.09. 個人としてこの綱領に違反することが専門職としてのソフトウェア・エンジニアであることと矛盾するということを認識する。

 

 

 この綱領は,ソフトウェア・エンジニアリングのための倫理ならびに専門職実務(SEEPP)に関するIEEE-CS/ACM合同タスクフォースによって作成されました:

 

実行委員会:ドナルド・ゴターバーン(委員長),

 

キース・ミラー,サイモン・ロジャーソン;

 

委員:スティーブ・バーバー,ピーター・バーンズ,アイリーン・バーンスタイン,マイケル・デイビス,アム・エルカディ,N.・ベン・フェアウェザー,ミルトン・フルガム,N.・ジャヤラム,トム・ジュウェット,マーク・カンコウ,アーニー・コールマン,ダンカン・ラングフォード,ジョイス・カリー・リトル,エド・メクラー,マニュエル・J.・ノーマン,ダグラス・フィリップス,ピーター・ロン・プリンジバーリー,パトリック・サリバン,ジョン・ウェッカート,ビビアン・ワイル,S.・ワイスバンド,ローリー・オナー・ワース.

 

©1999 by the Institute of Electrical and Electronics Engineers, Inc. and the Association for Computer Machinery, Inc.

 

 この綱領は,いかなる方法によっても内容が変更されておらず,また著作権の所在が明記されている限り,許可を得ずに転載することができます。

 

日本語翻訳:村田 潔This Code was translated into Japanese by Kiyoshi Murata.