「SIerは技術軽視の成長できない業界」「SIerで働くエンジニアの技術やスキルは低い」このような話を耳にしたことがある人もいるでしょう。
そこで今回は、
• SIerが技術軽視と言われる理由
• SIerのエンジニアに求められる技術レベル
• SIerで採用されているプログラミング言語
など、SIerが本当に技術が身につかない業界なのか詳しく解説します。将来のキャリアプランを見据えてSIerの転職を考えているエンジニアの人は、ぜひこの記事を参考にしてください。
1. SIerは「開発しない」「技術軽視」の成長できない環境?
SIerはエンジニアとして成長できない環境という話を耳にしたことがある人もいるでしょう。以下で、SIerが「開発しない」「技術軽視」と言われるケースがある理由について解説します。
1.1 SIerの定義
まず、SIerに求められる技術力について理解するための前提知識となる言葉の定義について解説します。
1.1.1 「システムインテグレーション」を行う事業者
SIerとは「System Integrator」の略称で、システムインテグレーション(SI)を行う事業者を指します。システムインテグレーションとは、顧客の課題解決などの要望に応じて、システム構築を請け負うサービスのことです。
SIerの業務範囲は幅広く、コンサルティングからシステムの保守運用まで請け負います。そのため、元請けのSIerが受注した仕事でも、実際は複数の下請け企業が連携しあって開発を行っているということも少なくありません。
1.1.2 SIerの分類は4種に分かれる
SIerはその企業の成り立ちによって
- メーカー系
- ユーザー系
- 独立系
- 外資系
の4つに大きく分類できます。
メーカー系は、ハードウェアのメーカーなどのシステム開発のために系列企業や子会社として設立されたSIerです。親会社やグループ会社のシステム開発をおもに受注します。代表的なメーカー系SIerは、日立製作所、NEC、富士通などです。
ユーザー系は、商社や銀行などの企業の情報システム部門から独立してできたSIerです。そのため、ユーザー系SIerには
- 銀行系
- 商社系
- 生保系
- 通信系
などのさまざまな系統が存在します。
ユーザー系は、親会社とのつながりによる安定した経営基盤が特徴。代表的なユーザー系SIerには、野村総合研究所や、伊藤忠テクノソリューションズや、SCSKなどがあります。例えば、日本の最大手の民間シンクタンクである野村総合研究所は、データ分析に基づいた精度の高いコンサルティングに強みを持っています。
独立系は、メーカー系やユーザー系のように特定の親会社を持たないSI事業を目的に設立されたSIerです。代表的な独立系SIerには大塚商会や、TISや、日本ユニシスなどがあり、特定のメーカーのハードウェアなどに縛られない顧客の要望に合わせたソリューションの提供を行っています。
外資系は、日本に留まらすグローバルにSI事業を展開するSIerです。外資系SIerは年収が高い傾向にあり、代表的な外資系SIerにはIBM(メーカー系でもある)や、日本HP(ヒューレットパッカード/メーカー系でもある)などがあります。また、元々コンサルティングファームであったアクセンチュアも近年は、システム関連事業の売上比率をあげていることから、SIerのカテゴリに入るという見方もあります。
SIerとは何かや分類について、以下の記事でより詳しく紹介していますので合わせてご覧ください。
1.2 SIerが「技術軽視」と呼ばれるケースがある理由
SIerが技術軽視と呼ばれるのは、
- ピラミッド型の多重下請け構造
- ドキュメント作成業務が多くなりやすい
- 枯れた技術の採用
といった理由が挙げられます。以下で、それぞれの詳細について解説します。
1.2.1 多重下請け構造
SIerが技術軽視と呼ばれる大きな理由として、「大規模プロジェクト」「ピラミッド型の多重下請け構造」が挙げられます。
ただし、自社ですべてのシステム開発を行うためには、多大なリソースを保有するリスクがあるため、下請構造自体に問題があるわけではありません。
例えば、4次請け、5次請けといった企業では、要件定義や基本設計などのフェーズから関われる可能性が低いために、業務知識や設計に関する知識やスキルが身につきづらい傾向にあります。一方で、元請けや2次請けなどの商流の上位に位置する会社では、顧客折衝・要件定義、基本設計、プロジェクトマネジメント(進捗、品質、コスト管理等)などを担当する傾向にあり、コーディングに関われる機会が少ないと言えるでしょう。
日本のSIerでは工程ごとに進めていくウォータフォール開発が主流です。アジャイル開発を取り入れている企業は、自社サービスを手がけるベンチャーやスタートアップが多い傾向です。
アジャイル開発とウォータフォール開発については、以下の記事で詳しく解説していますので参考にしてください。
ウォータフォール開発によるシステム開発は、顧客のイメージ通りに仕上がらず、手戻りが大きくなることもあります。
また、工程ごとに分業制になるため、エンジニアは自分の工程しか見えず、プロジェクト全体が把握しづらいです。より下位に位置する下請けの企業は「部品づくり」を行っているような状況になるため、コーディング以外の力を身につけることは難しくなってきます。
冷蔵庫の製造に例えるなら、ピラミッド下部の下請けのエンジニアは冷蔵庫を作っていることは見えておらず、そのパーツの一部であるネジを作っている状態。納期ありきで安定的な要件を求めれる従来型のSoR(System of Record)とは違い、スピードやサービスの使いやすさを求められる近年のSoE(System of Engagement)・アジャイル開発においては、計画・設計・実装・テストのサイクルを回せなければなりませんが、SIerではこの経験は積みにくいと言えるでしょう。
1.2.2 ドキュメント作成業務が多くなりやすい
SIerでは、マネジメントがメインとなり、ドキュメント作成業務が多くなりやすいことも、SIerが技術軽視と呼ばれことがある理由として挙げられます。
上述の通り、SIerは多くの企業が関わってプロジェクトを進める場合が多いです。そのため、プロジェクト管理も重要な業務となり、プログラミングによる開発に関わる機会が少なくなるため、技術力が身につかないことがあります。
実際に、SIerのキャリアパスはプロジェクトマネージャーなど、マネジメント寄りであることが一般的です。
SIerのキャリアパスについては以下の記事で詳しく解説していますので、合わせてご覧ください。
1.2.3 枯れた技術の採用
SIerでは、システム開発においていわゆる「枯れた技術」を採用するケースが多く見られます。
枯れた技術とは、最先端の新しい技術ではなく、公開されてから数年間経過したプロジェクトの導入実績などの情報が豊富に蓄積された技術のこと。しかし、枯れた技術には、安定性の高い開発が行えるというメリットもあります。
マネジメントのリスクを考えて、納期通りにプロジェクトを進める上で枯れた技術は最適です。そのため、SIerにおいては枯れた技術が採用されることもあります。システムの納期を優先するためのレガシーな技術選定は、新しい技術に触れて技術力を磨く機会損失となることにも繋がります。
2. SIerのエンジニアに求められる技術レベル
技術軽視と言われることもあるSIer業界ですが、エンジニアとして働くためには実際にどの程度の技術レベルが求められるでしょうか。
以下で、開発手法や具体的に求められるフロントエンドやサーバーサイドのスキルについて解説します。
2.1 【前提】ウォーターフォール開発による分業制が主流
上述の通り、前提としてSIer業界はウォータフォール開発による分業制が主流です。そのため、担当する案件の内容やどの工程を担当するかによって、求められる技術は大きく異なります。
さらに、分業制となるためエンジニアは自分の担当する工程以外には関わらないことが多いです。プロジェクトに必要となるスキルを網羅的に把握したい場合には、より上流の工程に関わることができるSIerを選ぶ必要があります。
2.2 【前提】品質管理も必須
SIerで働く上で、コストや品質を管理するスキルは必須です。
ウォータフォール開発には、おもに以下の工程があります。
- 要件定義
- 基本設計
- 詳細設計
- 実装
- 単体テスト
- 結合テスト
- システムテスト
- 導入
上流であれば、手戻りのコストは少なく済みます。しかし、下流の工程に行けば行くほど、手戻りが発生した際のコストは増大。そのため、受託開発において、いかに上流に近い工程で品質管理を行うかが、納期やコストのコントロールの観点から重要となるのです。
2.3 フロントエンド
近年では、SIerのプロジェクトにいおいてもUIを重視する傾向にあり、使い勝手や見た目に関わる部分を開発するフロントエンドに関する技術も求められます。
フロントエンドとは、WebアプリやWebサイトのユーザーが直接目にしたり、操作したりする部分のこと。フロントエンドの開発では、Webページの枠組みを作るHTML、装飾を行うCSS、動きやWebページの機能を拡張するJavaScriptといった言語をおもに使用します。
フロントエンドの開発を担当するフロントエンドエンジニアについて詳しく知りたい人は、以下の記事を参考にしてください。
2.4 サーバーサイド
SIerのエンジニアにとって、フロントエンドの技術力だけでなく、システムの機能性に関わるサーバーサイドのスキルも重要です。
サーバーサイドとは、ユーザーの目からは直接見えない
- データベースとの連携
- Webサービスによるシステムの提供
- 情報の暗号化
などのサーバー上の処理を指します。サーバーサイドを担当するエンジニアのおもな仕事内容は、サーバー上で行う処理に必要なプログラムの開発です。
3. SIerで採用される代表的なプログラミング言語・フレームワーク
次に、SIerで採用される
- Java
- C#
- .NET framework
- JavaScript
- COBOL
といった代表的なプログラミング言語とフレームワークについて解説します。
3.1 Java
Javaは、世界的に人気の高いオブジェクト指向のプログラミング言語。Javaの代表的なフレームワークは、以下の通りです。
- JSF(JavaServer Faces)
- Spring Framework
- Play Framework
- Apache Struts
- Spark Framework
OSに依存しない汎用性の高さと処理速度の速さがJavaの特徴。Androidアプリの開発や、大規模なシステムの開発など、幅広い用途に用いられます。
リリース | 1996年1月23日 1.0リリース |
---|---|
最新バージョン(※2021年3月時点) | 8.0 |
公式サイト | Java | Oracle |
ダウンロード | Java SE Development Kit - Downloads | Oracle |
3.2 C#
C#はマイクロソフトが開発を行っているオブジェクト指向のプログラミング言語。Webアプリケーション開発フレームワーク「ASP.NET」を利用すると、Webアプリ開発がスムーズに行えます。
Windows向けアプリケーションの開発・Unityによるゲーム開発・組み込み系システムの開発といった用途に用いられることが多いです。
C#の開発を始めたい場合には、IDE(統合開発環境)であるVisual Studioのインストールをおすすめします。
リリース | 2002年2月 1.0リリース |
---|---|
最新バージョン(※2021年3月時点) | 9.0 |
公式サイト | C# 関連のドキュメント - はじめに、チュートリアル、リファレンス。 | Microsoft Docs |
ダウンロード | Visual Studio 2019 for Windows および Mac のダウンロード |
3.3 .NET framework
.NET frameworkはマイクロソフトが開発を行っているアプリ向け開発プラットフォーム。Web・Windows・Microsoft Azure用のアプリの開発に適しています。
記述された言語はCIR(共通中間言語)に変換され、CLR(共通言語ランタイム)で実行可能です。そのため、C#・Pythonなどのさまざまな言語が利用できます。
リリース | 2002年1月5日 1.0リリース |
---|---|
最新バージョン(※2021年3月時点) | 5.0 |
公式サイト | .NET Framework ドキュメント | Microsoft Docs |
ダウンロード | Download .NET (Linux, macOS, and Windows) |
3.4 JavaScript(TypeScript)
JavaScripctは、Webページに動きを与えたり、メディアを管理したりといった用途に用いられるプログラミング言語。JavaScriptは環境構築が特に不要で、Webブラウザ上でプログラムが実行可能です。
AngularJS・React・Vue.jsといったフレームワークを利用すると、効率的に開発が行えます。また、基本的にはフロントエンドにJavaScriptは用いますが、Node.jsというサーバーサイド向けのJavaScript環境を利用するとサーバーサイドの構築も可能です。
そして、JavaScriptを拡張して作られたTypeScriptというプログラミング言語も人気。TypeScriptは、静的型付けとクラスの作成に対応しており、大規模開発にも向いているといいう特徴があります。将来性の高いプログラミング言語として世界的に注目されているプログラミング言語ですので覚えておきましょう。
リリース | 1997年6月 |
---|---|
最新バージョン(※2021年3月時点) | ECMAScript 2020 |
公式サイト | JavaScript | MDN |
ダウンロード | - |
3.5 COBOL
COBOLは1959年に開発された長い歴史を持つ標準規格が定められたプログラミング言語。自然言語に近い文法で記述できるため、可読性が高いことが特徴です。
事務処理や帳票に適しており、現在でも金融機関や行政サービスのシステムで採用されているケースが多く見られます。
OpenCobolIDEやGnuCOBOLといったオープンソースのツールを利用すれば、無料でCOBOLの利用を始めることが可能です。
リリース | 1959年 |
---|---|
最新バージョン(※2021年3月時点) | 第5次規格(国際規格) |
公式サイト | ISO - ISO/IEC 1989:2014 - Programming language COBOL |
ダウンロード | - |
4. SIerで働くエンジニアは技術が身につかないのか?
SIerで働くエンジニアは技術が身につかないのでしょうか。以下で、SIerで働くことで身につく技術やスキルの詳細について詳しく解説します。
4.1 「どのようなSIerで働くか」環境にもよる
SIerで働くことで身につく技術やスキルは、どのような企業で働き、どのような案件にアサインされるかといった環境によって大きく左右されます。
視野の広い柔軟な提案が行えるSIerでは「Pythonによる機械学習を取り入れる」「AWSを利用してクラウドサーバーを構築する」など、案件に応じて新たな技術を導入する場合も多くあります。実際、AWSのコンサルティングパートナーには、野村総合研究所、TIS、富士ソフト、日立製作所、NTTデータ、伊藤忠テクノソリューションズなどが入っており、MicroSoftのAzureのパートナーには日立製作所、富士ソフト、富士通、日本ユニシス、NTTデータ、NEC、SCSKなどのSIerが入っていることから、SIerが必ずしも古い技術ばかりを採用しているわけではないことがわかるでしょう。
4.2 スタートアップのようなスピード感溢れる開発は難しい
ウォータフォール開発が主流であるSIerでは、スタートアップのようなスピード感溢れる開発を行うプロジェクトに携わることは難しいです。
スタートアップやベンチャーで主流であるアジャイル開発はSIerでは一般的ではありません。そのため、PDCAを回してスピーディーに開発を行う技術を身につけたいと考えている人には、SIerは不向きと言えるでしょう。
4.3 プロジェクトマネジメントスキルは伸びる
プロジェクトマネジメントスキルを伸ばしたいのであれば、SIerは最適な環境と言えるでしょう。
SIerが受注する案件は大規模なプロジェクトが多いため、スケジュール通りに進める上でプロジェクトマネジメントがとても重要になります。
上流を担当するSIerであれば、下請けのITベンダーと綿密にコミュニケーションを取る必要があるため、マネジメントスキルが伸ばしやすいです。
マネジメントスキルが求められるプロジェクトマネージャーへのキャリアパスとして、SIerで働くことは効果的な選択肢と言えるでしょう。
5. まとめ
SIerは、働く環境によって身につく技術は大きく異なります。SIerによっては新しい技術を積極的に取り入れるケースもあるため、SIer業界がすべて技術軽視の業界とは言い切れません。
ただし、基本的な傾向として枯れた技術が採用される案件が多く、プロジェクトを管理するマネジメント能力が重要視されやすいです。また、ピラミッド型の下請構造の下位に位置するSIerの場合には、全体像が把握できない部品を作っている状態となることもあります。このように、SIerには技術力が身につきづらいという側面があることも事実です。
SIerへの転職を考えているのであれば、どのようなエンジニアを目指したいのか自分の中で明確にしましょう。その上で、キャリアプランとマッチする企業なのか見極めることが大切です。