あのぶるTweetこんにちは、あのぶるです。昨年末の紅白歌合戦はご覧になりましたか?鋭い方はこの質問で何を話題にするかお気付きになったかもしれません、今回は紅白歌合戦でも披露された「AIひばり」を下敷きに、「プログラマの倫理」を前回とはまた別の側面から考えていきたいと思います。あのぶるTweetこんにちは、あのぶるです。「続・基本情報のすすめ」と題してお勧めしたいと思います。......とは言え、言いたいことはタイトルの通り、「基本情報の勉強をしましょう!」で終わってしまうのですが、今回は基本情報を受ける、と言うよりはむしろその範囲の知識を身に着ける必要がなぜあるのか、と言うお話をもう少しだけ掘り下げてできたらと思っています。Japanブログにて紹介した記事全体の翻訳が公開されています。(当然ですが)より正確な翻訳になっていると思いますので、是非ご覧ください。こんにちは、あのぶるです。今回は先日Twitterでコードレビューが話題になった際に出会った「Googleのコードレビューの心得」的記事を紹介しようと思います。あのぶるTweetこんにちは、あのぶるです。今回は仕事として......と言うより他人に専門技術を提供する全ての人の心にあって欲しい「職業倫理」について書きたいと思います。「職業倫理」とは簡単に説明すると「(特に、専門性の高い)特定の職業の人が守るべきとされる道徳や行動規範」のことです。インターネット上で職業倫理のことを調べておそらく一番最初に見かけるのが「ヒポクラテスの誓い」と呼ばれる医療従事者の行動規範を示したものかと思います。この文章は今でもその精神を受け継ぎつつ、現代社会に沿ったものに整えられ広く使われているそうで、そのうちの一つを世界医師会のサイトでジュネーブ宣言として読むことができます。今回は「プログラマの職業倫理」を「プロフェッショナルとしてコンピュータ技術を扱う上で守るべきとされる行動規範」と捉える形でお話をしたいと思います。この分野の行動規範としておそらく一番有名なものの一つがUNIX系OSで初めてsudoコマンド(システム管理者の権限を使って操作するためのコマンド)を実行した時に表示される文章でしょう。あなたはシステム管理者から通常の講習を受けたはずです。他人のプライバシーを尊重すること。タイプする前に考えること。大いなる力には大いなる責任が伴うこと。(sudoのソースコードリポジトリより)余談ですが、「大いなる力には大いなる責任が伴うこと。responsibility.“はスパイダーマンからの引用と言われています。開発者がシステムに対して持つ権限というのはとても強力で、特に本番環境を扱うことができる人であればちょっとした作業で簡単に他人のプライバシーを暴いたり、システムを壊してしまえる力を持っています。そのような可能性を持つ力を行使することが本当に正当な行動であるか、よく考えることを求めている文章です。Internet」という題で同様の趣旨の文章が公開されています。この文章を読んで、もしかしたらインターネット利用者全員に対して『プロフェッショナルとしての責任』を求めていることに違和感を覚えるかもしれません。文章が公開された当時、インターネットはまだ学術的な研究者のためのネットワークだったのです。Internethttps://tools.ietf.org/html/rfc1087IPAによる日本語訳www.ipa.go.jphttps://www.ipa.go.jp/security/rfc/RFC1087JA.htmlhttps://www.ipa.go.jp/security/rfc/RFC1087JA.html私たちプログラマが扱うシステムが持つ情報は様々です。初めから全世界に公開されることを前提とした情報もあれば、情報の存在が公になってしまうだけで誰かの人生に大ダメージを与えてしまうような非常にセンシティブな情報もあります。「その情報がその人にとって重要でないこと」の判断は困難を極めます。「特定のある人がある時間帯に居た場所」という情報は一見些細なように見えて「その時その場所に居たことを知られると困る」という人にとって同意なく公開されてしまうことは重大なプライバシーの侵害になります。(具体例を挙げると芸能人が非公表の恋人と一緒にいる情報が漏洩してしまい、大問題になるケースが分かりやすいと思います。個人的には芸能人であれプライベートは尊重されるべきと考えています)これは一般的な守秘義務にも繋がる話ですが、「業務上知り得る非公開の情報を本人の同意なく公開しない」というのは基本的な職業倫理の一つです。現実には、様々な背景からとは言え、どんな理由があろうと正当化されることはありませんが職業倫理から外れる行動を取ってしまう事案は後を絶ちません。残念ながら故意過失を問わず今後も全くのゼロになることは決してないでしょう。プログラマとして仕事をする時、資質の一端として要求を素早く実現する技術力が問われることはもちろんですが、「自分たちがやろうと思えば出来てしまうこと」を知り、それを正しく扱う心構えを持っていることも重要なことです。一方で、精神的その他の理由で追い詰められて「手を出そうとする気持ち」を起こしてしまわない、追い詰められない環境作りも同時にとても重要なことであると私は考えています。