いわゆるSIer(システムインテグレータ)の仕事について

SIerとはなんなのかよくわからないと言う人に向けて、SIerとは何者かと言う話から、仕事のやり方なんかをまとめて書いています。

SIerは何者か。

説明に書いた通り、この記事ではSIerとその仕事について議論を深める目的があるのだけれど、はじめにSIerとは何者であるかをきちんと理解しなければいけないと思う。

システムインテグレータという用語はあちこちで使われていて、今やこれはIT業界の奴隷商人を意味するような語に理解されがちだと思うけれど、元は生産システム工学という社会学の一分野で使われる用語で「ある仕組みを構成する要素が異なる機能や働き、目的を有する時に、全体の有機的な統括を目指す仕組み」の事をシステムインテグレーションと言っていて、SIerとはこれをまとめる役割の働きの事を言う。

システムインテグレーションには重要な三本柱があって

  1. 質的に異なる分野が自律性を保って、お互いに補いつつ融合する
  2. 質的に異なる存在が協業して利得を得る
  3. ここの総和を超えた増幅効果を求める

とされている。この三本柱を(運用や今生ではなく)仕組み的に実現しようとする取り組みがシステムインテグレーションであって、その分野の専門家が(本来の)システムインテグレータと呼ばれる職種だと言うことになる。

具体的に、生産システム工学の分野でシステムインテグレーションの例として挙げられるのはComuter Integrated Manufacturing(CIM: コンピュータ統合生産)と呼ばれる、製造・設計・管理の異なる分野を横断的に取り扱う仕組みだと思う。

製造にはCAMとかMESとか呼ばれる工場のものを作っているところに関するソフトウェアが、設計にはCADとかCAEとかのソフトウェアが、管理にはERPとかMRPとか、BIなんかのソフトウェアがそれぞれ存在しているけれども、この異なる分野で得られる情報をお互いに補わせて、企業の目的のための利得を考えて、相乗効果を狙うものとして、CIMが導入されるというストーリーになる。

SIerとしてやらなければならないこと

そんな訳で、SIerという言葉の立ち位置がはっきりしたところで、SIerの仕事について書いていきたいと思う。

この春からSIerと呼ばれる類の企業に就職したけれど、研修でJavaとかC#とかやらされて、よくわからないままに「経験年数X年、リーダー経験あり」なんという肩書とともに現場投入された若手がいるなら、これから書く事は少しだけ、あなたの生きる指針になると思う。

二つの目的を理解する

SIerに課せられている使命は、先の通り3本柱を成立させた仕組みを考えることに尽きるので、常に軸足をここに置いておかないといけないのは言うまでもない。

具体的には、あなたの担当する一分野で達成するべき目的と、あなたの担当する以外の仕組みと繋がった時に、システム全体として達成しなければいけない目的の二つの目的を理解して、あなたが担当する以外の仕組みの機能や情報を利用した時に、単体で成せるよりも高い効果を得られる仕組みをデザインするのがあなたの仕事になる。

仕事のやり方を考える

SIerの仕事は、仕組みを作ることだというのを忘れてはいけない。

システムとは、ペンシルロケットで有名な糸川博士の言葉を借りれば『それは「焼き鳥の串」みたいなもので、それ自体は食えないけれども、それが存在することで焼き鳥という料理の体をなすようになるようなモノの事をいう。』

SIerの仕事の難しさはここにあって、多くの人が顧客に対して文句を言い、無茶苦茶な仕様が出来上がり、顧客の欲しかったものと営業の提案したもの、実際に出来上がったものが全部異なっているような現実が存在するのも、全てこれに起因していると思う。

つまり、SIerが作らなければいけないものは、食えないものであって、顧客自身もそれが大事であると見えていないようなものを作らないといけないという事だ。

「焼き鳥」と聞いて、顧客は鶏肉やタレの選定を行うだろうし、少し気の利いた顧客だったら、縦長の焼き鳥を並べやすい皿が必要だと考えてくれるかもしれない。

しかし、SIerは鶏肉でもタレでも皿でもなく、串がその料理を成立させている要素だと見抜き、顧客の用意している大きさの鶏肉にピッタリあった、タレの味を邪魔するような臭いのしない、皿にバッチリ合う串を見つけて提供しなければいけないのだ。

これは「自分たちの欲しいソフトを作る」タイプの開発者や「顧客に要求されたものを作る」タイプの開発者、あるいは「世の中にない新しい価値を生み出す」事をミッションとする開発者、「学術領域で得られた知見の産業的応用を目指す」開発者のいずれとも違っていて、とても難しい仕事だと言える。

SIerに必要な技術的要素

これからSIerとしてやっていくのであれば、これらの事を踏まえて自分自身のスキルセット、仕事道具を揃えていくのが良い。そこで、最後に多くの分野で有効であろうと思われる技術的な要素とその学習指針をまとめておこうと思う。

ドメイン知識(自分の関わる分野の産業構造)

通常、ドメインの知識というと、特定分野に特化した知識をさす事が多いが、今回のケースについては「ある産業において、その産業に関わる領域の知識」と言い換える事ができる。

具体的にはCIMのケースで出てきたように、生産業であれば設計・製造・管理の3分野が存在している事を知らなければならない。

とても大きな製造業の会社と取引のあるSIerで10年以上働いている社員ですら、MRPとERPの違いを理解できていないケースが多くあるし、工場の自動化(いわゆるFA)に関わっていたからという理由で、シッピングや生産計画といった分野の事は存在を知っているだけで具体的に何をやる所なのか(企業の仕組みの中でどんな責任を担っているのか)は理解していないケースがある。

これでは、ここで想定するようなドメインの知識を持っているとは言い難い。

その産業分野がどんな構造で利益を挙げているのかを俯瞰的にでも理解して、可能であればその各要素に関わっているソフトウェア的な要素をおさえておくと、そこに焼き鳥の串が存在している事を見抜くのに役立つ。

ソフトウェア工学の知識

応用情報技術者や高度情報技術者の過去問題のうち、午後の問題をながめてみるとよくわかる事だが、自分自身が関わっている分野とは異なる産業分野の問題であるのに、よく似たケースや内容が登場している事に気がつくと思う。

これは、コンピュータサイエンス(計算機科学)とは別に発達しているソフトウェア工学の恩恵によって、ドメインが異なっていても、ある抽象レイヤーで見れば同じと見做せる問題が存在している事を示している。

視点を変えればひとつの抽象レイヤーを学べば多くの問題に適用可能なスキルセットが手に入ることになる訳で、それを身につけるためにソフトウェア工学分野の本や論文を読んでおく事をオススメする。

数学

ソフトウェア工学にも紐づくけれど、数学の知識はあるに越した事は無いし、無いなら今からでも身につけておくと良い。
個人的には、遠山啓監訳の「科学を志す人のための基礎数学」ぐらいの内容を理解していると良い。

SIerが本質的に理系だから数学が必要だとか、論理的発想がどうのこうので数学を身につけようと言っているのでは無くて、まさに「焼き鳥の串」に気づくために必要な技術として数学的な分析であったり、確からしい論証を積み重ねてたどり着く設計が重要になるからであって、少なくとも先の著書に挙げられているような内容について、仕事の上で役に立たない事はひとつもないと断言できる。

仕事を楽にする道具

例えばSQLであったり、Power Shellのスクリプトであったり、Excel VBAであったり、極端に言えば効率的にデザインしたノートや定規の類だって構わないのだけれど、仕事を楽にするための道具は徹底的に揃えておくと良い。

休日の余暇の時間を2時間使って、1日20分、仕事を楽にする技術を身につけたとすれば、月に20日間なので、実に400分もの時間を節約する事ができる。

非常に効率の良い投資だと言えるので、ワークライフバランスを良くするための投資として取り組む事を推奨したい。

私たちは弘法大使でない事を理解する

筆を選ばずに良い仕事はできないし、筆の誤りと言われるよりもずっと高い頻度で誤りをやらかす。

そんな中でこの仕事に必要な仕組み(システム)とは何なのかを見抜いて形にするのがSIerの仕事である。

それは、決して自分たちのサービスを作る仕事に見劣りする仕事ではないし、片手間にできるほど簡単な仕事でもないし、経験年数が高ければこなせるような、場数勝負の仕事でもない。

あらゆるケースで腐らずに、誇りを持って取り組む人が一人でも多く出てくれる事を望む。

参考文献

  • 入門編 生産システム工学(人見 勝人)
  • はやぶさ―不死身の探査機と宇宙研の物語(吉田 武)
  • 科学を志す人のための基礎数学(監訳:遠山 啓)