SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Bjarne Stroustrup氏との対話

開発者には”プロ意識”が必要である~Bjarne Stroustrup氏との対話~

第3回

  • X ポスト
  • このエントリーをはてなブックマークに追加

Stroustrup氏回答 4:自分の命を支えるシステム構築者がプロ意識を持ってないとしたら?

Why do I emphasize "professionalism" in a beginner's book, and what do I mean by that? My view of programming is as a tool to get results; it can, of course, also be seen as a beautiful intellectual activity of its own or as an exciting hobby, but that's secondary to me. I aim to teach people who go on to build systems on which my life and livelihood will depend one day. I want them to be responsible and competent. I want them to be economical with their time and energy. I want them to build the best systems they can. Obviously, when I designed the book and the course that it supports, I was influenced by the fact that I was (am) teaching engineers, some of whom may in a few years time be programming the plane in which I fly or some medical gadget on which I may then depend. On the other hand, I teach engineers because I want the people who build such systems to be competent. By using the word "professionalism," I mean to emphasize a responsible attitude to system development and (at least) a minimal competence. I am no fan of course focused on examples featuring class hierarchies of cute animals and great mind-bending puzzles (say, Towers of Hanoi). I'd rather see examples showing people to how to validate their inputs and how to structure their code to make undetected errors less likely. I like clever puzzles, but prefer to do them in my spare time.

 私は入門書の中で”プロ意識”を強調しています。それはなぜでしょうか。私はプログラミングを結果を得る道具とみなしています。もちろん、時代の先端を行くかっこよい知的活動や心躍る趣味とみなすこともできるでしょうが、私の視点はそこにはありません。

 私は、私自身の生命と暮らしを支えるシステムをいつの日か構築する人々の教育を目指しています。そのような人々には、強い責任感と十分な能力を備えてほしいのです。作業に投入する時間とエネルギーのバランスを考え、経済効率の改善を図ってほしいのです。彼らには最良のシステムを作ってほしいのです。

 当然、この入門書とそれに基づく教育コースを設計したときも、私の教えたエンジニアが、数年後私が搭乗する飛行機の電子部品をプログラミングをしているかもしれないし、私の健康を支える医療ガジェットのプログラマになっているかもしれない、という事を考えました。その一方で、書籍を執筆しながら、人の生命を左右するシステムを構築する人々には十分な能力を身に付けてほしいと念じました。このように、私がプロフェッショナリズムという言葉を使うとき、システム開発に対する責任ある態度と、少なくともそれを担う最小限の能力を強調しています。

 私は、かわいい動物たちで表現したクラス階層や、つい引き込まれてしまうパズル(例えば、ハノイの塔)などを主な教材とするプログラミングコースを好きになれません。どちらと言えば、入力値を検証するサンプルや未検出エラーの発生確率を抑え込むサンプルを、教材として採用してほしいと思っています。私は知的好奇心をくすぐるパズルを否定するつもりはありませんが、パズルは余暇にでも挑戦したいと思います。

現在、Stroutsrup氏が教鞭を執るテキサスA&M大学
現在、Stroutsrup氏が教鞭を執るテキサスA&M大学
It can be a problem that not all organizations appreciate professionalism and that software development does not have professional body that defines standards for the field (as have engineers and medical doctors). Professionalism is necessary not just among developers, but also among their managers. As I pointed out in TC++PL, quality software development puts major demands on technical managers. Unless a manager can say "this product is not ready, we cannot ship," we can't expect a developer working for him (or her) to do so. Professionalism cannot be just individual ethics; it must be backed up by standards. Unfortunately, I do not know who I would trust to set such standards. Software development is still a very young field compared to, say, medicine or civil engineering.

 すべての組織が”プロ意識”を評価しているわけではありません。ソフトウェア業界は、各フィールドの標準を定める専属団体を持っていません(各種工業会や医師会などは持っていますが...)。このような現状は問題です。”プロ意識”は、開発者の間だけではなく、彼らの上司であるマネージャーの間にも必要です。

 『The C++ Programming Language(Third Edition and Special Edition)』内でも触れているように、良質のソフトウェアを開発するためには、力量あるテクニカルマネージャーの存在が不可欠です。マネージャーが「この製品の品質は不十分だから、まだ出荷できない!」と宣言しない場合、他にだれが宣言するのでしょうか。開発者に期待することはできません。

 ”プロ意識”は、各個人の心のもちようではありません。個人ではなく、標準によりサポートされるべき性質のものです。しかし、残念なことに、私はそのような標準を設定する立場に立てる、信頼できる人物を知りません。ソフトウェア開発は、医学や民生工学などの他の分野と比較すると、いまだに未成熟な分野です。

対話のポイント

 筆者がStroustrup氏の論文の中で初めて”professionalism”という単語に出会ったのは、『Posting to comp.lang.c++』という論文ではないかと思います。同論文を再読してみると、「プロ意識の欠如が不毛な言語論争を招き、結局、ソフトウェア業界全体の発展を阻害する直接因子となる」と嘆いています。この嘆きは、近年でも繰り返されています。興味のある方は、ぜひ同氏の論文のいくつかに目を通してみるとよいと思います。

 今回返信されてきたStroustrup氏の回答はかなりの長文ですが、同氏の熱いメッセージも多数含まれています。英語原文と筆者の対訳を比較しながら、多少時間を掛けてお読みいただけると幸いです。これ以上のポイント解説は控えます。

 近年、C++のユーザー数が増えていると言われています。次回は、その背景などをお尋ねする予定です。お楽しみに!

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Bjarne Stroustrup氏との対話連載記事一覧

もっと読む

この記事の著者

豊田 孝(トヨタ タカシ)

「Windows PowerShell実践スクリプティング―オブジェクト指向と集合指向の統合シェル」(秀和システム発行)と「IT技術者として生き抜くための十ヶ条」(翔泳社発行)の近著2冊にて本音の数%を吐露。最近の活動傾向は、こちらを参照してください。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2971 2008/09/18 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング