駒鳥です。
SIerはプログラミングができない、とよく言われます。
そしてそれは、おおよそ事実であると言えます。
SIerはプログラミングができないです。
そして、SIerがプログラミングできない理由は、SIerのビジネスモデルにあります。
この記事では、プログラミングしたいのにできないと焦っているシステムエンジニアの方向けに、なぜSIerはプログラミングができないのかと、そのままSIerに在籍し続けることのデメリットを整理し、この先のキャリアのために考えておいた方がいいことを記載します。
今まさに、プログラミングしたいのにできないことに悩んでいるシステムエンジニアの方の一助になれば幸いです。
なぜSIerはプログラミングできないのか。
そもそも、なぜSIerはプログラミングができないのか。
SIerが提供するのは、ITソリューションであることがほとんどなのに。
その原因は、SIerのビジネスモデルにあります。
SIerの多くは、自社の中に開発チームを抱えるのではなく、案件の規模に応じて開発会社、ソフトハウスなどの下請けに開発を委託することでプロジェクトを遂行します。
いわゆる2次受け、3次受けと言われる開発会社(協力会社、とも言います)にシステム開発を外注し、その費用を含んだ費用を発注元に請求して売り上げを上げています。
さて、SIerがこのようなビジネスモデルである結果、実際の開発作業はSIerの仕事ではなく、委託先である開発会社の仕事となります。
異なる会社の人間が集まってプロジェクトを遂行するわけですから、開発会社にとっての発注元であるSIer自身は、案件の進捗管理や会社間の調整などにリソースを使う必要があります。
当然、この構造では、SIerがプログラミングをすることはありません。
これが、SIerがプログラミングできない理由です。
もちろん、全てこのパターンに当てはまるわけではありません。
規模の小さい案件であれば、開発会社への委託も必要なく、SIer自身が抱える小規模な開発チームでプロジェクトをこなすこともできるでしょう。
また、会社の方針、案件の取り方によっては、ちゃんとプログラミングもでき、技術力が身につくこともあります。
しかし残念ながら、そうしたSIer企業は少数派です。
また、規模の大きい案件であればあるほど、SIerの社員が直接プログラミングをする機会は減ってしまいます。
そして、実際どんなプロジェクトに配属され、どのように立ち回ることになるのか、SIerの社員自身にはなかなか選ぶことができません。
プログラミングできないSIerに在籍し続けると何がヤバイ?デメリットを整理。
本当はプログラミングがしたいと思っているエンジニアにとって、プログラミングできないSIerに在籍し続けることは、デメリットとなります。
このデメリットはいくつかの観点がありますが、整理すると次の通りです。
- 技術力がつかない
- 業務から新しい技術、プログラミングスキルを学べない
- 自分の市場価値を上げられない
まずシンプルに、業務でプログラミングができないので、技術力がなかなかつきません。
さらに、SIerでは、新しい言語やフレームワークを使ってみたくても、クライアントの許可が下りず、長年動いている言語や、昔からあるフレームワークを使った開発となることが多々あります。
業務の中で技術的な挑戦をすることがなかなかできず、新しい言語やプログラミングスキルを学ぶことができません。
【体験談】SIerにいた頃、オープンソースのライブラリを使うことができなかった話
SIerにいた頃、正確に言うと、2次受けのソフトハウスに勤務していた時のことです。
なんのライブラリだったか覚えてませんが、WEB画面の開発をするために、あるライブラリを使おうとしたことがあります。
それを周りのSIerに話してみたのですが、結局ライブラリの利用許可はおりませんでした。
その理由は、
- オープンソースのライブラリの信頼性が担保できない
- ライブラリはバージョンアップされていくが、ライブラリバージョンを管理し更新し続けられない
と言うものでした。
当時は、「まあ、そう言うものか。。」と諦めちゃったのですが、今思うとなかなかの暴論ですね。
特に前者。オープンソースがダメならlinuxも使えないじゃん。。
機能として必要な要件を満たせて、画面全体として不具合がないかをちゃんと検証できれば、オープンソースでも問題ないはずです。
後者は解決しやすいのでは?と思いますが、実はそうでもなかったりします。
SIerは、システムの構築や運用をクライアントから請け負って行います。
開発が担当であれば、開発が終わって運用が始まれば、その現場を離れる事になります。
運用のメンバーでさえ、派遣元企業の都合や、会社間の契約の都合で、担当する人、会社が変わることは十分あり得ます。
その状況で、管理運用しないといけないものをできる限り減らしたい、と言うのはまあ理解できなくもないのです。
先述した、SIer業界の多重構造が影響しているのです。
ライブラリ1つ使うのにこの有様では、新しい言語やフレームワークを使おうとしても相当ハードルが高かったことでしょう。
SIerの人は技術力がないと言われてしまう理由
SIerは技術のことが何もわかっていない、技術力がないと言う方がたまにいます。
これは一理あって、SIer、特に新卒から長くSIerに身を置いている人は、プログラミングの実績を十分に積んでいないことが多いです。
業務でプログラミングをしてきた人から見れば、知識は少なく経験も浅く、その結果設計力もない、と感じるのも納得です。
こうした、背景から、SIerの人は技術力がなくてだめだ、と言う批判もあるのは事実です。
SIerにいてもプログラミングはできないし、技術力も身につかないままです
SIerにいても、プログラミングはできるようにならないのでしょうか。
結論、開発がメインの業務になっているシステムエンジニアと比べれば、SIerはプログラミングできるようにはなりませんし、プログラミングできないままです。
技術力も身につかないままです。
僕の前職は、いわゆる2次受けの開発会社でした。
その状態ですら、他の会社でプログラミングをメインにしているシステムエンジニアに対して、技術力の差を感じていました。
僕らを管理する立場であったSIerの社員であれば、さらにその差を感じていたことでしょう。
もちろん、業務時間外でプログラミングを学ぶことはできます。
ただ、毎日業務の中で実践的なコードを書いているエンジニアと、業務外で学ぶエンジニアでは、技術力の差は大きくなる一方です。
プログラミングができないSIerに長く在籍するばするほど、技術力の差は開きます。
そうして開いた差は、いざ転職の時に、市場価値として如実に現れることになるのです。
たとえ2次受けで開発をしていても、技術力が身につかないこともある
2次受け、3次受けの開発会社、ソフトハウスに勤めている場合は、どうでしょうか。
先述した通り、私は以前、2次受けメインのソフトハウスに勤務していました。
こうした、下請けのソフトハウス、開発会社は、案件を転々とすることが多く、初期の要件定義や技術選定には携わらないことが多いです。
開発を行うフェーズになって初めて案件に参加し、決められたフレームワーク、決められた仕様をコーディングして、それが終わればプロジェクトからさっていく。
この繰り返しをしていると、ある程度のところまでは技術力を身につけることができても、どこかで頭打ちしてしまいます。
たとえば、要件からシステムの全体像を設計し、運用まで考える、という経験を積むことはできないままです。
自分でコントロールできる業務が少ないのです。その分、技術力の伸びしろも小さいのです。
SIer業界だけど下請けだからプログラミングの機会があるし大丈夫、というのは間違いです。
自分の案件と、会社が受けている他の案件を見比べて、技術的なステップアップが継続的に見込まれるかを判断すべきです。
そうしないと、いつまでも下請けエンジニアを脱出できず、技術力も身につかずジリ貧になってしまうかもしれません。
SIerに入ったのにプログラミングできない!と焦っているエンジニアが考えるべきこと
SIerで働くシステムエンジニアで、プログラミングをしたいのにできないと焦っている方が考えるべきは、次の2つです。
- プログラミングスキルを今後のキャリアにどう活かしていきたいか
- SSIerとしてできるようになることは何か
プログラミングスキルを今後のキャリアにどう活かしていきたいか
まず、SIerに入ってプログラミングができないことの、何に困っているかは考えた方が良いです。
一番大切なのには、プログラミングを今後のキャリアにどう活かしたいか、を考えておくことです。
さらに言うと、今後プログラマーとしてキャリアを築いていきたいかどうか、を考えておく必要があります。
IT系の会社に入ったつもりなのにプログラミングできないのってまずくない?
と言う焦りを抱える人もいると思います。
しかし、単に焦っているだけなのであれば、ちょっと落ち着いて考えた方が良いです。
プログラミングできるようになることが、自分自身のキャリアのために本当に必要なのかを考えてみてください。
後述する転職は1つの選択肢ではありますが、それが必ず正しいとは限りません。
SIerだからこそできるようになることもあると思います。
プログラミングはいっそ諦めて、SIerでできることを伸ばしたり、そこからプログラマーとは違うキャリアを目指す手もあります。
プログラミングがしたい、と思うのなら転職しましょう
プログラミングがしたい、エンジニアとして今後キャリアを歩んでいきたい、と考えるのであれば、早めに転職をした方が良いです。
SIerでプログラミングができるプロジェクトに配属される可能性はもちろんありますが、普段から開発がメイン業務であるシステムエンジニアと比べると、どんどん差がついていきます。
プログラミングがしたいのであれば、SIerに長くとどまることはエンジニアのキャリアにとって、不利です。
転職の際は、SIerの下請けのソフトハウス・開発会社でもいいんですが、できれば自社でソフトを開発していたり、BtoC向けにアプリやWEB開発をしている会社に転職したほうが良いでしょう。
開発の進め方や速度も全く異なっており、経験できることや、そのスピード感が全く違うからです。
SIerとしてできるようになることは何か
プログラミングに限って言えば、正直、SIerに在籍していてはできるようになりません。
しかし、SIerは何もできないわけではありません。
ここをたまに履き違えている方がいます。
「SIerは何にもできない」ということを言う人が一定数いますが、それはそれで間違っています。
SIerに求められるのは、プログラミング能力そのものよりも、案件管理によってプロジェクトを前に進める力であったり、技術要素を組み合わせて、運用も含めた全体を設計する能力であったりします。
また、開発会社をまとめ上げて、ビジネスとして成立させているのもSIerです。
SIerはBtoBのビジネスを行いますが、このBtoBにおいては、開発スキルはもちろん、SIerの調整力、推進力も同様に重要です。
本当にダメなSIerは、開発ができないSIerではなく、調整力や推進力がないSIerです。(そういうSIerがいるのも、また事実ですが。)
逆に、開発メインのプログラマーは、こうした調整力、推進力が欠けた人が多かったりします。
開発はできるけど、お客さんとのやりとりは苦手だったり、やりたくないと言うシステムエンジニアは意外と多いですが、ビジネスは開発だけでは成り立ちませんし、SIerのような役割の人も、とくにBtoBのビジネスにおいては重要です。
僕は先述した開発会社から転職してBtoCメインの会社に入り、その中のBtoB担当部署に所属しています。
僕より開発できるシステムエンジニアは多いですが、正直自分より全体を見つつプロジェクトを推進できるシステムエンジニアはあまりいない、と感じたりしています。
まとめ
SIerは、ITソリューションを扱う会社ではありますが、自らプログラミングを行う集団ではありません。
SIerにいても、プログラミングはできないままです。
しかし、それが絶対的に悪というわけではありません。
SIerでも伸ばせるスキルはありますし、そこから次の転職先にも繋がります。
プログラミングができないことの何が問題なのかや、自分のキャリアを考えた上で、次のアクションを決められると良いと思います。
しかし、もしプログラミングを学び、システムエンジニアとしてキャリアの築いていきたい、と考えるのであれば、早めの転職を考えてみましょう。
それでは。