読者です 読者をやめる 読者になる 読者になる

NOT SO BADなブログ

Towards a not so bad world.

これまで6年間に個人で開発してきた7個のWebサービスを振り返って、サービス開発のモチベーションを考えてみた

むかし、Webサービスを自分でも作れるようになりたい!と一念発起して、26歳文系未経験からWeb業界に転職しました。

そしてPHPエンジニアとしてアルバイトで働きはじめたものの、3ヶ月くらいですぐにディレクターに職に移り、 結局エンジニア職には戻らないまま今に至っています。気づいたらもうあれから6年も経ったのか。。

しかしディレクター職になってからも個人で開発は続けていて、これまでいろんなサービスを作ってきました。

こないだ久々にこれまで開発してきたサービスを振り返ってみたら、 けっこうその時々でモチベーションが変わってることに気づいて面白かったので、 年末っぽいし個人的なまとめとして改めて整理してみました。

掲載しているのはNOT SO BAD名義のものも含め、すべて一人で企画・開発・デザインまでやっているものです。

①ブンゴウフリック(2011年)

f:id:o_tomomichi:20161228133148p:plain

※サービス終了

Applefanさんでレビューいただいているものが残っていました。

www.applefan2.com

技術/環境

  • iPhoneアプリ
  • Titanium(JS)

ひとこと紹介

「ブンゴウフリック」は、文豪の残した趣ある一節を書き写して、作品のリズムや味わい深さを感じ取るためのアプリです。

制作事情

記念すべき初めてのサービスで、なぜかいきなりiPhoneアプリ。 このあと現在に至るまで基本アプリには手を出していないので、いま振り返るとなんでそっち行った感が半端ない。

でも2011年当時はやっぱりスマホアプリって超かっこよかったし、アプリ作れるってすごく夢があったんですよね。

そのときは完全初心者からPHPを仕事で3ヶ月ほどさわったくらいのぺーぺーだったので、とてもObjective-Cなんて手を出せず(いまも出せない)。

Javascript(まださわったことなかったけど)というとても汎用的な言語でアプリが作れるらしい、という触れ込みにクラっときて、ついついTitaniumに手を出してしまったみたいです。

ちなみにこの頃はコードのバージョン管理なんて概念はまだなかったし、もう手元にソースも存在しておりません。

Titaniumでタイピングアプリを作るチュートリアルを見つけたので、完全にそれをベースに扱う文章を変えて独自サービスっぽく仕立てただけというやつです。このへんの思想は今も変わってない気がする。。

ちゃんとしたエンジニアじゃないって引け目はずっとあるので、いかに技術で勝負しないか、というのは当初からのテーマだったように思います。

またデザインというか、見た目の制御も全部Titaniumの独自jsで書いてたので、中は結構大変なことになってた気がする。 けどその頃はそんなこと気にしてなかったのでそれなりに楽しかった気もする。

というか自分で動くもの作ってるっていうのが楽しくてしょうがなかったので、とにかく作りあげることに集中してました。 毎週末カフェに集まって、同じようにアプリ開発してる友人と一緒に作業してたのがなつかしい。

結果的にいくつかレビューサイトでも取り上げていただいて、数千インストールくらいは達成してました。

そのときはよくわからなかったけど、いま思うとなかなか悪くない数字な気がします。

モチベーション

自分で作ったものが動くのがとにかくたのしい!

②booklovesmusic(2011年)

f:id:o_tomomichi:20161228141421p:plain

※サービス終了

Lifehackerさんで紹介いただいた記事はこちら。

www.lifehacker.jp

技術/環境

  • CakePHP
  • ロリポップ

ひとこと紹介

booklovesmusic(ブック・ラブズ・ミュージック)は、いま読んでいる本にぴったりの音楽をおすすめしてくれるサービスです。

制作事情

前作ブンゴウフリックでアプリに懲りたあと、Webに戻ってはじめて本格的にフレームワークとか使ってみた事案です。

このときでWeb業界に入ってちょうど半年くらいだったような。

当時Railsというのがイケてるらしいと聞こえ始めてたものの、PHPしか使ったことがない弱小新人エンジニアにはハードルが高い。

そんなときCakePHPというのはRailsの影響も受けていてとてもいいらしいと聞いたので、初挑戦してみました。

MVCとか研修では聞いたけど全然理解しきれてなくて、Cakeで自動生成される複雑なフォルダ構成に絶望感を覚えたことが印象的です。

フォルダが多すぎてどこで何をすればいいのかわからんわ、みたいな。

結局このあとPHPを離れていまに至るので、Cakeを使ったのはこれっきりでした。

いま振り返るとシステム的にはけっこうやばくて、

  • コードのバージョン管理はまだ導入してない(FTPでデプロイして(!)壊れたけど元に戻せなくて泣きそうになった)
  • ステージングとかないので本番一発勝負(ロリポで本番と別のパスにプロジェクトを上げたら本番変えずに動作確認できるぞ、と途中で気づいて一人で感動してた)
  • YoutubeAPIのライブラリを入れたけど、動かないのでgrepしてライブラリ内のパスを全部手動で書き換えた

ということをしてました。

無邪気に好き放題してたなーという感じです。楽しかった。。

ありがたいことにリリース後いくつかのメディアやブログなどで取り上げていただき、それなりにユーザーも集まりました。

特にLifehackerさんで紹介いただいた時はアクセスが集中し、ロリポップの最安プランで動いてたシステムは一瞬で落ちました。

しかし「サーバが落ちる」という概念が自分にまだなかったため、プログラムに問題がないのに何でつながらないとか言われるんだろうと不思議に思っていました。

この頃はCSSも全部スクラッチで作っていて、そもそもCSSもよくわかってなかったので勉強しながらがんばってたって感じです。

まだレスポンシブの概念もなかったので、残念ながらスマホ対応はしておりません。

しかしデザインも自分なりにがんばって、慣れないPhotoshopで独自アイコンとかがんばって作っていたのがなつかしい。 ヘッドフォンとか左右対称ですらないし。。

という感じで、ほんとに作り切れたのが奇跡なくらい手探りのサービスで、あらゆることが勉強になりました。

その中でもこのサービスで何より学んだのは、「自分の作ったものが評価されるというのは最高に気持ちいい」という強烈な体験でした。

その後Youtubeの仕様が変わったタイミングでサービスはあっけなく動かなくなり、とてもメンテナンスできるコードではないのでそのまま今に至ります。

しかし今でも時々リニューアルを考えてみたりするくらい、非常に思い入れの強いサービスです。

モチベーション

  • 自分で作ったものが動くのがとにかくたのしい!
  • 知らない人が「このサービスいいね」って言ってくれてるのが超うれしい!

③百/一(2013年)

f:id:o_tomomichi:20161228144142p:plain

※サービス終了

がんばって自分で書いたプレス記事はこちら。

www.value-press.com

技術/環境

  • Rails
  • Heroku

ひとこと紹介

百/一(ひゃくいち)は、うまいこと設計された学習システムによって、百人一首をだいたい1ヶ月くらいでおぼえることができるサービスです。

制作事情

前作からちょっと時間が空いてるのは、この間にFjordさんのリモートインターンに参加して、Railsの勉強をしていたからですね。

インターンシップ « FJORD, LLC

当時ディレクター職も忙しくなり、開発はPHPちょっとかじりました程度のままでずるずる来てしまっていたので、本腰いれてRails勉強するか、開発はもうこの程度で満足するか、けっこう悩んでた時期でもありました。

結果的にこのインターンでRailsとかWeb開発についての勉強をできたことは非常に自分の糧になっていて、いま振り返ってもほんとにやってよかったなーと思っています。

でその卒業制作として(勝手に)作ったのがこの「百/一」でしたが、結果的に前2作に比べても全然泣かず飛ばずの悲しい結果になってしまいました。

前作のbooklovesmusicは「一発ネタ」っぽいところがあり、継続して使ってくれる人がいなかったという問題意識がありました。

集客はできたんだから、次はちゃんと使い続けてもらえるものを作りたい、というくらいの気持ちだったんですが、まぁ正直ちょっと調子に乗ってたんでしょうね。

ここまでプレス出して自分のTwitterでつぶやけばそれなりに反応があったので、このときは全然だれも使ってくれないことにだいぶ焦ったのを覚えています。

Railsの勉強が第一目的ではあったものの、テーマがニッチなわりに自分が本気で使いたいサービスでもなかったし、何がしたかったんだ、、という感じ。

まぁ初めてのRailsアプリで全然よくわからずに使ってましたが、次のを作るときの経験にはなったので、一度作っといてよかったかなというくらいの感じです。

また1ヶ月間毎日ちょっとずつ学習して効率よく百人一首を覚える、というコンセプトだったのですが、気づいたら一人だけ30日間継続して使ってくれる人がいて、全然知らない人らしいんだけど、ちゃんと自分の意図したとおりにサービスを使ってくれているというのがうれしい経験でした。

しかし全体的にはやはり不発だった印象の強い残念なサービスです。

自分の中でどうしても百人一首とかニッチなところに行きたくなる性向はあって、でもやっぱりサービス作る以上ある程度使ってほしいというジレンマもあるので、いつも悩みます。

百人一首は好きなテーマなのでこのときは不完全燃焼感があったのですが、後に「スマホde百人一首」をリリースして、個人的には多少リベンジできた感じです。

モチベーション

  • Ruby/Railsで書くのは楽しい
  • あれ、作ってるだけで楽しかったはずなのに、評価されないと楽しくない。。

④THE TOURNAMENT(2014年)

f:id:o_tomomichi:20161228150156p:plain

the-tournament.jp

技術/環境

  • Rails
  • Heroku
  • TwitterBootStrap

ひとこと紹介

THE TOURNAMENT(ザ・トーナメント)は、簡単・便利な無料のトーナメント表作成サービスです。

制作事情

ようやく現在も運用中のサービスが出てきました。

前作「百/一(ひゃくいち)」の失敗を受け、いろいろ反省して作ったサービスです。 結果的に今まで作ったなかで運用期間も最も長く、自分の代表作といえるサービスになりました。

これまでが割と毎回新しいフレームワーク・環境を学びながら手さぐりで何か作るという感じだったのが、 RailsxHerokuに落ち着いて、サービスの開発に集中できるようになったのも大きいです。

またデザインも急によくある感じのテイストになってますが、TwitterBootStrapの存在を知って衝撃を受けたのもこの時期でした。 最近はSemanticUIに乗り換えていますが、これ以降自分が作るものはすべてCSSフレームワークを使うようになっています。

ここまでの失敗を踏まえて、 - ちゃんと継続的に使ってもらえるものを作る - 継続的なサイト流入を確保する というところを開発時には意識しました。

結果的にこのサービスでは非常にいろいろな経験をすることができ、ほんとに作ってよかったなという感じです。

  • はじめて個人で作ったWebサービスで、売り上げを上げることができた(有料プランの販売)
  • SEOを意識して、狙ったワードで検索上位に上げることができた
  • 同時アクセス1万という、自分にとっては過去最高のアクセス量をさばく設計にできた

とはいえ初めて売り上げを上げるまでに3年もかかってるし、全然いばれる金額でもないのですが、 自分が作ったWebサービスにお金を払ってくれる人がいるというのは、はっきり言って死ぬほどうれしかったです。

前作の失敗から、超ニッチなテーマをやめてある程度ニーズのありそうなところを狙ったのですが(それでもニッチだけどw)、やはり誰かに使ってもらえるのは開発のモチベーションになります。

どこかで目にしたのですが、

最初は動くものが作れるだけで楽しい。それができるようになると、次はある程度使ってもらえるサービスにならないと満足できない。それもできるようになると、次はそのサービスでお金を稼げるようにならないと満足できない。

みたいなことを言っている人がいて、これは本当にそうだなーと思います。

この時期の自分は、booklovesmusicで多少使ってもらえるサービスを作れたという自負もあったので、次はいかに売り上げを上げるか、みたいなところに完全に興味が移っていました。

お金が入るのはもちろんうれしいんですが、何というか、お金を払ってでもそのサービスを使いたい、と思ってもらえるものを作れたというのが、やはり作ってる側としてはめちゃめちゃうれしいわけですね。

モチベーション

  • 自分のサービスにお金を払ってくれる人がいるのが死ぬほどうれしい!!
  • SEOやUI改善とか、分析→改善→検証が狙い通りに回ると超たのしい

⑤スマホde百人一首(2015年)

f:id:o_tomomichi:20161228152819p:plain

https://karta.notsobad.jp/

技術/環境

  • Sinatra
  • Heroku
  • SemanticUI

※後にFirebaseでリニューアル

ひとこと紹介

スマホde百人一首は、みんなのスマホを取り札にして遊べる、お正月にぴったりの百人一首サービスです。

制作事情

THE TOURNAMENTを作ったあと、自分の中でサービスを作るモチベーションみたいなのが多少変わっていました。

いわゆるフルスペックのWebサービスをがっつり作るのはある程度満足したし、 新しいの作るよりトーナメントのを運用をがんばらねば、という気分になっていたり。

あと大きいの作るとやっぱりメンテナンスが大変だなーというのも実感しつつ、メンテできないような駄作をいっぱい作ってもしょうがないしなー、みたいな気分にもなっておりました。

しかしやはり定期的に新しいものは作りたくなるし、ときどきはゼロイチでモノを作らないと、新しい技術とかにも取り残されてしまう、みたいな危機感もあったり。

というわけで小規模なサービスでシンプルにネタ勝負!として作ったのがこの「スマホde百人一首」です。

  • ユーザー登録とか一切不要で、QRコード読み込むだけでその場のみんなで一緒に遊べる
  • アプリじゃなくてただのWebなのに、みんなのブラウザが勝手に同期して更新される

というところが、企画的にも技術的にもちょっとおもしろいことができたんじゃないかというところです。

同期更新のところはPusherっていうライブラリが超いけてたので、完全にそれに乗っかっています。

またユーザー登録させない利便性みたいなところは、調整さんリスペクトという感じです。

デザイン的には初めてSemanticUIを使ってみたのと、金の市松模様でお正月感を出したあたり、かつての百/一よりだいぶ進歩したんじゃないかと個人的には思っております。

残念ながら特にバズッたりはしてないのですが、周りで使ってくれた人からはおもしろいという評価をいただけたのと、自己紹介するときにもおもしろがってもらえるという意味で、よいサービスでした。

百人一首というテーマでそれなりに満足いくものが作れたという意味でも、個人的にお気に入りのサービスです。

モチベーション

  • メンテナンスしなくていいサービスを作りたい
  • 人に見せてすごい!と言われるものが作りたい

⑥Tab Sekki(2016年)

f:id:o_tomomichi:20161231230331p:plain

chrome.google.com

技術/環境

  • Chrome拡張
  • Javascript
  • SemanticUI

ひとこと紹介

TabSekkiは、ブラウザの新しいタブに二十四節気七十二候の現在の暦を表示してくれるChrome拡張機能です。

制作事情

Chrome拡張に初挑戦。

あたらしいものを作りたいけどとにかくメンテナンスがめんどくさくて、 作りっぱなしで満足できるものが作りたくなって発作的に作ったやつです。

技術的には何にもおもしろいことしてないけど、デザインは自分なりになかなかがんばりました。

とくに言うこともないくらいシンプルなサービスだけど、個人的にほしかったものを作ったので自分は愛用しています。

72候って5日ずつくらいで変わるので(365÷72)、使ってると新しいタブにけっこう同じ候が続いて見慣れてきます。 それが見慣れた頃に急に違う色のが出てきて、ああ季節変わったんだーって気付けるのが個人的には超いい感じです。

やっぱり個人開発の基本はドッグフーディングだと今でも思います。

モチベーション

  • とにかくメンテナンスしないでいいサービスを作りたい
  • イケてる新しいタブがほしい

⑦THE TIMELINE(2016年)

f:id:o_tomomichi:20161228153959p:plain

the-timeline.jp

技術/環境

  • Riot.js
  • Firebase
  • SemanticUI

ひとこと紹介

THE TIMELINE(ザ・タイムライン)は、簡単・便利な無料の年表作成サービスです。

制作事情

最新作は、トーナメント以来久々にがっつりのWebサービスです。

トーナメントは非常に気に入ってるサービスではあるのですが、何で自分がこれを運用しているのか、という社会的意義みたいなところが弱い部分ではありました。ニーズから逆算して作ったサービスゆえの弱みですね。

そんななか、THE TOURNAMENTで学んでうまくいったところは活かしつつ、自分が社会を積極的にこう変えていきたい、という思いを込めたサービスを世に出したいという思いはずっとあり、ようやく多少はそれに合致するかなと思えたのがこの「THE TIMELINE」です。

トーナメント作成サービスもだいぶニッチだったけど、年表作成サービスは輪をかけてニッチになってしまいました。

なので正直事業性みたいな点ではトーナメントよりさらに厳しいと思うのですが、何とかがんばってみたいと思っています。

年表作成ってふつうに生きてるとまずしないと思うんですが、作ってみるとめちゃくちゃおもしろいわけですよ。

たとえば歴史小説読んでて、史実の出来事を並べるだけでもものすごく参考になるし。

何年に何があったとかって出来事を、文字情報として理解することはもちろんできるんだけど、 複数の出来事がどれくらい離れてて、あるいは同時に起こっていたかみたいなことって、年表にしないとわからなかったりするんですよ。

こち亀が40年続いてすごい!っていうのも、こうやって年表にするとそのすごさが視覚的にわかるし。

blog.notsobad.jp

だまされたと思って一度年表つくってみると、絶対おもしろいこと間違いなしです。

というのが企画的な話なんですが、技術的には数年間お世話になってRails x Herokuを離れて、 Riot x Firebaseという新しいフレームワークに手を出しています。

Rails x Herokuはいまでも好きなんだけど、

  • トーナメントでアクセスが増えたときに、Herokuにちょっと割高感がでてきた
  • JSフレームワークに全然手を出してないことへの危機感
  • Herokuの無料枠が減りすぎてつらい

Herokuが再度料金体系変更 - flexible free dyno hoursで月1000時間の無料枠(ただし全アプリ横断で) - Qiita

という感じで、かつreactとかやるガッツはないわーということでRiotを試しているという感じです。

どちらも学習コストが低くて今のところかなりいい感じなので、 もうちょっとこなれてきたらトーナメントもフルリニューアルありえるで。。

モチベーション

  • なんでそのサービスやってるの?に応えられるものを作りたい
  • メンテナンスの手間は極力減らした設計にしたい

まとめ

という感じでいままで作ってきたものを振り返ってみました。

モチベーション的には、

  • 最初はとにかく作ってるだけで楽しい
  • 次はユーザーもっと増やしたい、お金稼げるようにしたい、技術的におもしろいことしたい、志のあることをしたい、とどんどん要求が高くなる
  • とはいえ一度クリアしたのを毎回クリアできるわけでもなく、前作より集客失敗して空回りとかもよくある

という感じで、できることも増えたけどその分自分の満足のハードルも上がっちゃって、やっぱり毎回手探りでがんばってますという感じですね。。

あと6年で7個って少ない気もするけど、実際にはこの間に制作に至らなかったボツ企画や、 とりあえず作ったけどすぐに飽きて公表に至らないような小粒なやつもあったりします。

経験を積んだことの弊害としては、このサービスだとまぁ使われてこれくらいかなーとか勝手に予測しちゃったりして、 そのせいであまりハネなさそうなサービスはなかなか作る気が起きなくなったり。

全体的に昔より腰が重くなったなーというのは本当に思うところで、ちょっとよくないんじゃないかと反省しています。

一方で昔誰かに聞いてすごく納得したんですが、恋愛でも単純につきあった人数より、全身でぶつかりあえるような付き合いを何人とできたかが、本当の価値だ、みたいなことを言われたことがあって。

サービスの制作・運営も本当にそうだなぁと思いました。

しかしさすがに6年もやってるとやりたいことは大体できるようになってきた感もあるので、 ちゃんと自分が本当にいいと思えるものを作って、きちんと運用していきたいなと思う次第です。

まぁそれがむずかしいんですけどね。。

とりあえず2017年はトーナメントと年表でがんばりたいと思います。 おしまい。