「SE(システム・エンジニア)」について考えさせられたこと

社内勉強会!
2月11日の建国記念日に、社内で【生産管理】の勉強会が実施されました。私の会社では、特に名古屋地区においては製造業向けの生産管理システムに関わる事業に力を入れていることもあり、私の上司の発案で実現したものです。講師役もその上司が自ら務めました。
今回の趣旨としては、現在遂行されているプロジェクを題材にして生産管理のイロハを学ぼうというのがまず1つ。
参加者全員が実際に携わっているプロジェクトを題材に、「BOMとは何か」「生産準備とは何か」「年度(販売/発注)計画の考え方」「カンバンとは何か」といった、生産管理の基本について講師(私の上司)から解説がありました。
現在動いているプロジェクトがコンテキストにあるので、参加者にとっても具体的にイメージが共有しやすく(これ非常に重要!)、かつ従事するプロジェクトの背景なども明確になったことと思います。
そして今回の勉強会のもう1つのテーマは、いわゆる【SE】に求められているものは何か?です。
非常に考えさせられるテーマで、かつ色々な気づきが得られたお話でしたので、本エントリーではこれを少し掘り下げてご紹介したいと思います。
そもそもSEとは?
そもそも、SE(システムエンジニア)とはどんな職業なのでしょうか。参考までに、Wikipediaの冒頭の文章を引用します。
※「SE」という言い方自体に様々な意見があるのは承知の上で、あえて話を進めます…(;^ω^)

**システムエンジニアとは?**
システムエンジニア(SE)とは、日本の情報システム分野におけるコンピュータ技術者の分類の1つである。情報システムの要件定義、設計、開発、運用などや、それらを統括管理するプロジェクトマネジメントなどに従事する者をこう呼ぶことが多い。主に上流工程(要件の整理や見積もりなど)を中心とする事が多く、プログラマやハードウェアの保守を行うカスタマーエンジニアなどとは区別される。 -Wikipediaより-

ここであえてポイントをあげるとすれば、「主に上流工程(要件の整理や見積もりなど)を中心とする事が多く」「プログラマ(やカスタマーエンジニア)などとは区別される」の2点だと考えています。
後者の「プログラマとの区別」ですが、実際に開発の現場ではSEがプログラマ(PG)を兼ねるケースや、PGが実質的にSEの仕事をやるケースが多く見られます。この傾向は、近年、特に比較的小規模なプロジェクトで顕著に現れています。
それでもこの区別が一向に無くなる気配がないのは、非常に乱暴に言ってしまえば「”SE”の方が高く売れる」という業界の慣例?が残っているに過ぎないだけだと思っています。
ともかく、あえて役割としての区別をつけるならば、「プログラマ」は情報システムを構築する局面のうち主に「開発」を担う「役割」のひとつであり、それ以外のあらゆる局面に携わる「エンジニア」が広い意味での「SE」であると一般的には考えられているようです。
SEに求められるもの
さて本題。
先程紹介したWikipediaの記述に「主に上流工程を担当する」という一文がありました。では、実態はどうでしょうか?
今回の勉強会では、まさに企画や要件定義といった本当の意味での「上流工程」ができる「SE」になるための資質や必要とされるスキル・知識についての話がありました。そのことについて触れてみたいと思います。
■ビジネス視点を持つ
「PGからSEに転身する際に必要なものは?」という話になると、大抵は、業務知識、コミュニケーション力、マネジメント力などのキーワードがあがってくると思います。このように目に見えるスキルや知識はもちろんですが、その裏にある「意識」や「視点」という面でも大きな違いがあると考えられます。
下の表は、企業の「経営」と「情報システム」を階層ごとに対比したものです。(勉強会で講師がホワイトボードに書いたもの)

経営 情報システム
経営 イノベーション
事業 アーキテクチャ
業務プロセス システム
※BPR(ビジネス・プロセス・リエンジニアリング)
 └サブシステム
  └ユニット
課業 ジョブ
作業 個々のプログラム

表における黄色の部分が、本来「SE」が求められている領域を意味します。つまり、業務プロセスのレベルで、経営と情報システムの両方の視点をバランス良く持ち合わせていることが必要ということです。
しかし、世の中の8割方の「SE」と呼ばれる人々が、この表における「ユニット」「ジョブ」「プログラム」の範囲だけで顧客と会話をしているのが日本のIT業界の実態だそうです。「課業」に毛の生えたレベルしか意識していない上に、経営(またはビジネス)の視点が決定的に欠けているということですね。(非常に耳の痛い話です・・・)
■話の「ポジション」を意識する
上の表において、「いま自分は、どの部分の領域について相手と話しているのか」をきちんと認識できるか、ということです。そうでなければ、相手(顧客)と全く話が咬み合わないことになりますね。
これも、SEとしては重要な資質と言えます。
■ゴールを定めておいて逆算して計画を立てる
これについては、企画段階における顧客との打ち合わせスケジュールの立て方が例として紹介されました。
それによると、まず業務とシステム・デザインのあるべき姿を思い描きプロジェクトのゴールを自分なりに定めておいた上で、顧客との打ち合わせテーマを逆算して設定する、という手順です。もちろん、企画を完成させる日程なども考慮して予備日を設置することも重要です。
まさに、「先にゴールを決めておいて、そこから逆算して計画を立てる」手法です。
これは打ち合わせスケジュールの設定だけにとどまらず、報告の仕方などにも応用できる考え方です。先に状況を事実として報告し、現時点の残作業や問題点・対策、完了見込みを簡潔に述べるだけでも、相手への伝わり方が格段に良くなるのではないでしょうか。(何もSEに限ったことではないですね・・・)
■必須知識
大抵のSEはプログラマからキャリアをスタートさせている(そうでない人も中には存在しますが・・・)ので、開発に関するスキルは持っているはずです。
今回の勉強会では、SEとして身に付けるべき知識として次のことが紹介されました。

  • システムエンジニアリング
  • 経営リソースとは(人、モノ、金および情報)
  • 会計
  • ガバナビリティ(会計監査、商法、J-SOX等)

もちろんこれはほんの一部で、他にも学ぶべきことは沢山あります。
一人前のSEへの道のりの険しさを実感するとともに、目指すべき方向性が明確になった。そんな収穫のあった勉強会でした。( ´∀`)b
(終)