勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

ソフトウェア・エンジニアと武士道、騎士道精神(アジャイル話じゃないよ)

SIerがオワコンだったり新人SEが絶望する今日この頃。組織を憂う前に自分が技術者として終らないようにするほうがよっぽど建設的だと思っている。ひとこと「勉強しよう」というのは簡単。それよりも先に、職業倫理について考えてみるのはどうだろう。

職業がプロとして成熟した証の一つは、倫理規定または職業上の行為の水準が存在することである。
ソフトウエア開発プロフェッショナル 第20章 専門的職業の倫理規定(P239)

マコネルの会社のエンジニアが最初に学ぶこと

コンストラックスは、Code Completeで有名なスティーブ・マコネルの会社である。同社の専門技術者育成プログラムがソフトウエア開発プロフェッショナルに紹介されていて興味深い。英語版は以下からダウンロードできるようだ。

ここでは入門者から指導者に至るまでの育成ブログラムが定義されている。それぞれのレベルの要件に読書リストが含まれているのが興味深い(もちろんマコネルの著書は必読)。その中で、見慣れない文書が含まれていた。

“Software Engineering Code of Ethics and Professionalism,” ACM/IEEE-CS

何かと思ったら、以下の文章のことだった。

そう、マコネルの会社ではエンジニアはかならずこの文書を読むのだ。知ってた?

エンジニア道

倫理規定と聞くと昨今ITエンジニアを縛り付けるさまざまなルールの類(コンプライアンスとかセキュリティとか)をイメージしてしまうかもしれない。けれども、それは大きな誤解だ。これはモラルの話なのである。あるいはITエンジニアにとっての武士道、騎士道精神に関することだ。

例えばこんな規定がある。

原則2 顧客ならびに雇用者
ソフトウェア・エンジニアは,公共の利益と調和しながら,顧客と雇用者の最高の利益を実現するよう行動すべきである。特に,ソフトウェア・エンジニアは,その職に就く者としてふさわしく,以下のように行動すべきである:
(中略)
2.06. プロジェクトが失敗する可能性が大きい,あまりに高額になることが判明しそうである,知的財産権法を犯しそうである,あるいは何か問題がありそうだと自らが考えた場合,すみやかにそれがどのようなものであるかを確認し,文書化し,証拠を集め,顧客あるいは雇用者に報告する。
ソフトウェア工学の倫理ならびに専門技術者実務綱領

こんなことをあなたは考えたことがあるだろうか? あたりまえ、といったらその通りなのだけれども、例えばデスマ(もしくはブラック)なプロジェクトにアサインされたときに、問題点について「確認し文書化し、証拠を集め報告」までのアクションを考えただろうか。もちろん行動したからといって事態が解消するかどうかは別の話であるが。
こういった事を考えることが、職業プロフェッショナルなのだと思う。

  • 技術者倫理は工学の大学教育では取り扱われている(私は理学部出身なので推測なのだけど)。しかし日本のITエンジニアは文系学科出身という場合も多く、技術者倫理について学ぶ機会があまりないのだろうと思う。
  • 残念なことに、情報処理試験では技術者倫理を範囲に含んでない。これは情報処理試験が資格制度ではない(試験制度である)ことも関連しているのかもしれない。技術士では倫理要項があるけれども、この資格は万人向けではない(興味のある方はこちらの記事もどうぞ)。
  • 大手SIerには(たぶん)それぞれの行動規範や倫理規定があるのだけれども、それはエンジニアの行動に関するものではなくて、単なるサラリーマンとしての行動規範になっている。そうではなくて、職業プロフェッショナルとしての行動規範について考える必要があると思っている。

そして最も重要な観点がもうひとつ。

原則8 自己の向上
ソフトウェア・エンジニアは自己の専門職実務に関する生涯続く学習に参加し,かつその専門職実務に対する倫理的アプローチを推し進めるべきである。特に,ソフトウェア・エンジニアは,その職に就く者としてふさわしく,以下のように行動すべきである(以下省略)
ソフトウェア工学の倫理ならびに専門技術者実務綱領

働き方や働く場所(ウォーターフォールアジャイルSIerサービサーetc)の議論も大切なのかもしれないけど、まず個々人がエンジニアとしてこういった行動規範でものを考え、行動することのほうが重要だろうと思う。

参考

ちなみにCode Completeは必読書の一つだと思っている

Code Complete第2版〈上〉―完全なプログラミングを目指して

Code Complete第2版〈上〉―完全なプログラミングを目指して

Code Complete第2版〈下〉―完全なプログラミングを目指して

Code Complete第2版〈下〉―完全なプログラミングを目指して