【自社開発エンジニアとSIerエンジニアのメリデメ】
こんにちはYsです!
今日の記事は、SIer会社勤め2年目の僕が、エンジニアとして働き始めて、
結局、自社開発のエンジニアがいいのか。それとも、SIerのエンジニアがいいのか。
それぞれ経験を元に思ったことを記事にしていきます。
これから働く人に参考になれば嬉しいです。
そもそも、エンジニアとして会社勤めをするのであれば、3パターンがあります。
※自社開発エンジニアとSIerの区別は面倒なのでパターン別に分けてみます。
- 自社開発で自社製品を作る
- 自社開発で他社製品を作る
- 他社にいき、他社製品を作る
スポンサードサーチ
1.自社開発で自社製品を作る
自社開発で自社製品を作る
これは、自社に自分の席があり、自分たちが考えたものを作り、売り上げを伸ばす。
会社としての売り上げも、自分たちの製品が売れるかどうか次第です。
- メリット
- 自分たちのサービスなので、愛着が湧く
- 頑張った分が、数字にして現れる
- サービスに特化した知識を身につけられる
- デメリット
- 飽きる
- サービスが売れなければ、お給料が減る(かも)
- 会社のことを全部やらなければいけない(基盤から何まで自分たちの力が試される、その分エンジニアとしての力は付くかも)
メリット
【自分たちのサービスなので、愛着が湧く】
これは、人によるかもしれませんが、自分たちが一生懸命に考えたサービスというものは愛着が湧きます。
自分たちが考えたものを形にして、世の中に出すことが出来るのが自社開発の最大のメリットと思います。
愛社精神ではありませんが、自分が考えたものが会社の利益に直結する。
そういったことは面白いと思います。
【努力した分が、数字にして現れる】
自分たちの考え、マーケティングが数字に直結します。
この画面の構成を変えたら、ユーザーは離れにくくなるんじゃないのか。 新しい機能を作成した部分のユーザーの反響はどうだろう。
といったものが全て、数字化され、それを感じることができます。
考える人、作る人、双方の醍醐味を自社製品だと感じることができると思います。
【サービスに特化した知識を身につけられる】
これは自社開発、他社の開発でもそうですが、自社製品の場合、自社の製品に関することの知識が多く身に着きます。
どこのサーバーを使っているとか、APIの仕様など、サービス内部のことに特化できるので仕事が物凄くしやすいです。
他社製品でも、長く携わっていれば上記のことも当てはまりますが、触れない(権限問題)部分が多くあるので、少しだけ意味合いが変わります。
経験談になってしまいますが、僕が他社のサイトを触る業務をしていた時に、
権限の問題で業務が止まってしまったり、気になる機能のプログラム部分を確認したい時にアクセスが拒否されていたりするなどがありました。
ほとんど全て委任してくれているところもありますが、サービスに特化した知識を本当に身に付けたいのであれば自社開発はオススメだと思います。
デメリット
【飽きる】
ざっくりですが、長いこと同じサービス(自社製品)に携わっていると飽きます笑
これは、先ほど述べたことと若干矛盾が発生しますが、飽き性の人は辛いかもしれません。
同じソースコード、同じようなリファクタリングをやっているといずれ飽きがでます。
サービスに特化した知識や技術は得ることはできるけれど、その分飽きやすい部分は否めません。
SIerとかと違い数ヶ月でロジェクトが変わって、案件も言語も変わるというのは難しいです。
【サービスが売れなければ、お給料が減る(かも)】
当たり前ですが、自分たちのお金で作成しているので、利益が出なければ給料が下がります。
賞与が少なくなっているとか。
サービスがクローズなんてことがあれば、回収するお金がなくなるということなので、結果的に社員に入ってくるお金が減ります。
逆に、売れればお金が発生しますし、新しいサービスがどんどん展開されることがあるかもしれません。
僕は基本的にWeb系だったので、極端にお金が減るといったことはありませんでしたが、
ゲーム業界ではサービスがクローズ(閉鎖)などが結構あるようなので注意が必要です。
【会社のことを全部やらなければいけない】
自社開発の人たちの宿命でしょうか。
エンジニア視点で言えば、新規事業の場合に、プログラミング言語は何を使って開発する?
フレームワークは何を使用する?といったことも決めなければなりません。
エンジニアとしてのスキルなどは、上がりますが、そういったことは面倒臭いと感じる人には向いてないでしょう。
社会人視点で言えば、人事考課、新人教育、鍵の施錠などなどの社内の雑務も全て行う必要があります。
客先常駐のSIerから自社開発のエンジニアに転職すると、上記のことが煩わしいと感じることがあるかもしれません。
2.自社開発で他社製品を作る
これは自社開発で、上記のように自分の席があって開発をするといった面では同じですが、
作るものは自分たちの製品ではなく、クライアントの製品を作ります。
- メリット
- 自社で開発なので安心して仕事ができる(先輩等が自社のため)
- クライアントの要望を聞き入れつつ、仕事ができるため、エンジニアとしての質が上がる
- 大手からの受注の場合、大きなシステムのソースコードが触れる。
- 作る製品がクライアントごとに違うため、飽きない
- デメリット
- クライアントの要望が厳しいとき、対応に追われる
- 納期が厳しい(貰える開発期間と、要望が釣り合っていない場合もちらほら)
- クライアントとの連絡、連携が難しい
メリット
【自社で開発なので安心して仕事ができる(先輩等が自社のため)】
これは自社開発で自社製品を作るときと変わりませんが、自社で作業するので、社員が基本的に自分の会社の人です。
親しい先輩や同僚、尊敬できる人が身近にいるので作業がしやすいはずです。
特に分からない事などがあった場合、安心して聞くことが出来るのは大きいと思います。
僕はコミュ障なので、自社の人がいるだけでも安心して仕事をすることが出来ました。
また、何か問題が起きてしまった時に、上司や同僚がいると心強いです。
【クライアントの要望を聞き入れつつ、仕事ができるため、エンジニアとしての質が上がる】
IT業界の古い風習で、プログラムだけを書く人がプログラマー、
仕様書を書けてシステムエンジニアといった考えがまだ残る部分もあります。(あまり細かく分けれていませんが、プログラマーだろうと仕様書は書きます)
クライアントと打ち合わせをしつつ、仕様書を提出し、それを元にプログラムを組んでいくのため、所謂「システムエンジニア」としての仕事ができるので成長ができると思います。
クラインアントの意向を汲み取る経験は、エンジニアとして非常に有益です。
【大手からの受注の場合、大きなシステムのソースコードが触れる】
客先常駐タイプのSIerでもありますが、大手からの受注の場合大きなシステムのソースコードが触れるので、とても勉強になります。
自分の携わっているプロジェクトが実は、CMにも出ているあの会社のシステムなんてこともあります。
また、他社製品を自社で請負って仕事をしている場合、権限問題などがあまりありません。
普通に自社製品を触っているかのように自由に開発する事が出来ます。
【作る製品がクライアントごとに違うため、飽きない】
これも客先常駐のSIerでも当てはまります。飽き性の人にはもってこいですね。
クライアントが1件ということはありません。
複数のクライアント、プロジェクトのため、ずっと同じ部分を触っていることはないので、飽き性の人は有益に仕事ができると思います。
逆に、プロジェクトが変わったりすれば、言語やシステムが変わるので順応性が求めれます。
エンジニア目線で言えば、全く勉強したことがないプログラミング言語の環境に飛ばされたりすることもあるので注意です。
デメリット
【クライアントの要望が厳しいとき、対応に追われる】
こういった状況があります。深夜に対応といったことも勿論あります。
クライアントがあってこその仕事なので、基本的には緊急の対応が走ります。
経営陣や営業の質が悪い会社だとこういった対応も契約の中に含めることがあるので注意です。
ただ、最近は改善傾向にあるみたいで多くの会社はシステムダウンレベルのものではない限り超緊急対応はないそうです。
【納期が厳しい(貰える開発期間と、要望が釣り合っていない場合もちらほら)】
クライアント的には、この時期までには欲しい!といった要望が飛んできます。ただ、開発側としては結構厳しい!といった状況があり得ます。
大きなプロジェクトの場合、リリースを伸ばすだけでも損害が出るので(既に決まった日にリリースするなどの宣伝をしていた場合はなおさら)
、納期は結構厳しめです。
また、クライアントは工数を管理して、この期間だったらこのお金だろうといった見積もりがあるため、工数管理が厳しいところもあります。
工数管理で言えば、工数管理の乖離(見積もりよりも時間がかかっていた場合)があった場合、クライアント側からの説明が求められます。
工数管理は自社開発の中でもありますが、他社が関わってくる場合は結構シビアです。
【クライアントとの連絡、連携が難しい】
基本的には、クライアントさんから「こういったシステムが欲しい」という受注を受け、
エンジニアが要件定義から落とし込み、クライアントさんと調整しながら、案件を進めるタイプ感じなので、連携がとにかく大変です。
「こういった問題が起きたので、もう少し工数かかります」 「あそこの機能やっぱり取り下げで!」
といったやり取りがある場合、クライアントさんと直接話をして、再度見積もり直し等があるので、そういった部分が難しいのは宿命です。
また、クライアントさん先にわざわざ行って、書類作成や打ち合わせなどの雑務もあります。
仕事時間の中で移動時間が発生したりするので、結構面倒な部分があったりします。
3.他社にいき、他社製品を作る
これは僕が今やっている仕事です。
他社の中にパートナーとして入り、他社のPCを借りて、仕事をします。
「郷にいれば郷に従え」のような感じで、他社の中に入る以上、入る会社の規定に従う必要があります。
- メリット
- 他社の内部事情が知れる
- 人も場所も変わるので飽きない
- 人脈が広がる
- デメリット
- 他社の規定に従わなければならない
- 場所が変わるので、交通費の申請や住む場所に困る
- 慣れたと思ったら移動しなければならない
メリット
【他社の内部事情が知れる】
これは他社に入る最大のメリットかもしれません。
自社開発だと自分たちの世界に入ったままなので、外が見えません。
ただ、他社に入ると、社員の事情、システムなどが丸見えなので、良いと思ったものは盗もうと思えば、盗めます。(持ち出し等ではなく、参考程度です)
例えば、勤怠管理だけを取っても、自動化されてたりとか、そういった部分は自社に取り入れて欲しいなどの参考ができます。
また、取引先が大手の企業の場合、自分は中小企業の社員だけど、パートナーとして大手企業の中に入ることができます。
外面だけ見たら、大手企業の仲間のように思えるので、悲しいかなちょっとした優越感に浸れるかもしれません。
【人も場所も変わるので飽きない】
これはメリットでもあり、デメリットでもあるでしょうか。
他社の中に入って働く場合、自分と同じように、さらに他社の派遣ないしはパートナー社員がいます。
そのため、契約が切れた人や退職した人の補充等で、人の入れ替わりが激しいです。
契約が短い場合、2−3ヶ月で、場所移動もあるので、色々な人や場所に出会うので、飽きることはありません。
僕がやっているプロジェクトでは、1年に10以上の人が入れ替わり、
もはや挨拶もせずいなくなってしまった人たちも結構います。
【人脈が広がる】
パートナーとして色々な現場に行くと色々な人と知り合えるので、人脈ができます。
自分と同じような考えを持った人や、起業をしようと人材を探している人、そういった人と出会った時に、自分がどう関われるかは自分次第ですが、確実に出会いがあります!
これはSIerとしての最大のメリットだと思います。
同じ会社では、考えの固定化がありがちですが、他社にいると新鮮な考えを拾えたりするので柔軟に物事を考えやすくなります。
デメリット
【他社の規定に従わなければならない】
これは一番面倒臭いかもしれません。
例えば、自社は私服OKだけど、取引先がスーツ着用の場合、スーツを着用しなくてはなりません。
開発観点で言えば、セキュリティ上の観点から、Chromeの拡張機能を入れるだけでも申請書が必要だったり、
エディターやキーボードやマウスは会社が決めたもの。といった厳しいところもあります。
パートナーに対して自由が無いところは、とことん自由がありません。
(自社の人はモニターを2台以上支給するけど、パートナーは1枚とか)
【場所が変わるので、交通費の申請や住む場所に困る】
メリットでも書きましたが、飽きない反面、面倒な部分があります。
勤め場所が変われば、住んでいる場所からの交通も変わります。
全然乗ったことのない路線の現場の時は慣れるまで大変です。
また現場が変わる度に、申請書を書き直したり、手続き部分に手間がかかる場合があります。
飽き性の人は良いかもしれませんが、落ち着きを求めている人にとっては辛いと思います。
自宅も都内寄りであれば良いですが、東京の西の方に住んでいて、品川駅や千葉方面の現場になったりしたら、絶望です。
【慣れたと思ったら移動しなければならない】
これも上二つと似たような感じですが、慣れたと思ったら移動は全然あり得ます。
自社都合だったり契約上だったり。
1ヶ月後には全く違った現場に行かなければならないなどはザラにあります。
上記にも書いていますが、落ち着きを求める人には本当に向いていないと思います。
スポンサードサーチ
まとめ
自社開発や他社開発のメリット、デメリットを書きました。
それぞれメリット・デメリットありますが、最終的に行き着くのは、
どのメリットを自分の強みとして活かせるのか。デメリットを逆にメリットに変えたり、許容するのか。全ては自分次第です。
ただ、あくまで向き不向きはあるのでそれをまとめると
自社(内)開発のエンジニアが向いている人
・サービスに特化した自分たちの考えを実現したいと思っている人
・落ち着いた環境で仕事がしたい人
・バリバリ仕事をしてその結果が認められたいと思っている人
他社開発(SIer)エンジニアが向いている人
・飽き性の人
・どちらかと言うと色々な言語やシステムを見てみたいと思っている人
・人脈を作りたいと思っている人
エンジニアとして働き始める事前知識として役に立てば嬉しいです。
前の記事