今年はまだ一カ月あるが,筆者の感想を言うと,今年公開された「記者の眼」のベストは,「テスト・ファーストなんて嫌いだ!」であると思う。一読して大笑いしてしまった。IT Proの井上望編集長に聞いたところ,読者からのコメント書き込みは,これまでで一番多かったそうである。

 あの記事を書いた日経ソフトウエアの真島馨記者に会ったことはなかった。しかし,あまり面白かったので彼に次のような電子メールを送った。

 「社内でメールしても意味がないが,記者の眼は面白かったよ。システム開発をテーマにした真島君の記者の眼は時々見ていたけど,今回が最高傑作かな」

 それからしばらくして,筆者は「システムズ・エンジニアが日本を救う」という原稿を書いた。実は最初,「テストファーストなんて嫌いだ!」風に書こうと試みた。だが途中まで書いてみて,ああいう原稿を書くスキルが自分にないことが分かったので,いつもの調子の原稿に戻して公開した。

 すると,その記事を読んだ真島記者から次のようなメールが来た。

 「個人的には,システムズ・エンジニアという言葉にひっかかりがないわけではありません。私はあえてプログラマという言葉を推奨したいです。業務をプログラミングする,仕組みをプログラミングするという意味を込めてです。日本ではプログラマというと,コーディングばかりする者というイメージが強くなってしまいました。谷島さんの言いたいことも分かりますが,システムズ・エンジニアという言葉が一人歩きすると,ますます『プログラマよりシステムズ・エンジニアのほうが高級』なんていう業界の悪しき習慣が増幅されるのではないかと不安です。もっともこれは,日経ソフトウエアという,プログラマ向けの雑誌を作る編集部に私がいるせいかもしれません」

 その後,真島記者と電子メールで数回やり取りをした。今回の記者の眼は,その再録である。文責は谷島にある。

設計もコーディングも全部やる「職人」がプログラマ

谷島 「業務をプログラミングする」って分かるような気もするが,よくよく考えると分からないところもあるが。

真島 プログラマとは,設計書の通りに,ただコードを書くだけの「コーダー」ではないと考えています。たまたま業務アプリケーションの開発が主流になってしまったため,設計者がシステムズ・エンジニア,コーダーがプログラマという役割分担が定着してしまっただけのことではないかと思うのです。本来,設計もコーディングも全部やる「職人」がプログラマではないでしょうか。

谷島 それなら僕の言っているシステムズ・エンジニアと同じだね。確かに優秀なシステムズ・エンジニアは,プログラミングやデバッグを今でもやっている。あるプロジェクトマネジャは,ちょっとした時間ができると現場へ行って,いきなりデバッグをすると言っていた。問題の本質は,システム作りの妙な分業・工業化にあるわけか。

真島 分業・工業化そのものは,大規模システムを開発するときに,技術者を大量動員するために必要なことだったでしょう。今後も大きなシステム開発ではそのやり方しかないでしょうね。問題は,パソコンの登場以降,システム開発の規模や開発期間がどんどん小さく,短くなっているのに,大量動員・分業化といった昔のやり方で何もかもやろうとしていることのように思われます。小型短期案件のほうが圧倒的に大規模案件より数が多いのに。ちょっと生意気な言い方になりますが,業界の慣習や開発体制が古いままで硬直してしまい,時代についていけなくなったということではないでしょうか。

谷島 ソフト会社の下請け制度なんてその典型だろうな。ソフト会社に直接頼めばいい案件を,今まで通り大手メーカーや大手インテグレータに頼んだりしている例は多いし。結局開発しているのは,大手ではなくて,中堅・中小企業のエンジニアなんだが。

プログラミング技術なしには「現場で起きていること」を理解できない

 ところで,この間のメールに「プログラマよりシステムズ・エンジニアのほうが高級なんていう業界の悪しき習慣」と書いてあった。確かに単価が違うなあ。現場の技術者の間でも,コンサルタント,システムズ・エンジニア,プログラマという序列があるの?

真島 単価が違うのは,技術者の数による違いという市場原理に基づくものだと思います。高級な仕事をしているから高給取りということではないでしょう。少なくとも私はそう思いたいです。

 序列意識はあるかもしれません。「自分はしょせんプログラマだから」と言う人はいないことはありません。しかし実際には,プログラマからシステムズ・エンジニアへ,それからコンサルタントというキャリア・パスが存在します。「今は単なるコーダーでも,分析/設計技術を身に付けて,いつかシステムズ・エンジニアあるいはコンサルタントになろう」と前向きな意識を持つ人も大勢います。

谷島 じゃあ,やっぱりシステムズ・エンジニアでいいじゃない。偏見かもしれないが,コンサルタントよりいいと思うけど。

真島 いえ,一番の問題は,プログラミング技術がまだそれほどないのに,いきなりシステムズ・エンジニアやコンサルタントを名乗る人や名乗らせる会社が存在することではないでしょうか。あるいは,かつてプログラムを書いていた人がシステムズ・エンジニアやコンサルタントになってその仕事を続けるうちに,「プログラミングなんて関係ない」と最新技術を勉強しなくなってしまう。もちろん,みんながみんな,そうではなく,しっかり勉強を続けている人もたくさんおられますが。

谷島 システムズ・エンジニアという言葉を強調しすぎると,ソフトウエア技術者がキャリア・パスを上っていくときに,プログラミングの重要性を忘れやすい,ということ?。

真島 そうです。情報システムの開発の仕事が技術的に固まっていて,何十年も何百年も同じ技術を使っていけるなら,職種に応じて技術の重要性が違ってもいいでしょう。しかし,コンピュータ技術は日進月歩です。職種が変化しても,プログラミング技術の重要性はまったく変わりません。むしろ,プログラミング技術をコアにもっていないと,現場で何が起きているかを理解できない技術者になってしまいませんか? 私がプログラマという言葉にこだわるのは,プログラマという言葉が「現場」意識を最も的確に表現しているように思えるからです。

「プログラマという職種は誇りをもって名乗れる職種」

谷島 そういえば真島君は現場経験があるんだっけ。

真島 たいしたことはしていませんでしたが,システム開発の仕事をしていた時は,分析/設計,プログラミングすべて自分たちでやってました。実際の業務における問題点やニーズを知るために,工場や製造ラインに入って実務作業もやりました。そういう経験をしてきましたので,現場の泥臭さを知らずに,教科書的な知識をふりかざす自称システムズ・エンジニアやコンサルタント,特に雑誌記者に腹が立つのです。

谷島 悪かったな。どうせ僕は現場経験ゼロですよ。ところで日経コンピュータの読者限定Webページに,東芝にいた米田英一氏が,「SEはエンジニアか?」という大原稿を書いていた(記事へ=注:日経コンピュータ読者限定ページです)。その中に,「なぜか日本ではプログラミングという仕事と,プログラマという職種が非常に軽視されている。軽蔑されているといった方が事実をより正確に反映しているかもしれない。日本のプログラマ軽視(軽蔑?)という風習がどこから始まったのかは知らないが,このような風習が二次・三次どころではない底知れない外注依存体質を招いているのだともいえる」といった下りがあった。あれ読んだかい?

真島 拝読しました。面白かったです。かなり同意です。残念ながら,日本の多くのプログラマは「あなたの職種は?」と聞かれて「プログラマです」とは言いません。「システムズ・エンジニアです」と答えるでしょう。日本では,プログラマというイメージがすっかり悪くなってしまったのです。私自身の思いとは別に,プログラマという言葉のイメージアップは現実には難しいとは思っています。

 米田さんの文章の中に,「米国のIBMなどに行けば,プログラマという職種が誇りをもって名乗れる職種であることが分かる」という下りがありました。確かに私が取材したネイティブもそんなことを言ってました。ところが,日経ソフトウエアの特集を執筆してもらった米国在住の日本人プログラマは,「米国の開発者は,Programmer(プログラマ)とかDeveloper(ディベロッパ)と呼ばれるのを嫌っているようだ。少なくとも私の周囲では,Software Engineer(ソフトウエア・エンジニア)と呼ばれるほうを好んでいる」と言ってました。プログラマという言葉は,もはや米国でも日本同様に,マイナス・イメージがあるのかもしれません。残念です。

谷島 そう悲観することはないんじゃないの。確か,IT Proの井上編集長が,「IT Proのシステム開発は非常にできるプログラマに直接発注した」と言ってたじゃない。そのできる人は,「私はプログラマと呼ばれることに誇りを感じます」と言っているそうだよ。

(谷島 宣之=コンピュータ第一局編集委員)