SIとは
SIとは、システムインテグレーション(System Integration)の略称として用いられる用語です。また、この業務を請け負う業者をシステムインテグレーター(System Integrator)といい、こちらはSIerと略されます。
SIは銀行など金融関係のシステムや店舗の在庫管理システムなど、さまざまな場面で利用されています。
SIは、システムの導入に関して顧客の業務を客観的に把握し、分析から開発、運用に至るまで、すべての工程をサービスの対象としています。
似た用語が多く、混同しがちですがそれぞれきちんとした意味があるので覚えておきましょう。
詳しくは下図を参照してください。
<table><thead><tr><th> </th><th>読み方</th><th>意味</th></tr></thead><tbody><tr><th>System Integration</th><td>システムインテグレーション</td><td>システム開発や運用などを請け負うサービス</td></tr><tr><th>SI</th><td>エスアイ</td><td>システムインテグレーションの略称</td></tr><tr><th>System Integrator</th><td>システムインテグレーター</td><td>システム開発や運用などを請け負う企業</td></tr><tr><th>SIer</th><td>エスアイヤー</td><td>システムインテグレーターの略称</td></tr><tr><th>SE</th><td>エスイー</td><td>システムエンジニアの略称</td></tr></tbody></table>
SIとSEの違い
SIと似た用語で、SE(システムエンジニア)があります。
SEは、主にシステムの開発を行う仕事をする人を指す用語です。
端的に表すならば、SIとSEの違いは「何を指すか」です。
SEはシステム開発を担う技術者、つまり「職種」を指します。
一方SIはシステムの分析・開発・運用を請け負う「サービス」を指します。
SIは、SEの力の結集によって成り立つサービスなのです。
ここまでに「SI」「SIer」「SE」と3つの用語が出てきましたが、これらを分かりやすくまとめると、「SIを提供する企業がSIer、SEはSIer(企業)に在籍しているエンジニア」と言えます。
SI開発の主な工程
SI開発には上の図のような工程があり、加えて運用・保守も行います。
このような一般的なシステム開発に採用されているウォーターフォール開発において、初期段階の工程を上流工程、その後の実際の開発段階を下流工程と呼びます。
以下、それぞれの工程について詳しく解説します。
①案件定義
システム構築を要望される顧客が、なぜ開発を行いたいのかしっかりと把握する工程です。
開発目的を深く理解した上、機能面や性能面を「どのような条件下で動作するか」を含め、必要となる条件を定義します。
プロジェクトの根底に位置する重要な段階で、ここで決めた定義により開発を進めていくので、入念な打ち合わせが必要です。そのため、経験豊富なSEが担当することが多いです。
②基本設計
案件定義で定義した内容に基づき、そのシステムに必要な機能を選択します。また、その機能を稼働させるのに必要な機器構成・性能もここで決定します。
基本設計の工程では、デバイスや画面などのハードウェア設計からシステムを動かすことに必要なプログラミング設計に至るまで、幅広い分野の設計を行います。
ここでも開発は主にSEが担当します。
この工程で、ある程度の骨組みが完成します。
③詳細設計
基本設計をもとに、「それぞれの機器で行う、より細かな処理内容」などのさらに細かい部分を設計します。
基本設計で完成した骨組みに、追加すべき事項を加えていきます。
④開発(プログラミング等)
基本設計・詳細設計の工程で作成した設計書をもとに、システムを動かすためのプログラミングを行います。案件定義で採用したプログラミング言語でコードを書き進めます。
主にプログラマーが担当する工程です。
⑤テスト
上記工程で設計したプログラムのバグ(不具合)を見つける工程です。
当初の設計の意図通りに正しく動作するかをここで確認します。
これらをクリアしてからでないと納品には至りません。
ここで不具合を見逃してしまうことは後々大きなトラブルを生むことにもつながりかねないため、とても重要で責任のある工程です。
⑥運用・保守
顧客が納品したシステムを問題なく利用できるよう、管理・監視を行います。また、利用状況により更なるサーバーの拡張が必要になった際には対策を講じ、それに対応します。システムエラーが生じた時も、いち早く対処します。
いわゆるアフターサービスです。
SIerで働く際に求められるスキル
Slerで働く際には様々なスキルが求められます。
以下に例を挙げ、それぞれ詳しく説明します。
システム開発に関するスキル
SIの業務に携わるには、前項で示したそれぞれの工程に関する知識と理解が必要です。
マニュアルにあるからといって、その意味を考えず闇雲に作業をすることは好ましくありません。
上流工程・下流工程のどこの工程を任されたとしても、「それぞれの工程を担当したエンジニアが何を考えてプログラムしたのか」を紐解いて考えることのできる柔軟な思考力も重要です。
ひとつひとつの工程はシームレスにつながっていて、自身の担当外の工程に関するスキルを持ち合わせていないと円滑なプロジェクト遂行に繋がりません。あくまでもジャンル分けされた工程は大まかな役割分担のように捉えていただけると良いです。
特に基本設計・詳細設計の工程では、開発工程に目安となる作業マニュアルやフローチャート等の指示書の作成も行います。このため、開発工程で実際に作業するエンジニアの基本的な作業手順や設計方法に関する知識を有している必要があります。
コミュニケーションスキル
案件定義の工程では、システムの開発目的と求めるものを顧客からしっかりとヒアリングすることが必要です。ここで解釈に齟齬が生まれた場合や、顧客から情報を聞き出せない場合、その後の工程がいくら順調に進んでも満足してもらえる商品を納品できなくなってしまいます。
顧客の求めているものを的確に聞き出す傾聴力や、求められているものに適した「提供可能なサービス」をロジカルに分析して提案できる力が必要となります。
また、顧客がどのような事業を行なっているかもサービスを提案する上で非常に重要なので、あらかじめ調査し、知識を持っておくことが必要です。
SI企業の社内でも、チームワークでプロジェクトを遂行する上で報告・連絡・相談は欠かすことができません。
大きなシステムを構築する際にはチームや工程も大規模になるため、それに対応する技術力の他に、より細かな打ち合わせ等も必要になります。
よって、このようなチーム内におけるコミュニケーション力も非常に重要です
論理的な思考力
新しいシステムを構築していくため、発想力やそれを動かすための論理的思考力が必要となります。
一言で「論理的思考力」とまとめてしまうと簡単に見えがちですが、SI開発に携わる上でとても重要な要素です。
案件定義の工程では、顧客からヒアリングした情報を元に「どのような目的でシステムを導入し、そのシステムをどのように応用させたいのか」を脳内で処理し、適切なサービスを提案することが必要です。
ITに関する知識とスキル
SI開発では、さまざまな技術を結集させてひとつのサービスを完成させます。
そのため、各工程で用いられる開発言語はもちろん、ハードウェアからソフトウェア、セキュリティーやサーバーに至るまで、幅広く知識を有している必要があります。
先ほども触れた通り、これはそれぞれの工程がシームレスにつながっており、明確な役割分担としてのジャンル分けではないからです。
また案件定義の工程でも、それが技術的に達成可能なのかを知っておかないと提案や納期の説明ができません。
それぞれの専門的な細かい部分まで全て掘り下げる必要性は低いですが、開発に関わる技術の基礎的な知識は身に付けておく必要があります。
まとめ
SIに携わるエンジニアの仕事は、それぞれが担当する工程だけで完結するのではなく、上流工程から下流工程までが流れるようにつながっていて、チームワークを重んじる職業です。
SIによって支えられている分野は、インフラを支える重要なものが多いです。そのため、新しい技術よりも安定した従来技術を採用することが多く、トラブルが発生した際にも迅速かつ的確に該当箇所の修復に当たることが可能となります。
システムという「目に見える形」のないものは、機械のように視覚的には破損箇所がわからないので、エラーメッセージを元に不具合が起きている原因とその解決方法を自身の頭の中で描きながら作業を進めていく必要があります。
そのため、論理的な思考力はもちろん、概念を具体化して考えられる力も必要になります。
具体的なSIのサービスによって支えられているサービスは、以下のようなものが挙げられます。
・防衛庁などの官公庁システム
・コンビニやスーパーなどで用いられる商品管理システム(POSシステム)
・銀行やネットバンキングの口座管理システム
・電子カルテの管理など、医療業界での情報管理システム
・人事・労務管理システム
どれも生活に欠かせないシステムで、これらのシステムの恩恵を受けない日はないといっても過言ではありません。
しかし最近ではクラウドサービスの普及に伴い、SIの今後の先行きが不透明になりつつあります。
日々目まぐるしく変化と成長を遂げるIT業界での立ち位置が、今後どのように変化していくのか注視しておく必要がありそうです。