HAYATE'S BLOG

個人の趣味や仕事に関するブログです。プログラミングやWebマーケ、ゲームの攻略情報などをまとめています。

気がついたら21万人が利用するサービスを作っていた話

最近Twitterでめちゃめちゃバズって色々考えたり思い出すことがあった。

僕がインターンとして働いている会社で一年前に社内の様子をPRする記事を作成するために、インタビューを受けていた。そのときに、

インタビュアー:「今年1年の目標は何にしたい?

僕:「10万人が利用するWebサービスを作ります!

って言っていたのをふと思い出した。で、こないだ作った視認可能フレーム計測ツールのユーザー数を見たら21万人が利用していたので、一応目標達成していたことに気づいた。

f:id:tabatait:20190529051246p:plain

今までにも似たような現象がたくさんあって、例えば小学校の卒業時にはロボットを作りたかったので「将来エンジニアになります!」と言っていたし、3年前は「Webサービスを作る」って宣言してなんだかんだ作りきった。一番最初にリリースしたWebサービスは2018年3月にリリースしたタイ人向けのサービスだった。

こうして並べてみると有言実行に映るかもしれないけど、実は全く意図していない。ほんとに「そういや俺あんなこと言ってたな〜」ってくらい。自分が気づかないうちに目標達成していた。

なんで有言実行が結果的にできているんだろうと考えたときに、自分にどんな習慣があったのかをちゃんと言語化しておこうと思った。

やりたいって思ったことのアウトプットは死んでも絶対出すこと

まず、やりたいって思ったことのアウトプットは死んでも絶対出すこと。これをやらないと市場に評価されることは100%ありえない

フィードバックを受けない限り自分のアウトプットがアップデートされることは絶対にないし、一方で一度のアウトプットが慣れると2度目3度目以降の質は劇的に改善される。

最初はめちゃめちゃ緊張する。というか、自分以外の人にリアルな評価を受けるってものすごく怖い。このアウトプットに取り付く恐怖を克服する方法は今の所気合しか思い浮かばない。

だからこそ、とりあえずやってみる精神はめちゃくちゃ大事だと思う。捉え方によっては、自分が過去に出したアウトプットを下回るクオリティのものは出ないだろうから、自分の能力の最低水準を引くためにもとりあえず出すってのは重要だとも考えられる。

そうしたほうが幾分かは気が紛れる気がする。

受託開発で消耗して、消耗しないよう受託開発すること

これは本当にやって正解だった。受託開発って聞くと下請けという印象が強くてダサい印象が人によってはあるかもだけど、受託開発ってめっちゃ大事だと思う。特に、能動的に受託開発ができるか、受動的に下請けになるかは天と地ほどの差があると思う。

まず、なんでやってよかったのかというと、価値があるシステム開発とは何かを考えられるようになった。僕が思う価値あるシステムの定義は、「継続して利用するユーザーが1人でもいるシステム」だ。(これは今の定義。もしかしたら今後アップデートされるかも)

僕は今までインターン先でかなりいろんなツールを作ってきたけども、社内受託開発をしていた時期は作ったけど誰も使ってくれなかったことがたくさんあった。

せっかくわざわざ作ったのに誰にも触られないってめちゃめちゃキツくて、「俺なんのために労力割いて作ったんだろ」とショックを受けまくった。

そうした苦い経験のおかげで、どうしたら使われるプロダクトを作れるのかを必死こいて考えながら受託開発を行うようになった。既存の代替手段はあるか、利用者のスケールはどの程度か、利用者が使いやすいインターフェースになっているかなどなど。

結果、需要があり且つ利用されるツールやサービスをコンスタントに出力できるようになった。

もちろん、そうしたアウトプットを出力するための工夫を凝らしていたときに、「君は私の言うものだけをただ作ればいい」と言われることがあったけど、僕は絶対にやらなかった。そうして平然と依頼してくる人とは思いっきりケンカしたこともあった。プロダクト開発は自分のほうが圧倒的にプロだと思っていたし、何度もお客さんのところに足を運んだこともあるし、何よりクソみたいにクソみたいなアウトプットを散々していたからよくわかっていた。

おかげで、そんな脳死状態で作ったって誰にも使われないプロダクトが出来上がることは経験上知っていたから。相手が社会人としてのキャリアが長いとか、自分よりずっと年上だとか関係ない。自分には事実として経験したものがあって、その上で考えて出した結論だから間違っていると思わなかった。曲げる必要はなかった。

結果それは正しかった。

何度も諦めてもいいけど、何度も再チャレンジすること

僕は何度もプログラミングの勉強で挫折をした。Twitterの運用やサービス開発も去年似たようなことをやっていたけどうまくいかずに失敗ばかりして、誰も見ないようなアウトプットを出力しまくっていた。

その当時は諦めた。だけど、結局再挑戦した。最初は地道にGoogle Apps Scriptを触り始めて、次にPHPやネットワークの周辺知識を教えてもらう機会を手に入れることができた。おかげでWebサービスやアプリを作れるようになったし、触ったことがない言語でもドキュメントを見ればだいたい使い方がわかるようになった。

技術的な記事や書籍を読んで、コンピューターのアーキテクチャやインフラストラクチャも知識として吸収できるくらい基礎的な知識が身についた。

Twitterに関してもそうだ。フォロー・フォロワーの増やし方に関してはまだまだ分析できてないけど、少なくとも「これはこのユーザーにはバズりそうだ」みたいなのは狙えるようになった。受託開発のおかげで何がユーザーにとって利用価値があるかの判別の目がついていたから。

何が言いたいかというと、僕は最初できなかったとしてもとりあえずアウトプットしてみて、何度やってもうまくできなかったら諦めてもいいと思う。一回諦めて挑戦しない時間を作ることで休憩できるし、考えることができる。勉強する時間も作れる。

その一方で、時間を置いて再挑戦するのが大事だと思う。改めて挑戦してみると意外と発見があるし、すんなり壁を突破していたりする。

たぶん、失敗した経験があまりに悔しくて、諦めていた間に知らず知らずのうちに学習していたんだと思う。しかも、一度なにかにのめり込むとそれしか見れなくなって、人の視野はだいぶ狭くなるから、一度離れたうえで再度見直すのは発見があるんだろうなと思う。

終わりに

実は最近、イラストやデザインできる人が羨ましいなぁって思うことがあった。だって「絵を書くだけでこんなに評価されるんだいいなぁ」って。でもこの考えはすぐに軽率だなと思った。彼らもめちゃめちゃ努力して絵を出し続けた結果そうした評価を受けられるようになったわけだし、コードを書いてプロダクトを作る僕にはわからない苦労がきっとあると思った。

しかも、彼らの多くは僕のようにコードを書いてプロダクトを作ることはできないし、何よりコードを書くっていう手段だけで大勢に評価されるアウトプットを出せる人がいるのに、当時そうではない僕が絵を勉強したところで絵で評価されるようになるわけがないと思った。

ないものねだりしても仕方ない。今ある能力をフル活用できなければ、どれだけスキルが増えたところで大勢に評価されるものは作れないなと開き直って、今ある能力でしばらくどうにかやっていこうと思う。