シードスタートアップCTOが考えておくべきこと

スタートアップ

GWを挟んだり、風邪で倒れたりでちょっと間が空いてしまいました。

そういえばなんですが、今「Co-Edo 有言Lab」という10週間でプロダクトを作るというプロジェクトでアドバイザー的なことをやってまして、まだシードスタートアップで偉そうなことは言えないんですが、まー技術者だし、皆さんに一番近い位置でやってるしいいでしょ的なノリでやってます。

とはいえ、新しいスタートアップが立ち上がる瞬間を見るっていうのは楽しいですね。この前もStartupWeekendTokyoの謎の見学枠というのをもらって楽しく勉強させてもらいました。

で、思ったんですが、スタートアップのビジネスのメンタリングって色々な場所でやってるのに、それを作る技術側のアドバイスを受ける場所ってないですよね。特にシードスタートアップのCTOってフルスタック以上の要求をされるのに、誰かに聞ける場所がないので、困っちゃいますよね。

という訳で、これからシードスタートアップのCTOっぽいお仕事の話をゆるゆると書いていこうかなと思います。まずはシードスタートアップのCTOってどういうところに注意すればいいの?っていうところから書いていきますね。あくまで私の一意見なので、参考程度に。

53930496575949926fefb046cd85898e_s

今と未来を考慮した設計

シードの場合、まだキャッシュが少ないので大きな開発体制は組めませんし(場合によっては1人で開発したり)、大きくコストをかけてインフラを組むことは出来ません。ですが大きくなるスピードは速い(スタートアップは成長が速くないと意味がないので速いと考えておく)ので、大きくなる未来を見越しつつ、今現状どうするのが最適かという観点で体制やインフラ設計を考えます。

  • インフラはテレビやYahooトップなどに出て突然アクセスが増えた場合を想定し、スケーラブルなAWSなどのクラウド環境を使う。ただしsmallインスタンスなどを使って最小構成にし、普段のコストは抑えておく(リザーブドにするのはもっと後。しばらくはオンデマンドで様子を見る)
  • 採用では、給与が低いからといって初心者を正社員採用してしまうと、後々開発について来れなかった時にごめんなさいも出来ず、お互い不幸になってしまうので、キャッシュや開発量、自分で書いた場合のスピードなどを考慮しながら、テンポラリなリソース(フリーランスやクラウドソーシングなど)に適宜お願いする

変化に対するコスト

後は、今後拡大し続けるに当たって、変化する部分のコストを見積もって、変化のコストが大きそうなところは予め小さいうちにやっておき、変化のコストが小さそうなところは今のスピードを優先させます。

変化のコストが大きいので、やっておいたほうがいいこと

  • 言語、フレームワーク
  • テストの網羅性
  • テーブル設計などの基本的なドキュメント

まず「言語、フレームワーク」ですが、よくあるのがファーストローンチを急ぐのでとりあえず自分が出来る技術で作ってしまおうという考え方です。一度ローンチしてしまうと以降ひたすら追加開発フェーズに入り、気づいた時にはリプレースは不可能な状態になりますし、リプレースコストが非常に高くなります。ですので、ここは前回書いた「エンジニア採用から考えるスタートアップの技術選定」も踏まえて慎重に検討しましょう。ちなみにリプレースコストに比べれば、自分の学習コストのほうがよっぽど低いです。

またテストの網羅性やドキュメントなどについては、継続開発では必ず必要ですよね。こちらも外注や増員した際のキャッチアップコストやテストコーディングなど考えるとなるべく小さいうちにやっておいたほうがいいですよね。とはいえ現実難しいところもありますが。。

変化のコストが小さいので、後で考えればいいこと

  • プロジェクト管理ツール
  • コミュニケーションツール
  • その他開発まわりのツール

この辺りは、今どれがやりやすいかで選んじゃっていいと思います。後々移行するのもそんなに難しくないですし、開発体制の規模によっても最適なものって変わると思うので。

後々面倒そうだなーって感覚でいいんですが、そういうものはなるべく最初に片付けておいたほうが精神衛生上もいいと思います。

08e52cdf6522eafd070571b437159297_s

非エンジニアの開発に対する理解

上記のことを推し進めていく際に、やはりCEOの理解が必要になってきます。特にスタートアップだと非ITから来られてITで起業される方も多いと思うので、開発がどういうもので、どういった形で進んでいくのか、経験がない為分からないという方も少なくないと思います。githubなどの開発特有のサービスにかかるコストだったり、TDDでの開発の重要性など、「なんでそんなにコスト(時間も)がかかるの??」と思われたり。ですから今後エンジニアが増えていく時にそこで衝突が起きないように、最初は丁寧に説明していって、開発がどういったものかを理解してもらうことが非常に重要なポイントになってくると思います。エンジニアの価値観も普通の人からするとかなり理解しがたいと思うので、じっくり説明していきましょう。

 

これらですが、全て私が出来ていた訳ではなくて、私も何個か失敗したりもしていて、今後悔してるところも含まれています。冷静に考えればそうなんですが、必死にやってると「あーあれやっとけばよかったー」というところは結構出てきますよね。

もしシードスタートアップのCTOの方やこれからやってみようかなという方で困ったことがあるようでしたら、こういった成功・失敗談もお話出来ると思うのでお気軽にコーヒーミーティングなどでお声をかけてもらえればと思いますー。

ではでは

コメント