ボクココ

サービス開発を成功させるまでの歩み

Web サービスを自力で作る上で大事な考え方

ども、@kimihom です。

“最近Webサービスを気軽に作ることができなくなった気がする” 流れがある中で、私はどんどんサービスを作っていけ派な人間なので、一言書いておきたいと思う。

開発するネタが出尽くしたことが一つの要因

ちょっと昔は、基本的に「ユーザーがログインして、データベースに書き込んで、それを見る」みたいなだけのサービスでも、業界やユーザーを絞ることで成功させることができた。最近の勢いに乗ってる企業も、基本的に大した技術は使っていない。それでもちゃんとサービスを運営する体制が整えば、軌道に乗せて成功させることはできた。

これから「ユーザーがログインして、データベースに書き込んで、それを見る」だけの発想でサービスを作ったとしても、既視感たっぷりなサービスが出来上がってしまう。基礎的な技術ベースで作られたサービスってのは、他の誰かがもう考えて作ってしまっている。

こんな状況でもニッチ市場を狙ったり営業力でカバーしたり、機能で差別化すればうまくいくかもしれないけど、そのアイディアに対して余程のモチベーションがない限り難しいだろう。同じような発想で、ここ数年前までは Web アプリからスマホアプリへとシフトしていった。そしてスマホアプリでも類似サービスがどんどん出てきてしまってさぁどうしよう、というのが現代である。

そういう意味では、"最近Webサービスを気軽に作ることができなくなった気がする" っていう雰囲気を感じてしまうのも間違いではないと思う。じゃあ私たちは本当に気軽にサービスを作ることができないのか? いや、私はそんなことないと思うので今この記事を書いている。

Web の基本動作に1つのスパイスを入れよう

技術的な観点で、基本動作の一歩上の技術を使うようにしたいところだ。そして新技術を実現するための環境も整い始めている。

本記事で私が最もオススメしたい技術は「WebSocket」だ。WebSocket を簡単に言うと、サーバー側からブラウザ側へ好きなタイミングでデータを送信することのできる HTML5 の技術である。この技術を誰でも使えるようになってきているのは、従来の Web の概念を変えるポテンシャルのある大きな変化だと考えている。

この WebSocket をベースにしたサービスを作れば、既視感のないサービスを誰でも作れようになる。あの Uber は Google Maps に 車の位置情報を WebSocket で紐付けたサービスだ。チャットサービスも同様に WebSocket をベースにメッセージの送受信が行われている。最近ではリアルタイムのゲーム通信でも WebSocket は活躍している。そう考えるだけでWebSocket の可能性にワクワクしないだろうか? WebSocket はアイディア次第で面白いサービスができるはずだ。例えば教師が黒板に書いたデータを送ると、生徒側でその内容がリアルタイムで見られるようになるサービスとかも WebSocket ならではだろう。まぁそんな感じで WebSocket は面白い技術なので是非調べてみて欲しい。キーワードは「socket.io」「ActionCable」「Firebase」、「Twilio Sync」などである。

それ以外にも、最近は Google などが機械学習や画像解析の API を公開してくれたりするので、それらを使って面白いサービスを作ってみるってのも簡単に始められる方法だと思う。とにかく私が言いたいのは、「ユーザーがログインして、データベースに書き込んで、それを見る」の一歩先を1つでもいいから取り入れたサービスを考えてみて欲しい、ということである。そしたら、まだまだ誰も作ったことのない、既視感のないサービスを作ることだってできるのである。夢のある話だ。

技術は複雑になってきているのか?

バックエンドやフロントエンドの複雑さが、気軽に作れなっくなった要因というのは、違う気がする。複雑な技術ってのは新しく作る上では全く必要ない。今でも VPS や PaaS(私は Heroku 推し) など既存技術を使えば同じように簡単に作ることができる。

むしろサービスを公開するって意味ではさらに簡単になってきている。ちょっとでも詰まればググればすぐに答えが見つかるようになってきているし、PaaS 側も大きく改善されている。複雑な技術ってのは、サービスがうまくいって、そのサービスに最適なシステム構成を考え始めた段階で必要になってくる。人がどんどん増えたり、作る機能が増えたりサーバーが増えたりすることで出てきた課題を解決するための技術である。Web サービスを0から作るって段階でそんなことは知らなくていいのだ。

終わりに

Web サービスを自分でゼロから立ち上げる経験は、エンジニアの能力を一層向上させるために必要なことだと思う。そのことに関しては以下の記事に書いたので興味があれば読んでみて欲しい。

www.bokukoko.info

この記事を見て Web サービスを自分で作っていく方が増えていけば幸いだ。

今から始めても決して遅くはないから,どんどんサービスを作っていこう。