Sider Blog

コードレビュー自動化サービス「Sider」を運営するSider株式会社のコーポレートブログです。

エンジニアが作りたいものを本気で作るための起業という選択肢。起業、Pivot、レビュー支援サービスSiderの着想から現在、未来 (3/3)

最終回: 失敗と成功を重ね実感した、エンジニアの起業の強み

この秋、Siderが初めてGitHub Universeにスポンサーとして参加することを記念して、事業立ち上げから、コードレビューサービスであるSiderを提供する現在にいたるまでを振り返る、記念シリーズを三週続けてお届けしています。 前編ではCEOである私がどのように起業を志しSiderを立ち上げたか、中編ではSiderの歴史についてをお伝えしました。 シリーズ最終回となる今回は、Siderの成功と失敗から学んだこと、エンジニアの起業がなぜ有利なのかなどについて、書いていきたいと思います。

Siderを作っていく中で学んだこと

私がSiderを作っていく中で学んだことを大きく分類すると、次の3つが非常に大きいポイントだったと思います。

  1. ソフトウェア開発は難しい
  2. デザインは大事
  3. 現金や売上は大事

ソフトウェア開発は難しい

当たり前のことに感じるかもしれませんが、ソフトウェア開発は難しいです。プロダクトの種類によって、必要とされるリソースや技術は異なるうえに、Siderというプロダクトの性質上、専門的スキルが必要とされました。

求められるリソースの違い

Siderを始める以前に開発していた製品の開発工数は、短いもので1人日、長いものでもiPhone・Android・サーバサイド全部含めて6人月程度と、比較的小さいものでした。そのため、Siderのプロトタイプやベータ版の開発にも同等の工数を見込み、4人月程度の工数を掛けました。

ただし、これではSiderは全く正常に動作しませんでした。インフラの不安定性、最良ではないユーザ体験、継続的な機能追加の難しい設計、高いサーバコスト、沢山の問題がありました。改修には多くの時間を要しました。

実際に開発して提供する製品・ソフトウェアの種類によって、必要となる開発リソースは大幅に違います。日本のスタートアップ企業では開発リソースにそれほどの工数を必要としないものを提供している企業も多いかと思います。その経験や前提で走り始めると、必要なリソースを見誤ります。ソフトウェア開発の難しさの一つです。

求められる技術セットの違い

「必要なリソース」は人数の話だけではなく、開発者の技術セットについても当てはまります。iOSのアプリケーションを作ることと、Job Queueを用いてDockerのコンテナをコントロールするインフラ・アプリケーション基盤を作ることは、必要となる技術スキルが全く異なります。

「フルスタックエンジニア」という肩書き、役割、職能の方はスタートアップ企業において非常に重宝されます。企業のバーンレート(毎月の支出)を低く抑えながらプロダクトを提供していくためには、フルスタックエンジニアが必要です。私もUIの簡単なデザイン、プロダクトの導線の設計などの企画面、iOSやAndroidなどのスマートフォンアプリケーション、Ruby on Railsを用いたサーバサイドの開発(もちろん他のWebフレームワークも使えますが)、AWSなどのIaaSを使ったサーバの運用など、一通りのことが行える、いわゆる「フルスタックエンジニア」です。

ただし、私のスキルだけでは、Siderを安定稼働させることや、拡張性の高い良い設計にすることなどはすぐには行えませんでした。学びながら進めていくことはできますが、それでは開発が思うように進まず、時間が掛かってしまいます。

「すべてのことを知っている開発者」になることは非常に難しいです。だからこそ、「この製品に必要なこの技能を有している開発者」をメンバーに迎え、チームを作っていくことが必要です。

専門的なスキルの要求

Siderは静的解析を軸にコードレビューの自動化を提供しています。そのために静的解析器への積極的なコントリビューション(RuboCopなど)を業務として行っていますし、Siderの開発のために、それらのコードをよく読み、お客様からの問い合わせの際に静的解析のライブラリを読んだ上でのサポートなども行っています。

また、より広い範囲、より多くの内容、より役に立つ内容をSiderのコードレビューで提供していくため、自社製のコードの解析器の開発も行っています。 例: Querly、Goodcheck、PHPQuerly

これらにはソースコードを解析するためのプログラムを書く技能が必要であり、非常に専門的な技能が要求されます。サービスの独自性、高い価値を提供していくためには、尖った・突き抜けた、高い技能が製品のコアとなる部分に必要とされます。 もちろんサービスを提供しながら、作りながら、学習していくことも多くあると思います。ただし事業によっては、それでは速度が間に合わないため、初めから高い専門技能を持った開発者が必要です。

ソフトウェア開発は本当に難しいのです。

2.デザインは大事。

良い製品には良いデザインが不可欠です。見た目の面・ぱっと見の印象の良さも必要ですし、良いユーザ体験のためにも必要です。初期のSiderはエンジニアのみで開発していたため、見た目は非常にダサかったです。(初期のデザインについては前章のブログ記事をご覧ください。) ぱっと見の印象で、「モダンなイケてるサービス」かそれとも「趣味で作っているサービス」か、といった製品そのものの価値に対する印象まで変わります。Slackが一気に普及したのも、機能面についての要因もありますが、デザイン、ユーザ体験の面も大きな理由かと思います。

また、スタートアップの初期はユーザへのヒアリングが重要です。もちろんCEO、CTOも行いますが、ユーザに寄り添えるデザイナーがいることは大変貴重だと思います。特に法人向けのサービスの場合、展示会などへの出展なども多くする必要があり、ブースのデザインやノベルティグッズのデザインをメンバーとして一緒に取り組んでくれるデザイナーの存在は非常に重要です。

f:id:sideci:20180919133643j:plain
(ブースの一例)

3.現金や売上は大事

現金や売上は選択肢を増やし、心に安寧をもたらす

現金や売上は選択肢を増やし、心に安寧をもたらす 当たり前のことですが、会社に現金があることや、売上があることは重要です。 売上があると、会社が長く走り続けられるようになる、もしくはずっと黒字経営で無理せずに事業を展開していくことができます。心の安寧が得られます。

また、現金が多くあれば多くの選択肢を得ることができます。開発者を多く雇い、機能開発への積極的な投資や、販売活動への投資など、多くのことが可能になります。当然ではありますが、現金は重要です。

創業社長エンジニアはエンジニアではなくなる

資金調達は社長の時間を多く必要とします。社長がエンジニア業務も兼任している場合、資金調達のタイミングではコードを書く時間が無くなり、サーバの運用保守に当てられる時間も少なくなるので、それまでにそのほかの開発者の方をチームに加える必要があります。

その後はチームをスケールするための仕事などが多く待っているので、社長がコードを書くことができる時間は減っていきます。そですから、コードを書き続けたいエンジニアの方には、社長というポジションは残念ながらおすすめできません。

正しい事業計画が必要

ビジネスの成長のためには多くのリソースを必要です。開発、販売、認知、様々なことに成し遂げるためには、人とお金が不可欠です。開発者を主として構成されたチームの場合には、受託開発などを行いながらサービスを作っていくという手段もありますが、そうでない場合や、競合企業が多くあるマーケットに製品を展開している場合、受託開発をしている時間はありません。

製品開発の際に必要な時間・工数は少なく見積もられがちですが、事業計画、必要な資金額などについても、経営者は甘く見積もりがちです。事業を継続的に成長させていくためには、正しい事業計画が必要です。エクセルやGoogle Spreadsheetと向かい合うことはエンジニア社長にとっては退屈な作業ですが、非常に重要な仕事であり、欠かすことはできません。

エンジニア起業家の良い点

失敗しても、生きていける。生きている。

多くのスタートアップ企業は1年以内に、「チームが崩壊する」「現金がなくなる」等の理由によって、解散や冬眠に追い込まれます。しかし、エンジニア起業家(エンジニア社長)の良いところの一つとして、「生きていける」ということがあげられます。

褒め言葉かどうか微妙ですが、私は、同じ頃に起業した友人や、株主の方からは「サバイバー」と呼ばれています。創業からすでに6年以上が経過しているのですが、創業してからの2年間である2012年5月〜2014年2月の間には、初回の100万円の資金調達だけしかしていませんでした。少ない資金調達でこれだけ長い期間サバイブ(生存)することができたのは、受託開発などによって日銭を稼げたからであり、開発者主体であることが寄与しています。

また、社長がエンジニアなら、会社がたった一人になってしまった場合でも、製品開発と受託開発により、会社を存続しながら、事業を作っていくこともできます。「社長一人で製品を作りながら受託開発をする」というのはあまり幸せなストーリーではありませんが、その選択肢を選ぶことができること、作りたい事業を作れることは幸せなことです。

エンジニアであることは投資家からも評価される

エンジニア起業家は投資家から高い評価を受けやすいです。多くの起業したい方はまず「プロダクトが作れるのか」という初期の壁にぶつかりますが、社長が自分自身でプロダクトを作れるならば、その壁にぶつかることはありません。そのため、エンジニア起業家は投資家からも相対的に高い評価を得られます。私も初期の資金調達は、「アイデアはないがプロダクトを作る能力はある」というだけで行っていました。

起業することなく、資金を必要とせず、事業を作れる

会社で働きながらプロダクトを作ることがエンジニアならできます。最近は起業と同時に資金調達をする企業が多いですが、昔の日本ではあまりその手段を取れず、会社に勤めながら事業を進める方が多かったと思います。様々な意見がありますが、会社で働いて安定的な収益を得ながら、業務時間外に製品を作り、事業が成長してきた(プロダクトマーケットフィットに到達した)タイミングで法人化することは、非常に合理的だと考えます。

社長が非エンジニアの場合には、誰かコードを書いてくれる人を探したり、技術的に可能かどうかを調べてくれる人を探したりするところから始めることになり、非常に難しいですが、エンジニアの方であれば、プロダクトマーケットフィットやもしくはその近くまで、一人でサイドプロジェクトとして進めていくことができます。

おわりに

この記事に書いたように、エンジニアが起業することは、ビジネス系の方が起業するのに比べていくつかの大きなメリットがあります。作りたい製品や世界がある方は、挑戦してみてはいかがでしょうか。

これにて、SiderのてGitHub Universeスポンサー記念の3週連続投稿ブログ記事はおしまいです。もし追加で聞いてみたい話などがあれば、サンフランシスコで10月16日、17日に開催されるGitHub Universeのブース会場でお会いしましょう! ここで、これからGHUの参加券を購入する方に向け、Siderが特別に優待クーポンをご用意いたしました!ご参加をご検討の方はぜひこちらの20% OFF クーポンコード: 『GHU18SideCI20』 をご利用ください。

「USAまで行けないよ!」という方もご安心ください。Siderはそのほかにもイベントを多く開催しています。直近では9月13日にCircleCIとの合同イベント、9月27日にRuboCopのコミッターの方などを招いたCode Review Meetupを主催しました。これらのイベントレポートも順次発表していく予定ですので、ご興味のある方はぜひご覧ください。また主催だけでなく、Siderのメンバーはいろいろなイベントに参加しています。見かけた際にはぜひお気軽にお声がけください。 Siderをご利用いただいた上でのフィードバックなども頂ければ、とても嬉しいです。

Siderは今後もより便利なコードレビュー支援サービスを目指して、機能拡充を続けます。世界中で使われるように、世界中への販売活動に注力しています。これからも応援のほど、よろしくお願いします!


あなたのチームの開発効率向上に! Siderの自動コードレビューを14日間の無料トライアルでお試しください!