BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース プログラマーの誓い

プログラマーの誓い

ブックマーク

原文(投稿日:2017/09/16)へのリンク

社会は私たちにプロフェッショナルとしての振る舞いを要求している。人生と運命がソフトウェアの適切な構築と実行に依存しているため、私たちにはプログラマーの誓いが必要である、とRobert Martin氏は主張している。彼によると、これは将来的にはプロフェッショナル組織の会員により強制されるべきである。

アジャイルソフトウェア開発宣言の署名者の一人であるRobert Martin氏は、プログラマーはプログラマの義務の中の倫理規定を採用するべきだと提案している。

(前略) 私たちプログラマーが、プログラムを提供している人々に対して彼らがよく理解できないほどとてつもない力を持った位置に置かれており、私たちがほとんどそのこと以上のことを理解していない、という事実は依然として残っています。

大いなる力には、大いなる責任が伴います。私たちは、プログラマーとして、その責任を認識し、社会に対して誠実に奉仕するということを決意すべきです。その境界線と振る舞いの標準を設定すべきです。雇用主ではなく、政府でもなく、私たちプログラマーが、私たちの手の中にある力の責任を認めることが何を意味するのかを決定すべきです。

2014年11月に公開されたこの記事の中で、Martin氏は倫理規定に関する彼の最初のアイデアを共有した。彼は含まれるべきいくつかのポイントを示唆した。

  • 意図して損害を引き起こさない

  • ソフトウェアの目的と寿命に対して十分にプログラミングされている

  • 正直で自律的に振る舞う

この記事ではOrder of the Engineerに由来する義務に基づいたプログラマーのための誓いを提案している。

Nils Lowe氏は、素晴らしく、信頼性のあるソフトウェアを構築するためのソフトウェア開発者としての責務に関する記事を執筆した。

過去何十年の間、私たちは素晴らしく、信頼性のあるソフトウェアを構築することについて多くの学びを得ました。ソフトウェアの危機により私たちは技術的な限界を把握し、優秀なエンジニアとして、私たちは複雑性を制御するためのプロセスや方法論を編み出しました。不幸なことに、私たちは技術的課題の先を見越すこと、それから増大し続ける責任を認識することを怠っていました。

私たちソフトウェア開発者は比較的短期間に膨大な影響力を蓄積しました。しかし、増大してゆくこの影響力の責任と向き合う時間も同じく短期間でした。

記事において、Lowe氏はソフトウェア開発責任の宣言を引用した。これはソフトウェア開発者の責任について考え、議論を促すことを目的としているものである。

2015年11月、Robert Martin氏はプログラマーの誓いを公開した。彼の誓いは”コンピュータプログラマの職業の名誉を守り、保護する”ことを目的としている。彼の誓いは以下の文章で始まる。

  1. 私は有害なコードを制作しない。
  2. 私が制作したコードはいつでも最善を尽くす。振る舞い、もしくは蓄積するための構造の両面において欠陥があることを知りながら放置することはしない。
  3. 私は、各リリースにおいて、迅速かつ確信を持って、制作したコードの全ての部分が意図通りに動作することを繰り返し保証する。
  4. (...)

freeCodeCampの私が未だに恥じているコードという記事の中で、Bill Sourour氏はドラッグを勧めるオンラインクイズのためのソフトウェアを書いたことに関する物語を伝えている。彼が関わったwebサイトはドラッグに関する一般的な情報サイトであるふりをしているが、クライアントからの要件はいつも彼らのドラッグを勧めることであった。記事の最後で彼は以下のように締めくくっている。

開発者として、私たちはしばしば潜在的な危険と非倫理的な行為に対する最後の防衛戦の1つなのです。

ソフトウェアが生活の全ての側面を掌握し続ければ続けるほど、立場を明らかにして私たちの倫理がずっとコード内に存在することを保証することは私たちにとってより重要となるでしょう。

Martin氏はAgile Summit Greece 2017において、"作家の誓い"という開幕基調講演を行う予定である。このサミットは開発者、チームリーダー、マネージャー、経営者のための1日間の会議であり、9月22日にアテネで開催される予定である。InfoQはこの会議をQ&A、概要、そして記事で触れる予定である。

InfoQはMartin氏にインタビューを行い、プログラマーの誓いの必要性、誓いにより得ようとするもの、そして誓いを守っていく方法について話を聞いた。

InfoQ: どうして私たちはプログラマーの誓いを必要としているのでしょうか?

Robert Martin氏: 私たちの文明は、多くのプログラマーを含む大部分の人々が実感しているよりもっと、ソフトウェアにとても大きく依存するようになっています。今日、人生と運命がソフトウェアの適切な構築と実行に依存しています。人生と運命が懸かっているはいつでも、社会はプロフェッショナルな振る舞いに対する約束を求めます。誓いは単純にその約束の声明です。

InfoQ: あなたは2015年にプログラマーの誓いを公開しました。人々はどう反応しましたか?

Martin氏: 多くのプログラマーは熱心でした。他はばかばかしいと考えました。私は全体の反応が本当に問題だとは思っていません。問題は一般の人がこれについて何を考えたかです。そして、その延長として国会議員が何を考えたかです。結局、問題はプロフェッショナルな振る舞いに対する約束や、その振る舞いの監視・強制を必要としている、日常生活を送る普通一般の市民になるでしょう。

InfoQ: この誓いは”私は有害なコードを制作しない”という一文から始まっています。この文章について詳しく教えて頂けますか?

Martin氏: ソフトウェア開発者がユーザに対して行う可能性のある損害には2種類あります。1つはもっとも明らかなものです。ソフトウェアは失敗する可能性があります。失敗しないソフトウェアの提供に最善を尽くす約束をするのは、まったく合理的であると思います。

プログラマーがユーザに対して日常的に行なっている損害のもう1つの形は、ソフトウェアの構造です。ユーザはソフトウェアが変更しやすいと期待しています。結局それがソフトウェアなのです。ユーザはシステムが社会や技術の頻繁な変更に追従することを必要としています。私たちはソフトウェアがソフトであり続けることに対して最善を尽くす約束をするのは、まったく合理的であると思います。

InfoQ: この誓いはプログラマー一人一人が高い生産性を保ち続けることに対して最善を尽くすべきであることも示唆しています。高品質な成果物の提供を行いながら、どうやってそれを達成することができるでしょうか?

Martin氏: ああ、それは落とし穴のある質問ですね。品質を高く維持することというのは、どうやって生産性を高く維持するかということと同じです。品質と生産性が互いに相反するという考えは、ずっと私たち自身が自分に言い聞かせていた大きな嘘です。

全てのプログラマーは、ひどい構造と絡み合ったコードにより作業が明確に阻害された経験を持っています。そのコードは簡単に”書く”ことができますが、他の全員の作業速度を低下させる状態に追いやってしまいます。他の全員の作業速度低下は、システムをより悪い状態に追いやる近道を通りたくなる圧力を強めます。その結果、全体のプロジェクトが生産性0に向かって不可避に遅滞していくのです。

私に続いて口に出してください。”速く前進する唯一の方法は、上手に前進することである。”

InfoQ: 誓いを強制するのは正しいことなのでしょうか? それはどうしたら可能になるのでしょうか?

Martin氏: 最終的には、ある種のプロフェッショナル団体の会員により強制されるのではないでしょうか。雇用主は(もしかすると法律により)正会員のみを雇用するでしょう。団体の行動規範を著しく違反した会員は会員権を剥奪されるかも知れません。

私はこのようなものを実現しようとする活動において、うまく行っている試みがないことは承知しています。しかし、こうなることは必然であると考えています。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT