勘と経験と読経

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

ソフトウェアエンジニアのコンピテンシとか倫理とか

自戒を込めて。割とこだわっているソフトウェアエンジニアのコンピテンシと倫理について。「IPA/SEC Journal に寄稿: ソフトウェア品質プロフェッショナルに求められる専門性と倫理性: 知識、スキル、コンピテンシ、倫理綱領 | Reliable Software Engineering, Washizaki Laboratory」という記事が興味深かったのでその感想など。

http://www.flickr.com/photos/12426416@N00/1228875390
photo by Dunechaser

コンピテンシなどについての様々な枠組み

上記で公開されている寄稿は「スキル、知識、コンピテンシ、倫理要領」に関するものなのだけれども、スキルと知識の部分についてはコメントは省略(そもそもソフトウェアエンジニア全般ではなくて、品質プロフェッショナルに関する記事である)。

コンピテンシと倫理要領についてはエンジニア全般に関する話だと思って興味深く読んだ。現状メジャーな各種の枠組みが紹介されており、不勉強で知らないものも多く勉強になる。いくつかについては別途いろいろ調べてみた。

SWECOM (The Software Engineering Competency Model)

現在パブリックレビューが終了して、公開に向けて準備中(?)の模様。現在パブリックレビュー版の文書やレビューコメントが閲覧できる。アメリカ合衆国労働省が定めるIT技術者向けのコンピテンシーモデル(?)と互換の模様。

  • Behavioral Attributes and Skills(行動属性)…適正、情熱(?)、倫理、意欲、信頼、文化的感受性、コミュニケーション力、チーム活動、リーダーシップ
  • Cognitive Skills(認知能力) …推論、分析、問題解決、発想
  • Requisite Knowledge (必要知識)
  • Related Disciplines(関連分野) …コンピュータサイエンスとか数学とか

がベースにあって、その上に「Technical Skills(技術スキル)」が乗っかっている形である。

情報処理学会 認定情報技術者 倫理要綱・行動規範

その存在は知っていたけど、あらためて確認。冒頭紹介の寄稿でも触れているのだけれど、国内で広く活用されている情報処理技術者試験は、スキル面の(ある種の)確認にはなっているけれども、倫理面はまったくフォローしておらず、職業プロフェッションを確認することが出来ない点が少し残念なものだった。これを補完するものとして、もっと活用されると良いと思う。

ここで揚げられている要綱は次の6つである。前半の3つは会社の倫理要綱などで一般的に定められるものなのであえて確認する必要は無いだろう。後半3つについていかに真摯に取り組めるか、がポイントだと思う。

  1. 社会のルールを守る。
  2. 他者の権利を尊重する。
  3. 契約を遵守する。
  4. 職務を誠実に遂行する。
  5. 誠実な活動を通して、社会的な信頼を得る。
  6. 自己研鑽を行い、技術力の向上に励む。

ただ、残念ながらそれぞれの項目についての記載が簡潔すぎる。

4-2 顧客が満足する成果や社会に役立つ成果を通して、専門家としての地位を確立する。
4-3 事実やデータに基づいて真実を述べる。また、自分の発言に責任を持ち、約束は実行する。
(中略)
5-1 公益の確保に努める。
5-2 利益相反に直面した場合は、第三者に判断をゆだねるなどして、利益相反を避ける。
(中略)
6-1 常に自己研鑽に励み、必要な専門能力の向上、及び最新の知識獲得に努める。
6-2 自身の業務成果について積極的に社会に対して発信し、後進の育成にも協力する。

私は“Software Engineering Code of Ethics and Professionalism(ACM/IEEE-CS)"が好きで、これくらい細かく書いても良いと思う(それがエンジニア向けのものであるのなら)。ACM/IEEE-CSの倫理規定については、以下の記事で以前にも書いている。

冒頭で紹介した寄稿記事にある通りだけれども、社会的に重要な専門職業(プロフェッション)と認められるためには、知識やスキルといった専門性だけでなく、倫理性を持つ必要がある。冒頭記事は品質プロフェッショナルに関する言及だったけれども、もっと大きな枠組みでのITエンジニアとして、国内には適切な枠組みが無いという理由もあり欠けがちな「倫理」について意識していく必要があると考える今日この頃。