StockSunでCTOをしているエンジニアの板橋晟星です。

StockSunでの私の役割は主にWEBシステムやアプリの受託開発となります。そしてこのフリーランス名鑑などの自社サービスの開発を行っています。

基本的には僕が設計からプログラミングまですべてやってしまうことが多いのですが、比較的大規模な案件を3、4つ同時に回したりしたときにはひとりでは回しきれませんので、フリーランスを募集したり開発会社さんからSESでエンジニアを派遣してもらったり、ベトナムのオフショア開発に一部の機能を外注したりといろいろな形で開発を試みてきました。

つまり、僕も受注側であると同時に発注側にもよく立っているので発注者側の気持ちはよくわかります。

システムを開発したいという場合、安い価格で高品質なものが欲しいというのは皆が思っていることだと思います。

 

中小企業では多くの会社でエンジニアを雇っているわけではありません。とりわけ優秀なエンジニアというのは給与も高いので中小企業が正社員として雇うにはハードルが高いでしょう。

そのため、多くの中小企業ではシステム開発は外注するところが多いと思います。

そこで、発注方法にはどんなものがあり、それぞれのメリット・デメリットを考察していきます。

 

受託開発会社に発注する

最も定番な方法です。この方法で開発をされる方が最も多いでしょう。

その会社さんで雇っているエンジニアが開発します。

この方法だと一般的には、受託開発会社さん側にPMと呼ばれるポジションの人がいて、その人が仕様策定やエンジニアのとりまとめを行うことになります。そのため、そのPMの稼働ぶんを含めた金額や、会社としても利益をあげなくてはならないので会社の利益も乗せた金額を開発費用に含めることになりますので、一般的に高くなります。

そして開発手法についてもガチガチに設計をしてから開発をするところが多いように思われますので、開発スピードはフリーランスより遅くなりがちでしょう。また、設計を一度緻密に行っているので、あとでやっぱりこういう仕様にしたい!と思っても、変更料金が多くかかってしまうことがあります。

デメリットをまとめます。

  • 開発費用が高い(会社によってかなり金額に差があるが、安い会社であってもフリーランスよりは高い)
  • ガチガチに設計をして開発するという手順を踏む会社が多いため開発スピードが遅いことがある。そして一度決めた仕様の変更に多額の追加料金がかかることがある
  • フリーランスほど柔軟に細かい粒度の仕事をお願いできない

 

ではメリットがないのかというとそうではありません。

メリットとしては、

  • 炎上しても最後まで完遂してくれる可能性が高い(炎上して長引いたぶんの開発費を請求されるかどうかは会社次第)
  • 急に連絡取れなくなったりするなど、飛ぶ可能性が低い
  • 品質チェック体制がしっかりしている可能性がフリーランスより高い
  • デザイナーも抱えていて、デザインも含めまるっとやってもらえる

といったことが挙げられます。

 

フリーランスに発注する

最近注目されている方法です。フリーランスに発注をする最大のメリットは、受託開発会社に発注するよりもだいぶ安くすむ(2〜5割も!)ことです。利益が全額フリーランス個人のものになるため、余分な利益を上乗せする必要がありません。

優秀なフリーランスほど時給も高くなりますが、それでも受託開発会社よりは安い場合がほとんどです。

その上、仕事の柔軟性も効きます。例えば、他社および他人が開発したシステムの軽微な機能改修や機能追加をしてほしいという場合、受託開発会社であれば他社のシステムの改修は断られるかかなり高くなってしまう場合が多いですが、優秀なフリーランスであればソースコードをすぐ読んで理解し安価にちゃちゃっと改修してくれます。

メリットをまとめます。

  • 他のどんな方法よりも安く開発できる
  • 仕様変更にすぐ機敏に対応できる(人や変更内容による)
  • 開発スピードが早い傾向にある(人による)
  • 他社が開発したシステムの改修など、どんな仕事内容であれ柔軟にお願いできる

 

ただし、安くすんで仕事の請負い方も柔軟だからといってフリーランス一択!ということではありません。

デメリットとしては、

  • 大規模開発の場合はフリーランス1人では対応できないため、複数のエンジニアと提携して組織化しているフリーランス(StockSunがこれに当たります)に発注をするか、自分でフリーランスを複数人集める必要がある
  • デザインもやってほしい場合は、上記と同じく組織化されたフリーランスに依頼する必要があります
  • 人によっては急に連絡が取れなくなったり飛ぶ人がいる(実績をちゃんと見ればそのようなフリーランスに発注する可能性は極めて低くなります)
  • 品質チェック体制が各フリーランスによってまちまち
  • 高度な機密情報を扱う場合は要注意(信頼できるフリーランスなのかをよく見極める)

といったことが挙げられます。

 

SESで派遣してもらう

人材仲介会社などにエンジニアを自社へ一定期間レンタルのような形で派遣してもらうことをSESと呼びます。

これはフリーランスに発注する形態と似ていますが、似て非なるものです。

以下がフリーランスとの違いです(メリットもデメリットも含んでいます)。

  • 人材会社による中抜きが発生するためフリーランスよりやや高くなりがち
  • フリーランスは優秀でひっぱりだこな人ほど複数案件を掛け持っているが、SESはフルタイムでリソースを使える

といったことが挙げられます。

 

自社でエンジニアを雇用する

これは一定以上の資本のあり、かつこれからも長期でシステム開発および保守をやっていく見通しのついている会社が行うと良い方法です。

自社でエンジニアを正社員として雇用するため、フルタイムで長期間稼働してもらえる一方、法律上急な解雇が難しくなります。経営が傾いたり、システム開発・保守の必要性がなくなっても雇用は一定期間続けなければいけません。

そのため、最低5年以上〜何十年という長期スパンでシステムの開発・保守の業務が発生していくことが確定している場合に有効です。

ただ、「信頼できるフリーランスがいればその人と長期間お付き合いしていく」のがわりと現代に合った、リスクを少なく開発・保守していく方法ではないかと思っていますので私個人としてはフリーランスへ依頼することで自社でエンジニアを常に雇用しておく必要はないと思っています。