日本のSI業界でこそ、専門の技術者の必要性がもっと見直されるべきではないのか?

Twitterでフォローさせていただいている@chok12jaさんのつぶやき

がきっかけで、外国人の視点から日本のSI業界の問題について分析した面白い英文の記事を見つけました。
How the Japanese IT Industry Destroys Talent | Japan -- Business People Technology | www.japaninc.com
[ThinkIT] 第2回:なぜ日本のIT業界ではスーパーSEを育てられないのか (1/4)New 日本語訳が見つかりました。)
2007年に書かれた記事なのでもう4年も前に書かれたものですが、日頃から私が感じてきた業界の問題点について鋭く批評を加えており、非常に共感する内容が書かれていました。本ブログの主な読者の方々にとっても興味深い内容だと思いますので、ここで簡単に内容について紹介させていただきたいと思います。

日本のSI業界には「匠」が不在である

まず、この記事の原文のタイトルは「How the Japanese IT Industry Destroys Talent」ということで、意訳すれば「日本のIT業界ではどうして能力ある人材が育たないのか」というショッキングなものになっています。Enterpriseと書かれているので、広い意味でのIT業界というより、いわゆるSI業界の業務システムに関わる部分について書かれています。筆者はもともと日本の製造業で品質管理に関わる仕事を担当していたのちIT業界に移ったようですが、世界的にも最高水準の品質を提供している日本の製造業と比較して「匠」と呼ばれるような技術一筋の職人エンジニアがSI業界にほとんど存在しないことを最初に指摘しています。これは以前に、私もやはり、私は今後もSI業界で達人プログラマーを目指したい - 達人プログラマーを目指してで書いたように、トヨタの匠認定制度と比較して同様のことを感じていたのですが、製造業では熟練工は特定の作業工程の担当で何十年も仕事に取り組んで技を磨いているし、設計担当のエンジニアも大学で受けた工学の専門知識を発揮して部品の設計を行います。私は理科系だった*1ので高校などの同期でメーカーのエンジニアをやっている人も多いのですが、自動車でもカメラでも自分の専門分野に関してかなり細分化されているという話を聞いたことがあります。エンジンならエンジンの専門家、レンズならレンズの専門家として細分化された特定領域の設計をずっと担当するわけです。
一方でSI業界の関係者であれば誰でも知っているとおり、この業界ではエンジニアとは名ばかりであり、技術に関してまったくの素人集団で開発するものであると信じられています。この点について、そもそも日本人が英語が苦手だとか抽象的な思考が苦手という説もあるようですが、日本人でも抽象的な思考が要求される物理学などですばらしい成果を上げているという実績があるし、日本と同様に言語上のハンディのある台湾や韓国でITが進んでいるという事実を考えれば、それらは所詮言い訳でしかないと筆者は切り捨てています。

3つの負のスパイラル

筆者は日本のSI業界で世界に通用する技術者が育たない理由については、業界構造上の問題があると指摘します。そして、

  • 産学の連携に関するスパイラル
  • ソフトウェアベンダーとユーザー企業間のスパイラル
  • SIerとユーザー企業間のスパイラル

の3種類の負のスパイラルが存在しているとしています。
まず、最初の産学連携のスパイラルに関しては以下のように指摘しています。

Japanese companies typically make a huge effort to re-educate new employees. There is no system in place at most corporations to evaluate and reward university graduates on what they have learnt in school, or to encourage them to apply their knowledge to their business.

日本の企業は新人の再教育に多大な努力を払っている。ほとんどの会社では大学の卒業生に対して学校で学んだことに対して評価し、報いるしくみがなく、また、仕事に対して彼らの知識を適用させようとも考えない。

This first spiral relationship results in a significant gap between academic research and industrial application. It can be thought of as a fundamental contributor to the current low-level application of software engineering principles, as well as conceptual architecture skills to IT projects in Japan.

この最初のスパイラル関係によって学術研究と産業との間に重大な溝が生じる結果となっている。まさに、この事実こそが、ソフトウェア工学の原理に加えて、ITプロジェクトに対する概念的なアーキテクチャー構築スキルが現在ほとんど活用されていないという事実に対する根本的な原因となっていると考えられるのだ。

これも周りで実際に良くささやかれていることですが、大学でせっかく専門のソフトウェア工学の知識を学んでもその知識を活用する場所が無いだけでなく、逆に体育会系的な会社の教育で鍛えられ直され、間違った規約をだめな先輩社員から押し付けられるといったことも日常茶飯事です。実際、以下のようなストーリーは単なるフィクションではなく、さまざまな会社で繰り返し繰り広げられているのではないかと思われます。
高慢と偏見(3)コードレビューは踊る:Press Enter■:エンジニアライフ
こうした事実は他の技術に基づく産業では考えられないことだと思いますし、むしろ、技術の進歩の激しいIT業界であればこそ、大学で最新の技術を学んだ学生は本来貴重な戦力になってしかるべきなのです。ところが逆に日本のSI業界は大学の知識は役に立たないと思われている*2のか、まったくITの知識のない文系の学生が歓迎されるということすらあるようです。海外であれば経験年数が少なくても優秀なプログラマーは高給で評価されるのが常識であるというのに、本当になんという情けない状況なのでしょうか。
次に、第二のスパイラルとして、日本ではパッケージソフトウェアの導入がほとんど進まないという事実が指摘されています。

Generally speaking, US IT managers place a strong emphasis on the importance of system architecture when deploying business solutions. In turn, software vendors utilize the latest architecture concept to constantly enhance their product. Implementation services vendors also conduct project management that reflects the benefits that were brought about by the latest architecture.
一般的に言って、アメリカのITマネージャーは業務システムを使ったソリューションを展開するにあたってシステムのアーキテクチャーを非常に重視する。それゆえ、ソフトウェアベンダーはアーキテクチャー上の最新の考え方を活用して常に彼らの製品を強化している。サービスを実装するベンダーも最新のアーキテクチャーによってもたらされるメリットを活用する方向でプロジェクトを遂行する。
Instead of adopting an IT architectural based strategy, most Japanese user corporations are very particular about usability and the cosmetic details of screen design. Such demands do not encourage IT vendors to pay attention to the overall system architecture, or to reuse existing package software to effectively assemble business solutions. Instead, most vendors are more inclined to develop their own custom solutions from scratch in order to cope with detailed requirements, regardless of whether those requirements contribute to differentiatiation of the users’ business.
アーキテクチャーの基礎に基づいた手法を採用する代わりに、たいていの日本のユーザー企業は使い勝手や画面の見栄えなどの細部にこだわる。それゆえ、ITベンダーに対してシステムの全体的なアーキテクチャーについて注意を払ったり、既存のソフトウェアパッケージを再利用して効率的にビジネスソリューションを構築することを推奨しない。逆に、たいていのベンダーは細かい要件(それがユーザーのビジネスにとって価値があるものかどうかにかかわらず)に対処するために、スクラッチで独自ソリューションを開発する傾向がますます強くなる。

日本の開発手法だと、画面の見栄えなど重箱の隅をつつくような細かい要件の実装にばかり労力が割かれる傾向があり、その結果パッケージを再利用したり、SOAなど適切なアーキテクチャーを採用することが困難になるとしています。その結果、世界で通用する業務パッケージを開発するような方向にならないと分析しています。
最後に、第三のスパイラルでは、いわゆるSIerとユーザー企業の関係の問題点について触れています。ここではこのブログでも何回か取り上げてきたように、非効率な人月のビジネスモデルや多重下請け構造の問題点について説明されていますが、特に以下の部分の辛辣な指摘は興味深いものです。

In most projects that I have known, the project managers spend all day long on the phone. Japanese project managers tend to focus solely on people management and give less importance to scientific project management methods.
私の経験したほとんどのプロジェクトにおいて、プロジェクトマネージャーは一日中電話をして過ごしていることが普通だった。日本のPMは人の管理のみに考えを集中させる傾向があり、科学的なプロジェクト管理の手法を重視することはまれである。
Instead of being evaluated on their capability to manage the overall system architecture, Japanese IT project managers are often assessed on how they can personally relate to the team members. Taking team members out for a drink, listening to their personal issues, serving as both counselor and cheerleader, are important to strengthen a project manager’s people network. When troubles occur during the project, the project manager uses his networking skills to motivate his troops. The ability to send more people to a troubled project and request members to work longer hours to resolve troubles without complaint is generally expected and evaluated by the customers.
日本のITプロジェクトマネージャーはシステムの全体的なアーキテクチャーを管理する能力によって評価されるのではなく、プロジェクトメンバーと個人的な関係を構築する能力で評価されることが多い。チームメンバーを飲みに誘ったり、個人的な問題の相談にのったりすることで、カウンセラーやチアリーダーとしての役回りを果たすことが人脈を構築する上で大切である。プロジェクトが火をふいたときにはPMはこの人脈構築スキルを利用して自分の「部隊」を鼓舞する。火をふいたプロジェクトにどれだけの人を投入できるか、また、メンバーに対して文句を言わせずに長時間火消し作業に従事させることができるかという能力が、普通に顧客から期待され、評価されるのだ。

もともと、この文章の筆者はスタンフォード大学で工学を学んだバックグラウンドを持つ人なので、余計に日本のやり方に問題を感じてしまうということはあるのかもしれませんが、製造業との対比や外国のITプロジェクトとの対比において、日本のSI業界の開発手法がいかにエンジニアリング本来のあるべき方向からかけ離れたものであるかという点に関する指摘は非常に説得力があります。日本の業界の中で働いていると現状が当たり前と考えてしまうがちですが、こうした外国人の視点での意見を聞くと問題点が明確に浮き彫りにされますね。もちろん、筆者はこれらの負のスパイラルを解消していこうということを結論として主張しています。

技術的な基礎無くしてビジネス上のアイデアは実現できない

日本だとこうした業界の問題を改善しようとしないだけでなく、最近では

  • クラウド時代なのだから、ITエンジニアの技術力は不要*3
  • プログラミングだけでなく同時にビジネスを考えられるようにならなくてはいけない*4

などといった意見が上流のコンサルの人だけでなく、アルファギークとされる人からすら正当な意見として聞かれるようになっています。こういった意見は技術の詳細を知らない人にとっては響きのよく聞こえるものですし、説得力のあるものとして受け止められてしまいがちですが、私はこうした意見には正直賛同することができません。基礎的な技術の重要性を無視して問題をあまりにも単純化し過ぎているように思われるのです。
今震災で電力の不足が首都圏で深刻な問題になっているのですが、我々は日頃は発電所でどうやって電気が発電されるのかなどということは考えないものです。今まで電気は空気のような存在であってそれがどのように作られて家まで届けられるのかなどということは全然意識していませんでした。しかし、実際には原子力発電所などでは膨大な専門知識が活用されているという事実を思い出す必要があります。自動車にしても、カメラにしても、高層ビルにしても、利用者の立場からするとエンジニアリングや基礎科学の重要性を我々は忘れてしまいがちなのですが、背後では専門的なエンジニアや科学者の膨大な研究と努力が払われているということを忘れてはならないと思います。*5どうしてIT業界に限って技術onlyの専門家の存在が認められないのでしょうか?プログラミングの専門家や基盤の専門家の価値がどうして認められないのでしょうか?
私はこの業界で、最近特に、IT技術の専門家の存在価値を認めないような意見が当然のこととして出てくることに驚きを感じざるを得ません。高度なITビジネスのソリューションを構築するためには、その基盤となる高度なIT技術の専門知識が必要なことは本来は当然のことと言えるのではないでしょうか。大量のデータを効率的に処理するために分散処理のメカニズムを設計したり、必要な基盤のキャパシティーを見積もったりすることは当然として、仮にSalesforceのような便利なパッケージを流用できるとしても、今度はパッケージやツールに関する深い専門知識や特徴を理解せずに適切なシステムを構築することは不可能です。しっかりとした技術の基礎を受け入れることができていない状態で、ビジネスのソリューションを考えるということは、電気も水道もない未開の大陸に科学の知識や技術的な基礎無くして商業施設を構築するなどということと同様に馬鹿げたことといえるのではないでしょうか?
もちろん、この英文の記事が指摘する負のスパイラルにより、SI業界におけるエンジニアの作業が非生産的で労働集約的な作業になってしまっています。その結果、単価競争に巻き込まれてしまい、技術だけではお金にならないというのは残念ながら事実かもしれません。しかし、ビジネスのソリューションを考えるということ以前に、オブジェクト指向による再利用や科学的なプロジェクトマネジメントの手法など技術的な基盤を浸透させるということを決して忘れるべきではないですし、そのための技術の専門家が待遇面でも責任でも、もっと評価されるような構造にSI業界をリファクタリングすることがまず先決であろうと考えます。中国で基礎工事がしっかりとできていないビルが地震もないのに簡単に崩壊してしまったという話もありましたが、土台なしで上っ面のビジネスを考えるだけでは結局うまくいかないと私は思います。
震災で仕事が激減するなど、今後業界全体として当然困難な状況が予想されるわけですが、こうした厳しい状況に直面した今こそ、従来から長いこと放置されてきた業界の負のスパイラルの解消に向けて真剣に取り組むべき時なのではないでしょうか。
(追記)
コメントで日本のSI業界の将来について悲観的なご意見も多くいただきましたが、SI業界が対象としている業務システムの将来性がないとか面白みがないということとは別として考える必要があると思います。
エンタープライズ開発者が負け組として軽蔑される日本のSI業界って - 達人プログラマーを目指して
また、実際に、アメリカでも業務システム関連の開発者が多いと考えられますが、それでも、IT関連は人気の職種になっているという事実もあります。
ソフトウェアアーキテクトほど魅力的な職業はない!?(アメリカでは) - 達人プログラマーを目指して
このエントリーの元記事が渡米経験もあるシンガポール香港人によって書かれたものであるということもポイントです。つまり、海外でうまくいっているという事実が既にあるのですから、負のスパイラルを我々が本気で解消することを願えば、きっと良い方向に改善されるのではないかと信じるのです。

*1:ただし、私はソフトウェア工学や計算機科学の専門教育を受けていません。そういう意味で私自身も本当の意味でコンピューターの専門家を名乗る資格がないかもしれません。

*2:実際、海外に比べて日本の情報関係の学部ではプログラミング、ミドルウェアなどに関する実践的な教育からかけ離れた理論にカリキュラムが偏っているという指摘もあるようです。

*3:情報システム部員のための社内営業のススメ (1/3) - ITmedia エンタープライズ

*4:http://engineer.typemag.jp/slive/2011/04/-sise.php

*5:明王エジソンも天才は99パーセントの努力と1パーセントの霊感と言っていますが、表面上の成功の前には失敗も含めておびただしい回数の試行錯誤があることを忘れてはいけません。