ども、@kimihom です。
スタートアップをうまく成功させるには、 スタートアップはスケールしないことをしよう ということはとても大事だと思う。スケールしたいんだけどあえてスケールしない努力をすることで、今後のスケールを実現することができるのである。そのことについて理解を深めたい場合は以下のスライドがとても参考になる。
www.slideshare.net
端的に言うと「スタートアップにマーケティング担当者は害。いない方がマシ」っていうことだ。となるとエンジニアとかデザイナーみたいな直接プロダクトを改善していくような立場じゃない人は、人々の話を聞きに行ったりすることになる。
ではエンジニアはどうすべきか? 今回はスタートアップエンジニアにおいて、"やるべきでないスケールすること" と "やるべきであるスケールしないこと" についてそれぞれ考えてみようというのが本記事のテーマである。
やるべきでないスケールすること
色々とあるのでそれぞれ挙げて解説しよう。
技術選択の失敗
よくある話として、「あの有名なスタートアップ(と言いつつもう従業員が100人以上いるようなところ)がこんな最新技術を使っている!自分たちもこれを使って実現しよう!」という本来のスタートアップの目的とかけ離れた理由で技術選択をしてしまうパターンがある。
そういうのって、いわゆるインフラをよりクールにする技術だったり、よりたくさんのアクセスを捌けるような技術だったりするわけだ。そんな技術がスタートアップに必要かというと、 No なのである。ああいう"クールな技術使ってるぜアピール"は、基本的に最新技術に興味のあるエンジニアを採用するためにやっているのであり、スタートアップがその技術を採用すべきとは誰も言っていないのだ。
サービスのコアとなる重要な技術でもないのに、その技術勉強に時間をかけたり、よくわからんエラーで無駄な時間を使ったりするようではスタートアップの技術者として失格である。
今後うまくいったことを考えてスケールするような技術を使う必要はないのである。うまくいくかどうかもわからない段階でね。
"豊富な"何か
豊富な"機能"に関しての問題は以前記事にした。
豊富なページ数, 豊富な資金、豊富な人材、豊富なサーバー。豊富なツール。
どれもこれも必要ない。
「制約のある場に創造は生まれる」のである。
マーケティングツールの導入
これは先ほどのマーケティング担当者が必要ないって話にもつながるんだけど、"ユーザー獲得のための~" みたいなプロダクトは全て導入する必要はない。ユーザーの分析とかそんなことするくらいだったら自分で直接顧客に聞きに行けばいいだけなんだから。直接使っているのを見て、聞いてフィードバックを得るような努力をすることこそがスケールしないことなのである。
ああいうマーケティングツールってのは大企業が楽してユーザー数を獲得して上司にいい顔見せたいという人間が、偽りのユーザー獲得をするために必要なシステムなのである。私たちエンジニアにできることは何か。誰かが踏み誤ってそういうツールを導入しようとしていても、そのツールのHTMLなどの断片コードを自分のシステムに埋め込まないことだ。自分が実装しなければそもそも導入できないので、誰が何と言おうと関係ないだろう?
やるべきスケールしないこと
さて次はやるべきスケールしないことについて。
メイン機能の改善
メイン機能を少しでも早く、精密に、美しく。2秒速くなったことに最高の喜びを感じ、精度がちょっと上がったことに喜びを感じ、機能を1つ減らしたことに喜びを感じよう。基本的には最新技術ではなく既存の成熟した技術を使おう。そして差別化要因として必要な技術だけは最新技術を使い、自分たちの強みとして誰にも真似できないくらいの改善を続けていこう。メイン機能で使われている、この技術だけに関して言えば誰にも負けないってのを持つことが、エンジニアとして最高の強みになる。
その最新技術は1個に絞るべきだ。あれもこれもってのはやはり難しいし限界がある。凄いんだけどもちょっとクセのあるもの。1つに絞る技術はそういうのがいいと思う。周りからすれば実現に時間がかかってやりにくいって思っているからこそ、スタートアップの存在価値が上がるのである。
素晴らしいスタートアップであれば、必ず「この技術だけは誰にも負けねぇぜ」ってのがあるのである。
ユーザーサポート
"エンジニアは集中している時間が長いから、電話やメール対応をできるだけしたくない"。そんなエンジニアが多いと思う。だがそれは単なる甘えに過ぎないと私は思っている。思い出して欲しい。私たちがやるべきことはスケールしないこと。つまり開発そのものを止めて、ユーザーサポートに時間を取るということなのだ。
ユーザーからメールや電話で問い合わせが来た時に、システム関連であれば早く答えられるのは当然エンジニアである。だったら進んでその仕事を引き受けるべきだ。ユーザーと直接話すことで見えてくる新しい発見が必ずあるし、モチベーションにもつながるだろう。
電話で取次をしないで即答する。メールも1つの返信で全てが解決する。そんなサポートをすることでユーザーの満足度に差別化を与えることができるのだ。
記事を書きまくる
とにかく記事を書きまくろう。それは技術ブログだけに限った話ではなく、自分たちのサービスの思いや、オウンドメディアなどもあるだろう。とにかく書かないことには検索にすら引っかからないし、誰も読んでくれない。バズ狙いやシェア狙いといったところで記事を絞るってやり方もあるかもしれないが、そんな一過性のものを目指すのではなく、ロングテールで検索でしっかりと出てくるようにするには記事を書きまくるしかないのだ。
最初は全く読者もいないし何のフィードバックも得られない。それでも自分たちの思いを発信することはとても重要なのだ。書いていけばいくほど文章力は上がり、洗練されたものになっていく。だから最初はぐちゃぐちゃでもとにかく書いてみよう。
ここまで読んで頂いた読者なら、記事を書くのに外注したり誰かを雇ったりするのがいかに愚かな行為なのかがわかっていただけると思う。
終わりに
エンジニアだからといってプログラミングばかりやればいいというのはスタートアップ的考え方ではないと私は思う。もしそうしたいんだったら大企業の研究開発部門とか新規開発部門いったほうがよっぽど幸せになれるだろう。
ではなぜエンジニアがスタートアップをやるのか。それは"自分がゼロから作ったものが世の中に影響を与えている"ということを実感するためではないだろうか? プログラミングってのはその中の一つの手段にすぎない。それ以外に必要なことがあるんだったらエンジニアの仕事の枠を超えてどんどん働きかけていくべきなのだ。
スケールしない努力のできるスタートアップエンジニアが増えることを祈っている。