自社開発と受託開発の違い|未経験エンジニアにはどちらがおすすめか
みなさんこんにちは!だるまっちです。
今日は自社開発と受託開発の違いやメリット・デメリットについて書いていきます。
エンジニアとして就職や転職しようと考えている方の参考になれば幸いです
自社開発とは?
自社開発とは、商品やサービスを自社で持っており、その商品やサービスを自社のエンジニアが開発することを指します。
例えば、株式会社AAAという会社が「エンジニア転職サポートくん」というサービスを作っていたとします。もしだるまっちがこの会社にエンジニアとして就職すれば、だるまっちは「エンジニア転職サポートくん」の開発を行うことになりますよね。これが自社開発になります。
まとめると、自社のサービスを開発することを自社開発と言います。
受託開発とは?
受託開発というのは、社外のサービスを開発することだと思ってください。
例えば、株式会社BBBという会社が「レシピ一発検索ちゃん」というサービスを提供しているとします。しかし、株式会社BBBにはエンジニアがいません(メインのエンジニアが辞めてしまいました)。「レシピ一発検索ちゃん」をもっといいサービスにするためにはエンジニアの力が必要なのですが、なかなかいい人材が見つかりません。
そこで株式会社BBBは株式会社CCCに開発をお願いしました。このお願いされた株式会社CCCが受託開発になります。株式会社CCCは自社でサービスを持っていないが、このようにエンジニアが不足していて困った人いる会社のサービスを一緒に開発していきます。
まとめると、他社のサービスを一緒に開発することを受託開発と言います。
自社開発のメリット
自社開発のメリットは次の4つです。
- スムーズなコミュニケーションを取りながら開発できる
- スケジュールの調整がしやすい
- 自分の意見やアイディアを形にできる
- サービス全体を考えながら開発するスキルが身につく
スムーズなコミュニケーションを取りながら開発できる
自社開発では、エンジニアやデザイナー、マーケター、セールスの人が多くの場合自社の社員さんなので、気軽にコミュニケーションが取りやすいです。気軽にコミュニケーションが取りやすいと、精神的なストレスが減ります。
例えば、とある機能の開発をしているときに、デザインの部分でわからないところが出てきたとします。そのときに、自社にデザイナーがいれば、そこまで気を使わずにすぐにビデオチャットなので繋いで話すことが出来ます。このようにすぐにコミュニケーションが取れることで、自分の仕事も前に進んで行くので、精神的なストレスを貯めずに仕事が出来ます。
スケジュールの調整がしやすい
自社開発では、何かサービスをリリースする際にある程度自分たちでスケジュールを決めることが出来ますし、一度スケジュールを決めた後も大きなバグに遭遇してしまった場合やもっと良い機能を開発するとなった場合にスケジュールの調整がしやすいです。
実際にだるまっちも自社開発をしているのですが、開発中に追加で「画像アップロード機能あった方がユーザーは使いやすいのではないでしょうか?」という提案をしてスケジュールを少しだけ伸ばして貰ったこともあります。このようにサービスをより良くするためにスケジュールを伸ばすことが比較的容易に出来るのが自社開発の良いところです。
自分の意見やアイディアを形にできる
上記でも少しだけ触れましたが自社開発だと、自分からサービスをより良くするための提案をする機会が多いです。上記の画像アップロード機能もそうですし、ページのデザインの配置なども「ユーザーにとってこういう動線の方が使いやすいのではないか?」と言った提案をしながら、開発することも日常茶飯事です。
このように自分の意見やアイディアを形にしながらサービスをより良いものにしていく毎日はとてもやりがいがあります。
サービス全体を考えながら開発するスキルが身につく
自社開発のエンジニアはサービスをより良いものにするために、ビジネスモデルの把握や他の職種の人の仕事内容等もある程度把握する必要があります。なので、エンジニアリングのことだけでなく、そのサービスに関わる全体的な知識やスキルを身につける事ができます。
だるまっちもただ単にサービスを開発するというよりも、「今セールスの人がこういう課題感を持っているからその部分を解決できるような開発をしよう!」と言うことで開発をしたり、「この機能がユーザーに取って使いにくく、ユーザーの満足度が下がるから優先度高く改善しよう!」と言った具体で自分で考えながら開発をしています。こういったことを繰り返すうちに、必然とサービスや他職種の人の仕事内容への理解が深まっていき、サービス全体を考えながら開発するスキルが身につきます。
受託開発のメリット
受託開発のメリットは次の3つです。
- 様々な業界の知識が溜まる
- ビジネススキルが身につく
- 技術的なスキルが身につく
様々な業界の知識が溜まる
受託開発では、他社のサービスを開発するため、毎回違った業界やカテゴリの開発をしていきます。そのため、様々な業界の情報やビジネスモデル・サイトの構造などを把握することが出来るので、そういった点でかなり楽しいと思います。だるまっちも業務委託で画像投稿サービスやECサイトの開発を行った経験がありますが、会社ごとにビジネスモデルやマネタイズのタイミングが違うので、とても勉強になりました。
ビジネススキルが身につく
受託開発では、お客さんとコミュニケーションを取りながら納期までに開発することが求められます。またお客さんのニーズを汲み取って提案する機会もあるため、ビジネスマンとして必要なスキルが身に付きます。
「いきなりコミュニケーション取りながら開発して、時には提案までするなんて無理だ!」と思われた方もいるかもしれませんが、受託開発では上司と二人三脚で開発したり、チームで開発することが多いので、少しずつサポートしながらこれらのスキルを身につけることが出来るので安心して開発することが出来ます。
技術的なスキルが身につく
受託開発で、最も気をつけなければいけないのが「バグ」です。もちろん自社開発でも気をつけなければ行けないのですが、受託開発ではお金を貰って開発していることや自分のコントロール出来ない範囲が多いので(例えば、土日にバグが発生して、先方にここをお願いしたいと連絡しても返信が返ってこないなど)、バグを出来るだけなくした状態で納品する必要があります。
そのために、チーム内でコードを何回もチェックして、フィードバックを貰う機会が多いので(レビューと言います)、バグの少ないコードを書くスキルやよりパフォーマンスの高いシステムを開発するスキルなど品質の高いコードを書くスキルが身につきます。
未経験エンジニアにはどちらがおすすめか
だるまっちの意見では、次の2つです。
自社開発がおすすめの方
「将来自分で世の中にインパクトがあるサービスを開発したい」、「自分のアイディアや意見をどんどんと形にしたい」、「エンジニアリング以外のこともやってみたい」という想いを持っている人は自社開発がおすすめです。
理由としては自社開発では、サービス全体のことを考えながら常日頃サービスを開発するスキルが求められるため、自分のアイディアや意見を形に出来る機会が多いです。また、どういった開発をすればユーザーに響くのかといったビジネス的な観点も養うことができるので、将来自分でサービスを開発したいと思っている方には、自社開発がおすすめです。
受託開発がおすすめの方
「エンジニアとして着実に成長したい!」、「将来フリーランスとして仕事をしていきたい!」と考えている方は受託開発がおすすめです。
理由としては受託開発では、お客さんとコミュニケーションを取りながら納期までに開発するスキルが求められるため、基本的なビジネススキルが身につきます。また、コードのレビューなどもしっかりしてもらえる機会が多いのでエンジニアリングスキルも着実に身につきます。なので、将来フリーランスとして活躍したいと思っている方には、受託開発がおすすめです。
以上、いかがでしたでしょうか??
みなさんのお役に少しでも立てれば光栄です!
「はてぶ!」していただけるととても励みになります。
ここまで読んでくださってありがとうございました!
p.s. 最近Twitterをはじめました!もしよければフォローしてください!