■「システムエンジニア」はシステムを知らなくでもいいのか?
1970年から80年代にかけては、ソフトウエア開発の需要が急増し、ソフトウエア技術者が不足している中、新卒者がまだソフトウエア開発やプログラミング技術などを十分に修得しなくても開発プロジェクトに参加させ、「システムエンジニア」の仕事を企業から任されることが多かった。データの構造、システムの仕組み、アーキテクチャの設計などを理解しないまま、システム設計を進めることもあった。その結果、作ったシステムが動かない、或いは、ユーザーの要望に合わないものとなる。また、アーキテクチャの設計をせず、シンプルな処理でも複雑な仕組みをし、開発コストが増加し、メンテナンスの負荷も大きくなってしまうケースも少なくなかった。そこでは、プロジェクトの中断・キャンセルなどに至ることも散見された。
バブル経済の崩壊によって、企業がコストを重視し、失敗してもいいという“甘い時代”が終わり、開発コストを如何に抑えるのかは、各ITベンダー企業がシステム開発を売り込む上で最大の争点とされるようになってきた。数年前より、いろんなIT企業が開発コストを抑える手段の一つとして、海外でのソフトウエア開発事業の展開、すなわち、オフショア開発を始めた。過去のオフショア開発では、上流工程は日本の「システムエンジニア」が担当し、コーディングだけを海外に依頼することが主流になっていた。しかし、低コスト、短納期、高品質というオフショア開発のメリットを発揮することのできない企業が多く、その原因の一つとして、ユーザーが望んでいる「するべきこと」、「あるべき姿」を上流工程で得られなかったことがあげられる。
■ユーザーになりきれない「システムエンジニア」は、ユーザーのシステムを エンジニアリングできるのか?
私の10数年間ソフトウエア開発経験の中、「失敗した」という経験はなかった。なぜ、ここまで言い切れるのか? それは、私自身が情報処理技術者でもあり、ユーザーでもあるからだと思う。自分の経験では「システムエンジニア」は、まずエンジニアであること、その意味は、システムの視点と設計技術を知った上で、システムをエンジニアリングすることである。そして、情報処理技術を知っている「システムエンジニア」は、「上流工程」に進む前に、まず、自分自身がユーザーになり、ユーザーの気持ちを理解することが、大変重要だと思う。ユーザーの身になりきれなければ「上流工程」をうまく進めることはできない。しかし、現在のIT業界で、動かないコンピュータ、失敗したプロジェクトが多いのは、情報処理技術を知らない「システムエンジニア」が、ユーザーの気持ちをよく理解できずに問題を洗い出せない、技術を知らないので解決のポイントが見えない、プログラマに処理すべき情報を正しく伝えられないからである。
本来、「システムエンジニア」は、情報処理技術とユーザーの業務システムの両方を知った上で「上流工程」を進め、技術についてはすべて技術者に任せるべきではないか。「システムエンジニア」は、エンジニアとしての色がだんだん薄くなってきているのが、現在のIT業界スタイルの一つになっている。
■以前の素晴らしい「システムエンジニア」の開発スタイルを活用することができるのか?
数年前まで、日本の上流工程は、有能なベテランの「システムエンジニア」が担当していた。彼らは、ユーザーの抱える課題・要求・要望を細かく分析し、ユーザー毎にシステムを考え、機能、パフォーマンスなどのデザインを精密に設計し、機能性、人間性、創造性、そして企業の強み、思い、使う人に与える無形のメッセージ、・・・、形のない想いをソフトウエアに与えてきた。他の分野のデザイナー達と同じく、ユーザーのための気配りの心は、品質とサービスに優れた、日本のソフトウエア職人魂を創りあげてきた。そして世界中のソフトウエア技術者に尊敬されてきたのである。
私は、情報処理技術者でありながら、美術に対する興味があって日本の工業デザイン専攻の大学院に入り、もの・ことのデザイン、問題のデザイン、人間工学、デザイン心理学、視覚意匠、工業デザインなどを学んできた。さらに、日本の某企業でプロダクトのデザインを経験したことにより、日本のデザイナーが、常に使用者の立場に立って、形だけではなく形のない想いをプロダクトに投影し、使用者に喜びを与えるという真心に触れ感動した。ソフトウエア開発の本質は「設計」であり、ソフトウエアの設計を担当している「システムエンジニア」は、「情報処理のデザイナー」でもある。プロダクトデザイナーと同じく、「システムエンジニア」もデザイナーとしての魂を持たなければならない。
しかし、バブル経済時の日本IT業界では、「システムエンジニア」が流行職種となり、「システムエンジニア」の基本知識(情報処理知識+業務知識)、システムを実現する技術力(データ構造+システム構造+プログラミング技術)を持っていない「システムエンジニア」が急増した。現在、団塊世代の有能なベテランの「システムエンジニア」の退職によって、業務フロー・データ構造・システム構造など設計図を読めない「システムエンジニア」に「システム」設計を任せる企業が増えてきている。“失敗”を少なくするための標準化が進められ、新人でもマニュアルに基づいて仕事を何とか進められるようになった。しかし、企業の強み、思い、独創性は徐々に失われ、物事を積極的に考えることが少なくなり、マニュアルに頼ることが一般的になり、IT業界における考える人材はさらに少なくなってきている。
■ オフショア開発のあり方についての考え
私は、中国の大学情報処理学科の卒業生で、中国の事情はよく知っている。中国では「システムエンジニア」という称号を与える時、情報処理の基本知識が基本条件になっている。そして3年以上のプログラミングとプロジェクトの実務を経験し、さらに「システムエンジニア」の試験に受かることが条件である。
「システムエンジニア」は一つの職種ではなく、一つのキャリア・パスになっている。プロジェクトマネージャが全員「システムエンジニア」の出身であることも一般的である。中国国内でERPなどのシステムを開発するのは、日本より難しい。阿吽の呼吸のような摺り合わせもあるし、仕様変更は日本よりも多い。しかし、中国の「システムエンジニア」は、情報処理の基本知識を持っているので、上流工程でもアーキテクチャの目線で実装レベルのイメージを考えながら、ユーザーの要求・要望を理解することができる。簡単に言うと、データフローと業務フローを同時に交差的にイメージすることが、中国の「システムエンジニア」のやり方である。安易にツールを使ってシステム開発をするのではなく、(その理由は、例えば上流工程からUMLを使って、コーディングまでを「自動的に」作成することは、仕様の頻繁な変更に対して、ユーザーの思いに合わない恐れがあるため。)それぞれの開発フェーズを経由し、納品まで同じ「システムエンジニア」が関与している。現在、納品までを担当することができる「システムエンジニア」にプロジェクトリーダーとしての責任を与えている。従って、技術力と実務経験のある外国人の「システムエンジニア」を日本のIT業界に取り込むことは、日本ソフトウエア産業の技術者不足からやむを得ないことと言える。今後のオフショア開発の形態については、日本の「システムエンジニア」が世界に誇るデザイナーの心を持ちながら、情報処理の基本技術を身に付け、しっかりとした上流工程での結果を実現させるために、海外の多数の技術者をパートナーとして、共
同でユーザーのシステムの提案及び開発をサポートすることになるだろう。
尚、グローバルビジネスの視点から見ると、最近では、日本の企業活動のグローバル化に伴い、IT開発分野を中心とするオフショア開発は、低コストだけを求めるのではなく、グローバル市場を睨んでグローバル・シェアリングを追求するように変化してきている。国境のない真のグローバル開発環境になる時期が来ている。
■執筆者プロフィール
氏名 :戴 春莉(たい しゅんり)/情報システム監査士
得意分野 :デザインの手法を情報処理技術への応用、上流工程の要求分析、
問題デザインと可視化など
メールアドレス:dai-jp@leto.eonet.co.jp