こんにちは、やなっぎです。
アーリーステージからメガベンチャーまでWebエンジニアとして10年以上活動しています。
受託開発や自社開発っていうけど、いまいち違いがわからないな…
業界未経験だと、なかなかイメージ湧かないよね
職種や仕事内容は大きく変わるから、しっかり理解しておこう^^
受託開発と自社開発では、同じシステムを作るとしても、実際の仕事内容は大きく変わります。
そこで今回は、「受託開発」と「自社開発」の違いを説明しながら、一般的な仕事内容を解説していきます。
- 「受託開発」と「自社開発」の違い
- 「受託開発」と「自社開発」の職種や仕事内容
- 「受託開発」と「自社開発」のどちらが自分に向いてそうか
この記事を読めば、業界未経験でも転職活動時の企業選びの勘所をつかめるようになります。
最終的には、「受託開発」、「自社開発」にかぎらず個別の会社で仕事内容は異なるので、転職時の面談でしっかり確認しておきましょう!
目次
受託開発と自社開発の違い
IT業界の中でも受託開発と自社開発では大きく異なっています。
代表的な違いとしては、「システム開発形態」、「企業の呼ばれ方」、「開発するシステム」、「エンジニア職種」が異なります。
そのため、ITエンジニアに求められる能力やスキルも異なるので、実際の仕事内容も大きく変わります。
受託開発 | 自社開発(内製化) | |
---|---|---|
システム開発形態 | ①顧客からシステム開発を受注する ②システムを開発・納品する | ①自社でシステムを企画・開発する ②顧客にサービスを提供する |
企業の呼ばれ方 | SIer(エスアイヤー) | Web系企業、内製企業など |
有名な企業例 | NTTデータ、日立製作所、富士通、NECなど | Google、Amazon、メルカリ、サイバーエージェント、ファーストリテイリング、朝日新聞社など |
よく開発するシステム | 業務システム (製造管理、受注管理、財務管理システムなど) | Webサービスやアプリ (ECサイト、SNS、SaaSツールなど) |
主なエンジニア職種 | プロジェクトマネージャー(PM) システムエンジニア(SE) プログラマー(PG) | フロントエンドエンジニア バックエンドエンジニア インフラエンジニア Webエンジニア iOS/Androidエンジニア SRE QAエンジニア セキュリティエンジニア 機械学習エンジニア データエンジニア など |
上記の表を見てもらうとわかると思いますが、「受託開発」と「自社開発」でエンジニア職種が違います。
職種が違うということは、同じシステムを作る仕事でも仕事内容が大きく変わります。
SIerの企業でも、特定の部署では自社開発をしているケースもあるから、あくまで一般的な話として押さえておいてね
受託開発とは
受託開発は、「顧客(発注元)から依頼されてシステム開発を請け負う開発形態」です。
システムを受託開発する企業は「SIer(エスアイヤー)」と呼ばれ、システム開発を受注し、システム開発をして顧客に納品するビジネスモデルを営んでいます。
SIer(エスアイヤー)は、システムインテグレーターの略です。システム開発をするので「システムベンダー」とも呼ばれたりします。
大手のSIerとしては、NTTデータ、日立製作所、富士通、NECなどがあります。SIer業界は、大手企業から中小企業まで多くの企業がひしめき合っています。
受託開発の特徴
受託開発の特徴としては次の通りです。
- 開発するシステムは業務システムが多い
- 納期に追われがちで激務になりやすい
- プロジェクトマネジメント力が高くなる
開発するシステムは業務システムが多い
受託開発の発注元となる企業は、銀行、保険会社、大手製造業、大手流通企業など誰もが知るような企業が多いです。
開発するシステムも、発注元企業が業務で使う製造管理、受注管理、財務管理などの業務システムが多くなります。
また、大企業が多いので、システムも大規模かつ複雑になりやすい傾向があります。
例えば、みずほ銀行の業務システムも、複数のシステムベンダーが開発しています。みずほ銀行のシステム障害がときどき問題になってますが、普段スムーズに銀行を使えるのもSIerの方々のおかげだったりします。
納期に追われがちで激務になりやすい
受託開発の場合、スケジュールが決まっているため、プロジェクトマネジメントがうまくできないと納期に追われて激務になりやすいです。
また、多くのシステム開発では、システムが大規模かつ複雑なため「多重下請け構造」でシステムを開発します。
多重下請け構造では、多くの企業や関係者が関わるため、複雑なパズルのような状態になってしまいます。
例えば、どこかで遅れが発生すると、他の部分に伝播してスケジュール全体が遅れて、リリース前に残業でなんとか解決するといったことが起きます。
また、建築などとは違いソフトウェアは目に見づらいこともあり、よりプロジェクトの炎上リスクに拍車をかけています。
多重下請け構造とは、顧客からシステム開発を受託した企業(1次受け)が別の受託企業にシステム開発を発注し、その受託企業もまた別の受託企業に発注するといった構造のことです。
顧客から受注の応じて、1次受け、2次受け、3次受け、4時受けなどと呼ばれたりします。
個人的には、受託開発の企業で働いている人のスキルが足りないとかではなく、多重下請け構造という構造上の問題だと思っているよ
また、少ないですが受託開発の企業でもアジャイル開発などの手法をとり入れて、顧客と円滑な関係を築き、健全にプロジェクトを推進している企業もあるよ
プロジェクトマネジメント力が高くなる
SIerで働くと技術的な知識だけでなく、プロジェクトマネジメントのスキルが身につきます。
特に、1次受けの企業での業務内容は、顧客折衝やパートナー企業とのやりとりなどが多いため、プロジェクトマネジメントのスキルを磨きやすいです。
受託開発企業での職種と仕事内容
SIerでのITエンジニアの職種として、主に以下の3つがあります。ITコンサルなどもありますが省略します。
- プログラマー(PG)
- システムエンジニア(SE)
- プロジェクトマネージャー(PM)
キャリアアップとしては、「プログラマー」→「システムエンジニア」→「プロジェクトマネージャー」としていくキャリアを重ねるケースが多いです。
また、1次受けや2次受けの企業の場合、「システムエンジニア」からキャリアが始まるケースも多いです。
プログラマー(PG)の仕事内容
プログラマーは、プログラミングを書く仕事です。また、作成したプログラムが想定通りに動くかテストすることもあります。
顧客のシステムの利用技術に依存しますが、いろんなプログラミング言語を学べたり、いろいろなシステム設計をさわれるのがメリットです。
しかし、多重下請け構造の末端の方にいると、激務になりやすく、給料が上がりづらいのが難点です。
3次受けや4次受けの企業でプログラマーとして働いていた知人の話では、「担当の仕事を3割ぐらいの時間で終わらせて、悠々自適に仕事していた」という話もあるから、最終的には、個人のスキルや状況に大きく依存するのであしからず〜
システムエンジニア(SE)の仕事内容
システムエンジニアの仕事内容は、会社や経験年数によって大きく異なります。
例えば、1次受け企業ではお客さんとの調整やスケジューリングなどのプロジェクトマネジメント業務が多いです。
3次受けや4次受けの企業では、発注先の受託企業から設計書を渡されてプログラミングやテストといったプログラマー(PG)と同じ仕事内容のことが多いです。
また、経験年数が若手の場合、1次受けでも、システム開発の流れや技術的な知識を得るために、プログラミングやテストをするケースもあります。
システムエンジニアは、クライアントワーク、プロジェクトマネジメント、お客さんやパートナーとのコミュニケーションなどのスキルを学ぶことができます。
1次受けや2次受けのSEの場合、「ゴリゴリプログラミングを書くというイメージだとちょっと違う」となるから気をつけてね
プロジェクトマネージャー(PM)の仕事内容
プロジェクトマネージャーは、顧客から受注したプロジェクトのマネジメントをする仕事です。
WBSというタスクを細分化させ、ガントチャート引いて、スケジュール通りにプロジェクトを管理していきます。また、スケジュールだけでなく、品質、コストなどの面でもプロジェクトを管理します。
受託開発企業がおすすめな人
受託開発企業がおすすめな人は次の通りです。
- いろいろなシステムや技術に携わりたい
- プロジェクトマネジメントのスキルをつけたい
受託開発の企業の中で、プログラマーとしていろいろなプロジェクトに携わることができれば多くの学びを得ることができるでしょう。
また、システムエンジニアやプロジェクトマネージャーとして大規模なプロジェクトを管理することで、プロジェクトマネジメントのスキルを高めていくこともできます。
自社開発とは
自社開発は、「自社でシステムを開発・運用する開発形態」です。
自社開発の企業は「Web系企業」や「内製企業」と呼ばれることが多く、自社でシステムを企画・開発し、サービスを提供しています。
Web系企業では、スタートアップの企業が多いです。スタートアップは、数十人の規模から、数百人規模までさまざまです。
スタートアップ以外では、外資系企業だとGoogleやAmazon、大手だとメガベンチャーと呼ばれてメルカリ、サイバーエージェント、DeNAなどの企業があります。
また、一部の大手企業では業務システムはSIerに外注しつつも、Webサービスやアプリを内製化しているケースもあります。
例えば、朝日新聞社、東急、KINTOテクノロジーズ(トヨタグループ)などの会社では、エンジニア組織を作って一部のシステムを自社で開発しています。
自社開発の特徴
自社開発の主な特徴としては次の通りです。
- 開発するシステムはWebサービスやモバイルアプリが多い
- 専門性を高めて給料を上げやすい
- エンジニアの働き方は柔軟な傾向にある
開発するシステムはWebサービスやモバイルアプリが多い
自社開発の場合、自社の売上を増加させるためにシステムを開発します。
そのため、個人向けのECサイトやSNSアプリ、法人向けのSaaSツールなどのWebサービスやモバイルアプリを作ることが多いです。
例えば、GoogleではGoogle検索、Google広告、Gmailなど多種多様なシステムを開発しています。
自社開発企業では、Webサービスやアプリを多くの人に使ってもらうことで売上を上げるため、システムを開発するだけでなく運用してより多くの人に使ってもらうということが重要視されます。
専門性を高めて給料を上げやすい
自社開発の企業では、職種が専門性ごとにわかれているので、専門性を高めていきやすくなります。
例えば、iOSアプリ、Androidアプリ、Webフロントエンド、バックエンド、インフラ、セキュリティなどさまざまな専門分野があります。
また、Webサービスやモバイルアプリを経由した売上が大半を占める企業の場合、Webサービスやアプリを開発するスキルが企業の競争力に直結します。
そのため、手に職をつけて専門性を高めることで、市場価値を高めて昇給や転職がしやすくなります。
エンジニアの働き方は柔軟な傾向にある
エンジニアの働き方は柔軟な傾向があります。
これは、自社でサービスを開発・運用しており、自分たちで全部決められるためスケジュールや働く場所の融通がつけやすいためです。
また、クライアントワークではないので、顧客とのミーティングやパートナーとの相談なども必要ないため、子育て中の急な中抜けや長期の有給休暇などもとりやすいです。
このように、自社内で裁量を持ってシステムの開発を進められるため、時間的な融通がききやすく、働く場所も自由な傾向があります。
最近だと対面で話すことの価値も見直されてきて、フルリモートがしづらくなっている企業もちらほらでてきているよ
自社開発企業での職種と仕事内容
自社開発企業での一般的なITエンジニアの職種としては、次のような職種があります。
トレンドとしては、技術が進歩していくことで、専門性が高まり、職種が細分化されていっています。
- フロントエンドエンジニア
- バックエンドエンジニア
- インフラエンジニア
- SRE(Site Reliability Engineer)
- Webエンジニア
- iOSエンジニア
- Androidエンジニア
- QAエンジニア
- セキュリティエンジニア
- データエンジニア
- データサイエンティスト
- 機械学習エンジニア
- エンジニアリングマネージャー
- など
よくあるキャリアパスとしては、「シニアエンジニア」までは同じで、「スペシャリスト」と「マネージャー」の2つに枝分かれします。
スペシャリスト
スペシャリストは、専門分野を深めていきます。専門分野ごとに得意な領域や仕事内容も変わります。
職種 | 主な専門分野 | 仕事内容の例 |
---|---|---|
フロントエンドエンジニア | HTML, CSS, JavaScript、TypeScript、UI/UX | ReactやVueなどのフレームワークを使ったWeb画面の開発 |
バックエンドエンジニア | PHP/Ruby/Javaなどの言語、API、DB、SQL、キャッシュ | サーバーサイドのプログラミング言語やフレームワークを使ったAPI開発 |
インフラエンジニア | OS、サーバー、ネットワーク、ミドルウェア、AWS/GCPなどのクラウド環境 | Webサービスが動くインフラの構築、運用、監視 |
Webエンジニア | フロントエンドからインフラまでの専門分野 (イメージとしては広く浅く) | フロントエンドからインフラまで幅広く開発 |
iOSエンジニア | iOS、Objective-C、Swift、UI/UX | Swiftを使ったiOSアプリの開発 |
Androidエンジニア | Android、Java、Kotlin、 UI/UX | Kotlinを使ったAndroidアプリの開発 |
企業ごとで職種の呼ばれ方、求められる技術や仕事内容も若干変わるから、転職時の面談などで仕事内容のすり合わせは必ずおこなおうね^^
システムエンジニアと比較すると、「広く浅く」よりも「狭く深く」と専門領域を極めていくイメージです。
スペシャリストのデメリットとしては、専門分野となるプログラミング言語やツールが衰退していった時に、スキルの学び直しが必要になることです。
しかし、プログラミング言語やツールの背景となる基礎理論や基礎知識は流用できるため、一から学び直しになるわけではないので大きな問題ではないと思っています。
マネージャー
マネージャーは、開発チームや開発組織のマネジメントをする職種です。
主な仕事内容としては、
- 担当チームや担当組織の成果を最大化させるために、チームをマネジメントする
- 開発組織を拡大するために、採用、配置、育成、評価をする
といったことが多いです。
エンジニアリングマネージャー(EM)の場合は、プレイングマネージャーとしてチームをマネジメントしつつ、開発もしているケースもよくあるよ
キャリアアップとしては、「エンジニアリングマネージャー」、「VPoE(ブイピーオーイー)」、「CTO」とキャリアアップしていきます。
キャリアアップするごとに、対象となるチームや組織が大きくな理、求められる成果も技術から事業に近づいていきます。
自社開発企業では、技術を活用して売上を上げているため、マネージャー職でもシニアレベルので技術力が求められます。また、エンジニア業界ではマネージャー不足もあり、マネジメント能力も専門的な知識として市場で評価されています。
スペシャリストになりたい人が多いので、マネージャー職種の希少性は高くなりやすいんだよ
自社開発がおすすめな人
自社開発企業がおすすめな人は次の通りです。
- 作ったシステムの反応をダイレクトに感じたい
- 自由な働き方や裁量を持って仕事を進めたい
- 専門性を高めて給料を上げていきたい
自社開発の企業では、自社でWebサービスやモバイルアプリを顧客に提供するため、作ったシステムの反応がダイレクトに得ることができます。
また、自社で決めることができるため、裁量を持って働くことができます。
さらに、Webサービスやモバイルアプリが自社の売上に直結することが多いので、エンジニアのスキルが高く評価されて、給料も上げやすいです。
まとめ:専門性を高めて自由な働き方や給料を上げたいなら自社開発企業がおすすめ
今回は、業界未経験者向けに「受託開発と自社開発の違い」を解説しました。
受託開発と自社開発での主な違いは次の通りです。
受託開発 | 自社開発(内製化) | |
---|---|---|
システム開発形態 | ①顧客からシステム開発を受注する ②システムを開発・納品する | ①自社でシステムを企画・開発する ②顧客にサービスを提供する |
企業の呼ばれ方 | SIer(エスアイヤー) | Web系企業、内製企業など |
代表的な企業例 | NTTデータ、日立製作所、富士通、NECなど | Google、Amazon、メルカリ、サイバーエージェント、ファーストリテイリング、朝日新聞社など |
よく開発するシステム | 業務システム (製造管理、受注管理、財務管理システムなど) | Webサービスやアプリ (ECサイト、SNS、SaaSツールなど) |
主なエンジニア職種 | プロジェクトマネージャー(PM) システムエンジニア(SE) プログラマー(PG) | フロントエンドエンジニア バックエンドエンジニア インフラエンジニア Webエンジニア iOS/Androidエンジニア SRE QAエンジニア セキュリティエンジニア 機械学習エンジニア データエンジニア など |
受託開発の特徴、職種や仕事内容から受託開発がおすすめな人は次の通りです。
- いろいろなシステムや技術に携わりたい
- プロジェクトマネジメントのスキルをつけたい
一方、自社開発の特徴、職種や仕事内容から自社開発がおすすめな人は次の通りです。
- 作ったシステムの反応をダイレクトに感じたい
- 自由な働き方や裁量を持って仕事を進めたい
- 専門性を高めて給料を上げていきたい
その上で、手に職をつけたい、給料を上げたいといった方には自社開発企業がおすすめです。