プログラマと職業倫理

プログラマと職業倫理

こんにちは、あのぶるです。
今回は仕事として……と言うより他人に専門技術を提供する全ての人の心にあって欲しい「職業倫理」について書きたいと思います。

「職業倫理」とは簡単に説明すると「(特に、専門性の高い)特定の職業の人が守るべきとされる道徳や行動規範」のことです。
インターネット上で職業倫理のことを調べておそらく一番最初に見かけるのが「ヒポクラテスの誓い」と呼ばれる医療従事者の行動規範を示したものかと思います。この文章は今でもその精神を受け継ぎつつ、現代社会に沿ったものに整えられ広く使われているそうで、そのうちの一つを世界医師会のサイトでジュネーブ宣言として読むことができます。

さて、今回は「プログラマの職業倫理」を「プロフェッショナルとしてコンピュータ技術を扱う上で守るべきとされる行動規範」と捉える形でお話をしたいと思います。
この分野の行動規範としておそらく一番有名なものの一つがUNIX系OSで初めてsudoコマンド(システム管理者の権限を使って操作するためのコマンド)を実行した時に表示される文章でしょう。

あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:

#1) 他人のプライバシーを尊重すること。
#2) タイプする前に考えること。
#3) 大いなる力には大いなる責任が伴うこと。
(sudoのソースコードリポジトリより)

余談ですが、「大いなる力には大いなる責任が伴うこと。」の英語原文”With great power comes great responsibility.“はスパイダーマンからの引用と言われています。

開発者がシステムに対して持つ権限というのはとても強力で、特に本番環境を扱うことができる人であればちょっとした作業で簡単に他人のプライバシーを暴いたり、システムを壊してしまえる力を持っています。そのような可能性を持つ力を行使することが本当に正当な行動であるか、よく考えることを求めている文章です。

もう一つ、RFCにも「Ethics and the Internet」という題で同様の趣旨の文章が公開されています。
この文章を読んで、もしかしたらインターネット利用者全員に対して『プロフェッショナルとしての責任』を求めていることに違和感を覚えるかもしれません。文章が公開された当時、インターネットはまだ学術的な研究者のためのネットワークだったのです。

原文
IPAによる日本語訳

私たちプログラマが扱うシステムが持つ情報は様々です。初めから全世界に公開されることを前提とした情報もあれば、情報の存在が公になってしまうだけで誰かの人生に大ダメージを与えてしまうような非常にセンシティブな情報もあります。特に、「その情報がその人にとって重要でないこと」の判断は困難を極めます。例えば、「特定のある人がある時間帯に居た場所」という情報は一見些細なように見えて「その時その場所に居たことを知られると困る」という人にとって同意なく公開されてしまうことは重大なプライバシーの侵害になります。
(具体例を挙げると芸能人が非公表の恋人と一緒にいる情報が漏洩してしまい、大問題になるケースが分かりやすいと思います。個人的には芸能人であれプライベートは尊重されるべきと考えています)
これは一般的な守秘義務にも繋がる話ですが、「業務上知り得る非公開の情報を本人の同意なく公開しない」というのは基本的な職業倫理の一つです。

現実には、様々な背景からとは言え、どんな理由があろうと正当化されることはありませんが職業倫理から外れる行動を取ってしまう事案は後を絶ちません。残念ながら故意過失を問わず今後も全くのゼロになることは決してないでしょう。
プログラマとして仕事をする時、資質の一端として要求を素早く実現する技術力が問われることはもちろんですが、「自分たちがやろうと思えば出来てしまうこと」を知り、それを正しく扱う心構えを持っていることも重要なことです。一方で、精神的その他の理由で追い詰められて「手を出そうとする気持ち」を起こしてしまわない、追い詰められない環境作りも同時にとても重要なことであると私は考えています。

プログラミングとは何か〜その3: 間違いなく指示をするためのあれこれ

プログラミングとは何か〜その3: 間違いなく指示をするためのあれこれ

こんにちは、あのぶるです。

一応シリーズ最終回の今回は、コンピュータになるべく楽に、間違いなく指示をするためにどうしたらいいか、という話をしたいと思います。
前回までの記事はこちらからどうぞ。


Read More

プログラミングとは何か〜その2: コンピュータに指示を与えるということ

プログラミングとは何か〜その2: コンピュータに指示を与えるということ

シリーズものの記事ではあるのですが、「前の記事を読んでいないと全くわからない」ということはおそらくないと思います。
が、もしよろしければ前回の記事もご覧いただけると嬉しいです。

こんにちは、あのぶるです。

前回の宣言どおり、今回は「コンピュータに指示を与える」とは一体どういうことなのか?というお話をしたいと思います。

Read More

プログラミングとは何か〜その1: コンピュータが出来ること

プログラミングとは何か〜その1: コンピュータが出来ること

こんにちは、あのぶるです。

「プログラミングって何?」と質問をされたとき、あなたはどのように答えますか?
RFC等で明確に定義があるわけではないようですが、現在では概ね「(プログラミング言語を使って)コンピュータへの命令を作成すること」という説明がされているようです。
私はよく、もう少しだけ噛み砕いて「コンピュータへの作業指示を作ること」と説明しています。

コンピュータへの作業指示とは?という話をする前に、まずは「そもそもコンピュータは何をしているのか」という話をさせてください。

Read More