エンジニアの成長

SIerではプログラミングができないという誤解

2020-08-04

悩める人
悩める人
・SIerのエンジニアはプログラミングはせず管理業務や発注業務ばかりするのでしょうか?
・SIerのエンジニアはプログラミングできなくて問題ないのでしょうか?
・SIerでプログラミングスキルをつけるのは諦めるべきでしょうか?

この記事はこういった人のために書きました。

 

  • この記事でお伝えしたいこと
  • SIerではプログラミングスキルが身に付かないと言われる理由
  • SIerのエンジニアも基礎的なプログラミングスキルは必要
  • プログラミングができないエンジニアの将来
  • SIerでもプログラミングスキルを伸ばせる理由

 

  • この記事を書いている僕はこんな人です

新卒でIT業界に入り、2度の転職を経て現在はSIerで部長として働いています。
キャリアは20年で、C言語のプログラマーから、インフラエンジニア、アーキテクト、PMを務め、現在は人材育成や新卒と中途採用の面接担当も務めています。
これまで、何百人ものSESやSIerのITエンジニアと仕事を共にしてきました。

 

この記事では、SIerのエンジニアがプログラミングスキルが身に付きにくい理由と、実は、本人のやる気次第ではSIerはとてもプログラミングスキルを伸ばしやすい環境であることについて具体的にお話します。

 

結論から言うと、SIerはその業務内容から、業務の上でプログラミングスキルを伸ばしにくい職種です。しかし、実はSIerの職場環境は、プログラミングスキルを伸ばすにはとても良い環境でもあるのです。
ヤマダ
ヤマダ

 

この記事は7分ほどで読み終わります。

IT業界、特にSIerを目指している学生の方、現在SIerに務める若手エンジニアの方は、ぜひ最後まで読んでみてください。

 

SIerではプログラミングスキルが身に付かないと言われる理由

SIerのエンジニアは業務の中でプログラミングスキルが身に付かないと言われていますが、なぜなのでしょうか。

転職サイトやブログの記事など、ネットで調べると下記のように言われていることが多いです。

 

  • 上流工程を担当して実装はやらない
  • 調整やマネジメント業務が多い
  • プログラミングよりもシステム全体を俯瞰する力を求められる

 

ひとつずつお話します。

 

上流工程を担当して実装はやらない

SIerはシステム化の企画や要件定義といった上流工程から請け負うことが一般的です。

SIerのエンジニアは、経営の課題やどのようなシステムを作るのかを、お客様とコミュニケーションを取りながら決めていきます。

この、お客様とコミュニケーションを取りながら仕様を詰めていく「上流工程」を主に担当します。

上流工程ではシステムで実現する業務や機能の内容について仕様を詰めていきますが、実装(プログラミング)については担当せず、下請けやSESのエンジニア・プログラマーに依頼するやり方が一般的と言われています。

 

調整やマネジメント業務が多い

大規模なシステム開発は、何百人というエンジニアやプログラマーが必要です。

SIerはシステム開発プロジェクト全てに責任を負うため、たくさんのエンジニアをリードし、進捗の管理や、お客様との調整や交渉を行うマネジメント業務が主な役割になっていきます。

 

そのため、プログラミングスキルではなく、個々のタスクのスケジュールの進み/遅れ具合を把握し、それがプロジェクト全体のスケジュールにどう影響するかを見ながら、PMやお客様とコミュニケーションを取り対策を打っていく必要があります。

 

マネジメントを適切に行うため、進捗管理表や課題管理簿など、多くの管理ツールやEXCELの帳票を扱います。

よく「SIerのエンジニアはEXCELとにらめっこばかりしている」と悪いイメージで揶揄されてしまうのはこのためです。

 

プログラミングよりもシステム全体を俯瞰する力を求められる

SIerのエンジニアは、作り上げるシステムを構成する個々の機能の設計や実装に対して、様々な観点でシステム全体の要件を満たしているかをチェックし、品質に問題ないことを証明する必要があります。

このためには、「システム全体を俯瞰する力」が求められます。

 

個々の機能の細かなプログラミングの文法・ロジックに着目するのではなく、システム全体を、サブシステムや業務といった大きな単位に集約し、それらが上流工程で定めた業務の機能要件や、システムの性能、壊れにくさ、運用のしやすさといった非機能要件を満たしているかを確認する必要があります。

具体的には、実際のお客様の業務フローに当てはめてシステムを利用するとか、システムに疑似的に障害を起こしてシステム全体がどのように動作するのかをチェックするテストを行うことになります。

そういったテストを行うために、大規模なシステムでも対象を集約化し、システムや業務を大きな固まりとして俯瞰し、システム全体としてのテスト観点や実施のための条件を整理する力が求められます。

 

SIerのエンジニアも基礎的なプログラミングスキルは必要

 

こうしてみると、SIerのエンジニアにはプログラミングスキルは必要ないように見えますが、全く必要ないのでしょうか?

 

実は、上流工程やマネジメントを主に行うといっても、ある程度のプログラミングスキルは必要です。

システム受託開発プロジェクトにおいて、SIerのエンジニアはどの程度のプログラミングレベルを求められるかお話します。

 

品質確保のため基礎レベルの理解は必須

 

プログラムが全くできないと、プログラマーと会話もできず、できあがったプログラムのテスト結果などを見て、その品質が正しいかどうかの判断もできないでしょう。

 

もちろん「スーパープログラマー」のようにバリバリこなせる必要はありません。

その開発プロジェクトで扱う言語の基礎的な構文、関数、ライブラリを理解し、プログラム間のつながりがどのようになっているかを理解するレベルが必要だということです。

 

トラブル時に原因を理解し説明できることが大事

 

もうひとつ、SIerのエンジニアに必要なスキルとして、トラブル時の原因理解と説明スキルが挙げられます。

 

プログラムは、1文字でも1バイトでも誤っていたら正しく動作しませんし、思いがけない動作を行ってデータを上書きしてしまう、削除してしまうなど重大なトラブルにつながる可能性があります。

こうしたとき、例えばお客様がITのプロフェッショナルでなかった場合、SIerのエンジニアがお客様のスキルレベルに合わせてわかりやすく説明する必要があります。

プログラムの細かい誤りをきちんと理解した上で、相手のスキルレベルに合わせた言葉を選択し説明する力が必要です。

そのため、プログラミングが全くできないと、故障原因を理解できずお客様への説明も滞ってしまうため、トラブルが長引く原因にもなります。

 

プログラミングができないエンジニアの将来

 

これまでお話してきたように、SIerの業務内容を理解すると、SIerで活躍するためにはプログラミングスキルは基礎レベルのもので問題ない、ということになります。

しかし、ずっと同じ会社で働き続けるのではなく、転職や副業なども考えるエンジニアも多いと思います。

 

SIerのエンジニアでもプログラミングスキルが弱いと、いろいろデメリットがあります。

 

  • 上流工程での説得力に欠ける
  • エンジニアとしての幅が広がらない
  • 転職の自由度が狭まる
  • 副業がやりにくくなる

 

上流工程での説得力に欠ける

 

上流工程は、要件定義や基本設計など、顧客とコミュニケーションを取りながら大まかな仕様・設計を組み立てるフェーズです。

ここでは、机上でシステムの機能や構成などを説明し、顧客と合意するプロセスが必要です。

 

上流工程は、プログラミングなどシステムの実装経験がなくても務まるフェーズではありますが、実装イメージを持っていると持っていないとでは、言葉の重みや説得力が違ってきます。

顧客の前でホワイトボードを使って実装イメージを伝えられる人と、パワポやEXCELの資料を読むだけの人とでは、どちらのプレゼンが印象に残るのかは言うまでもないでしょう。

 

エンジニアとしての幅が広がらない

 

これまでお話したように、SIerのエンジニアは、業務の上で純粋に技術を追求しにくい環境に置かれています

Web系や組み込み系エンジニアと比較すると、純粋なプログラミングスキルでは及ばないでしょう。

 

もちろん、SIerにもバックエンドにいる技術開発部隊はいますし、そうした部隊に異動することは可能です。

ただ、全体を考えると少数はであることは間違いないので、希望が叶わない可能性も十分にあります。

 

エンジニアは、その技術力をもって仕事の幅を広げ、仕事のクオリティを高めることができる職種です。

プログラミングが全くできないと、仕事の幅やクオリティをより向上させることが難しくなります。

 

転職の自由度が狭まる

 

SIerのエンジニアはどういった企業に転職をするのでしょうか。

SIerのエンジニアは多くのキャリアパスが考えられるのですが、実際に下記のような職種へ転職をするケースが多いです。

 

  • SIerのエンジニア(同じ業界内での転職)
  • クラウドベンダのエンジニア・プリセールス
  • ITコンサルタント
  • システム監査エンジニア
  • SIer/SES企業の営業

 

プログラミングをやってこなかったSIerのエンジニアは、多くの場合純粋なプログラミングスキルを求められる職種への転職は難しいです。

マネジメントスキルや、論理的思考力、コミュニケーションスキルが活かされるこれらの職種への転職が望ましいでしょう。

なお、SIerからAmazonなどクラウドベンダへの転職が増えていますが、インフラエンジニアとしての高い技術力が前提になります。

 

副業がやりにくくなる

 

クラウドソーシングサイトなどを見ると、ITエンジニアの副業として、プログラミングの案件が多いです。

設計や要件定義の支援もあるにはありますが、かなり数が少なく、アプリケーション開発がダントツに多いです。

純粋にプログラミングスキルがない場合は、こうした副業への道も閉ざされます。

 

副業といえど、業務上におけるプログラミングの実績は必要だからです。

 

SIerでもプログラミングスキルを伸ばせる理由

 

SIerのエンジニアでもプログラミングの理解が深い方が業務の上で有利になります。また、将来的に転職や副業もやりやすくなります。

どのようにすれば、プログラミングの理解が深まるのでしょうか?

 

SIerは業務上でプログラミングスキルを伸ばすことが難しいため、基本は「独学」となります。

自宅に帰って趣味でプログラミングをしてアプリケーションを作っているSIerのエンジニアも多いです。

しかし実は、SIerは勉強しようと思えば意外とプログラミングスキルを伸ばしやすい環境でもあるのです。

 

研修が充実している

 

SIerの特徴でもあるのですが、とにかく社内の研修が充実しています。

新入社員はまず1か月から、長ければ数か月の研修を受けることになります。

ビジネススキルの研修もあれば、もちろんプログラミング研修もあります。

 

また、新入社員でなくても、必要に応じて有償の外部研修を会社の負担で受講することもできます。

企業によっては、研修受講を義務付けている場合もありますし、社員が無償で受講できる研修をメニュー化して、業務の内容に応じて自由に選択できる企業もあります。

 

最近では、新しく開発プロジェクトが立ち上がり、そこにアサインされるSIerの社員は、開発開始に先立ってそのプロジェクトで使用する言語の研修を受けさせることも増えてきています。

お客様が品質に厳しい場合などは受講や、プログラミングの資格取得が必須になることもあります。

SIerの経営層も、自社のエンジニアがプログラミングスキルが付きにくいことは理解しており、業務外(OFF-JT)でプログラミングスキルを伸ばそうとする取り組みに積極的なのです。

これは、比較的企業規模が大きく、体力もあるSIerのメリットでもあります。

 

身近に良いお手本と先生がいる

 

ここが、実は一番大きいポイントとなります。

研修、書籍など、世の中にはプログラミングの教材があふれてはいますが、独学ではやはり限界は来ます。

でも実は、灯台下暗しで、すぐ身近にプログラミングのお手本が溢れています。

そう、あなたがアサインされているシステム開発プロジェクトの成果物です。

 

実際には下請け企業のエンジニアやプログラマーが作っているプログラムかもしれませんが、

彼らが作るプログラムは、大変良いお手本になります。

今後の改修なども意識して、プログラムの規約(書き方の規則)に則って書いてあるはずなので、実際に業務で動作するプログラムの書き方を参考にすることで、実際に業務に生かせるプログラミングができるようになります。

 

また、プロジェクト内部で良い人間関係が築けるなら、下請けのプログラマーと仲良くなり、いろいろ質問にも答えてもらえるようになるかもしれません。

このように、SIerの職場には、プログラミングのお手本や優秀な先生がいたりするのです。

 

実はプログラミングの機会は増えている

 

ここまで、主にSIerの主な業務内容であるシステム受託開発のエンジニアを例にとってお話してきました。

実は、SIerの業務内容は大規模なシステム受託開発プロジェクトだけではありません。

むしろ、最近はデジタル化の波に合わせて、AIやクラウド、ビッグデータ解析といったいわゆるデジタル技術を本当に適用できるか?適用してメリットがあるか?を実証するPoC(Proof of Concept)の案件が増加しています。

デジタル技術の実証実験をひとつの案件として受注し、お客様に実験結果を納品するというものになります。

比較的小規模で進めることが多いため、下請けを必要とせず、全て一次請けSIerの社員だけで作業を行うケースが多いです。

こういった案件では、SIerのエンジニアも積極的に技術に触れ、調査を行いながら実際にプログラミングも行います。

開発手法も従来のウォーターフォールではなくアジャイルも積極的に取り入れています。

 

まとめ

 

SIerがプログラミングスキルが身に付きにくい理由と、実はSIerの職場環境はプログラミングスキルを伸ばすにはとても良い環境ある理由についてお話しましたが、いかがでしたでしょうか。

実は、業務上では誰にでも読みやすく、改修のしやすいプログラミングが求められます。

そのため、業務で身に付くプログラミングは実は基礎的な内容の組合せが多く、プログラマーの多くは、数多くのプログラマーの中から一歩抜きん出るために「独学」で日々プログラミングを勉強して腕を磨いているものなのです。

 

余談ですが、SIerのエンジニアをエンジニアと呼ぶのか?、という議論があります。

僕は実は、誤解を恐れずにいうと、SIerのエンジニアは「純粋に技術を追求するエンジニア」ではなくてもよいと考えています。

SIerのエンジニアには、もちろん技術力はあった方がよいのですが、それだけでなく、ビジネススキルやマネジメントスキルをバランスよく兼ね備える必要があります。

僕は、SIerのエンジニアは「技術のこともわかるビジネスマン」と定義しています。

エンジニアとしてSIerに入社したが、仕事をしているうちに営業やコンサルタントの適性に気付いて、そのフィールドに転身する人も多くいます。

そうした意味で、Web系など技術専業でやっているエンジニアにはプログラミングスキルでは敵わないかもしれませんが、さまざまなキャリアパスへの可能性がある職種といってもよいのです。

 

しかし、プログラミングスキルを高めることで、SIerの業務に良い影響を与えることができますし、エンジニアとしての幅が広がります。

また、転職や副業の選択肢も増えるなど、いいこと尽くしでもあります。

エンジニアとしてのQOLを向上させるためにも、「独学で」プログラミングスキルをつけられるよう勉強することをオススメします。

 

この記事を読んで、少しでもSIerのエンジニアに植え付けられている誤解を解き、興味をもってくれる人が増えたらうれしいです。

 

  • この記事を書いた人

ヤマダヒロタカ

インフラエンジニア/ITアーキテクト/プロジェクトマネージャ。 SESのエンジニアから2度の転職を経て、現在某SIerにて技術系組織のマネージャーを務める。

-エンジニアの成長

© 2021 YAMADA BLOG