👋

初めての個人開発に没頭していたら、リリースした頃には大学を卒業していました

2022/12/24に公開

この記事は個人開発Advent Calendar 2022 24日目の記事です。

はじめに

初めての個人開発ということもあり、開発に用いた技術スタックに目新しいものは全くありません。なのでそれを紹介するだけなら面白みがないと思うので、非情報系の学部&プログラミング未経験の状態からサービス作ってみるかと思い、実際に作るに至った経緯をメインに書こうと思います!

個人開発は大学3年の春頃から始めて、出来上がったのは約1年後です。単純な技術不足を含む様々なことが理由で、かなり時間がかかってしまいました。なのでリリースした頃には、既に大学を卒業していました。
ちなみに個人開発に没頭していたこともあり、卒業時点では就職先が決まっていませんでした。決してダメ人間が故に、「働く先がなかった訳ではないよ」と自分には強く言い聞かせてます!
その辺りの経緯に関しては余談で書かせて頂きます。

作ったサービスの概要

個人開発でエペタムというサービスの開発・運用をしています。これは「Apex Legends」というゲームの大会の結果を瞬時に計算し、結果をURLで共有したり、好きな画像に結果を出力することができるサービスです。

収益源は画像出力機能への課金がメインです。無料でも出力可能ですが、背景に当サービスのロゴが表示されます。課金することで、背景のロゴが消える仕様になっております。

https://apetamu.com/
公式twitter

目次

  1. 使用技術・開発期間
  2. なぜ『Apex Legends』の集計サービスを作ろうと思ったのか
  3. [余談]サービスを作りたいと思ってから、実際に作るまでの道のり

使用技術・開発期間

・バックエンド
Laravel 6.X
PHP 7.4
Stripe

・フロントエンド
Laravel Blade
Vue.js 2

・インフラ
ECS on Fargate

・データベース
MySQL

・開発期間
2021年4月15日 開始
2022年5月1日 リリース

なぜエペタムを作ろうと思ったのか

始めから集計サービスを作るつもりだったわけではありません。最初は、『Apex Legends』というゲーム専用のesports大会募集プラットフォームを作るつもりでした。そして他プラットフォームとの差別化のために、大会結果のスクショをOCRで読み取って、自動で集計する機能を提供すれば完璧だと考えていました。

「人気になりすぎたら、サーバー代とか大丈夫かな。。。」
と本気で心配しながら、脳内お花畑状態でスタートしました!

仲間に友達を1人途中で引き入れる

始めは1人で開発してましたが、一緒に誰かと作る方が楽しいので、仲が良い友達を誘おうと思い始めました。

「俺と面白いサービスを作ろうや。作りきった後に、収益化済みのサービス引っさげて面接行けばええねん。ES書いてる暇あるなら、一緒にサービス作ろうぜ!」

「収益化済みのサービスを就活に持ってくる学生がおったら、どうなるか想像してみ?次の日には、既に同僚なんよ。大事なのは常に戦略やで!同じ土俵で比べられてる時点でコスパ悪すぎなんよ。」

とりあえず個人開発をすることがいかに素晴らしいかを何度も語っておきました!傍から見ると、マルチ商法の勧誘者と似たようなもんです。

気持ちは既にM&A前夜

そんなこんなで、計8ヶ月間程開発することで、最低限リリースできる段階まで至りました。

「よっしゃ、週明けにリリースするぞ!めっちゃ使われるやろうからロードバランサーも先に設定しとくか!」
「大学卒業後の進路も決まってない状態やけど、リリースしたら金入るやろうから既に解決済み。そしたら、そのまま生活するもヨシ。就職するのもヨシ。個人開発最高!」

イキリ大学生、現実の厳しさを知って悲しむ

そんな最中、PRTIMESにある記事が投稿されました。
GauGというesports大会プラットフォーム上に、『Apex Legends』の自動集計機能を一般公開しましたという内容でした。さらに、GauGはOCRではなくワンクリックで自動集計可能だと書いているのです。
公には、『Apex Legends』の大会結果を取得できるAPI(以後、結果取得API)の存在は出回っていませんでしたが、存在するということをその時点で初めて察しました。

「GauG半端ないって、こんなん贔屓目で見てもエペタム使う理由が全く無いやん。」

一晩で作っていたサービスの存在価値は0になり、ピボットする以外には道がない状況になってしまいました。

私は普段はあまり落ち込んだりしない性格ですが、この時は本気で絶望しました。
8ヶ月間の開発が無駄になることもメンタルに来ましたが、それ以上に友達1人をマルチ紛いの誘い文句で引き入れていたので、何が何でも1円稼げるサービスを作り切るか or 友達1人失ってしまうか の2択だと思い始めていました。

絶望からの学び

  1. 一次情報は面倒くさくても、出来る限り早く入手しに行くべきだった。結果取得APIの存在は公にされていなかったが、大会運営者に初期の頃からインタビューの機会を得ていたら、間違いなく早期に存在を認知するに至ったと思う。
  2. 企業が収益構造上、狙わないポジションを取りに行くべきだった。個人だと企業に比べて、ランニングコストがほぼ必要ないので、それを生かしたポジショニングも視野に入れるべきだった。
  3. 自分の技術力で主催者側と参加者側が必要なサービスを作るのは無謀だった。ツール系のように、1ユーザー属性のみで完結するサービスを作るべきだった。

以上に書かれている全てのことは、有名なビジネス書などで似たようなことをよく目にすると思います。私も勿論、似たようなことを見聞きしたことがありました。しかし、やはり実体験で感情を伴ってないと、単なる情報に過ぎないので、現実に役立てることが私には難しすぎると思いました。

そして以上の学びを参考に、Apex Legendsの集計だけに特化したサービスへピボットすることを決めました。

[補足]
『Apex Legends』上で大会を開催するには、公式からサーバーの鍵を借りる必要があります。団体・企業がメインで、個人で借りるには企画書を提出した上で審査があります。カスタムを借りる・借りたあとの流れに関する情報はネット上には出回っておりません。言うまでもなく、API仕様は外部に公開されておりません。

なぜ集計サービスに特化すれば使われると思ったのか?

私なりに当時リサーチした結果、esports大会募集プラットフォームには3つの提供価値が存在していると感じました。

  1. 大会の募集・参加機能
  2. 集計機能
  3. コミュニティー機能

募集・参加機能だけのプラットフォームはあるが、集計機能だけのプラットフォームはない。集計機能がある場合は、募集・参加機能が強制的についてくるのがスタンダードだということが分かりました。このことから、基本的にはeposrts大会プラットフォームを運営している企業は募集・参加機能をキャッシュポイントに設定しており、集計機能はそこに人を流すための役割を担っているのだろうなと思いました。

そこから、
「大会の募集・参加はプラットフォームを使わずにDiscordやTwitterなどのSNSを組み合わせて完結させたい。そして、集計機能だけを単体で使いたいので、そのようなサービスが欲している人がいるのではないか。」
との仮説を立てました。

なので、その仮説を確かめるために以下のことを主にしました。
・大会運営団体にボランティアとして参加し、募集〜集計〜結果発表の流れを運営視点で体感する。そして、さりげなく運営者にインタビューもさせて頂く。
・SNSで大会の参加者を募集している団体を監視して、募集〜集計〜結果発表の流れを追う。
・自分も大会に参加してみることで、参加者視点の流れを体験する。

その結果、大会の開催に慣れている運営団体は募集・参加のフローをSNS自分たちで完結させたいと考える割合が高く、集計機能だけのサービスを求めているということを確信しました。
確信に至ったのは、募集・参加の流れをTwitter,GoogleForm,Discordで完結させているにも関わらず、集計機能を利用するためにesports大会募集プラットフォームをわざわざ使用している団体を複数観測したからです。
集計機能を利用するにはプラットフォーム上に大会参加者を全員登録させる必要があるので、募集・参加のフローは終わっているにも関わらず、大会参加者の全員にesports大会プラットフォームへの登録を促さないといけません。これは明らかに、運営者・参加者の双方にとって無駄なコストだと思いました。
よって、私は運営者以外は一切登録不要の集計特化サービスを作ろうという考えに至りました。

サービスの方向性が決まってから

ここからは、特に何もありません。気合で作り切るだけです。絶対に完成するまで諦めないと自分に誓いを立てれば、後は月日が経過すればリリース日を迎えていました!

[結果取得APIの入手方法]
結果取得APIに関する情報や権限の取得に関しては、様々な運営団体・企業にひらすら連絡を取り続けることで何とか解決できました。サービスを作る上で、プログラミングとは比較にならないくらい私にとってはこの問題の難易度が高かったです。

[余談]サービスを作りたいと思ってから、実際に作るまでの道のり

当時大学2年の冬頃の私は、
「起業家ってプロダクトを0から作り上げて、色んな人の役に立ってるのかっこええな。俺も何か作ってみたいな。よし、手始めにとりあえず誰かに使ってもらえるサービスを1つ作ってみるぞ!」
と思いました。

驚愕の真理に気づく

プログラミングをしたことが無かったので、貯金を使って俺の考えた最強のアイデアを実現してもらおうと思い、意気揚々とGoogleで( サービス開発 費用 )などと調べました。無知だった私は、基本的にサービス開発を依頼するには数百万は必要で、仕様の変更・追加には別途料金を要するということを初めて知り、数日間諦めモードに切り替わりました。

悩んだ挙げ句、自分がプログラミングを学んで作れるようになれば人件費は不要で、失敗しても自分の時間さえ投下すれば何度でも作れるという驚愕の真理に気づいてしまい、ProgateのHTML&CSS講座を開いたのが始まりです。

立ち上げ直後のスタートアップにエンジニアとして潜り込むことを決意

半年間程学習をし続けましたが、この日々の延長線上に、目標を達成できるイメージが全く沸いてきませんでした。漠然とゲームに関わるサービスを作りたいとは思っていましたが、それを具体的な企画へ落とし込むことは勿論出来ない上に、仮に出来たとしても技術的にも今のままでは実現できないと感じていました。

そこで、立ち上げ初期のスタートアップに入って、0からプロダクトを作る過程を体験させて頂くことで、自分に変化が起きるかも知れないと考え始めました。その時から、立ち上げ直後のスタートアップにエンジニアとして潜り込むことが直近の目標となりました。

奇跡的に投資家の方のツイートに巡り会える

私は当時大阪に住んでいたのですが、立ち上げ直後のスタートアップのエンジニアインターンの求人が調べた限りでは1つもありませんでした。なので、立ち上げ直後のスタートアップの役員の方に直接連絡をとり、それを入り口にして採用してもらおうと考え始めました。

そして調べていくうちに、ベンチャーキャピタルという投資会社の存在を知り、Twitterでキャピタリストの方を手当り次第フォローするようになりました。ピッチイベントの告知ツイートや投資先の役員の方による求人募集ツイートのRTがタイムラインに流れてくるようになり、その中で(大阪,スタートアップ)の2単語が含まれているツイートには注意して目を通すようにしました。

その甲斐あって、
「大阪の投資先にてエンジニアを募集しています!」
とのベンチャーキャピタリストの方のツイートを発見しました。

「万に一つでも、スキルレベルがミジンコの俺に向けて募集ツイートをしている訳ではない」と確信していました。もちろん、図々しくも創業社長と繋いで頂き、立ち上げ直後のスタートアップに潜り込ませて頂きました。
ここまでがコードを書き始めて8ヶ月程のことです。

プログラミング、完全に理解した

そこからは、インターンで目先の開発タスクをこなすことに全力を出しつつ、休みの日もずっとコードを書き続けることで可読性・保守性を考慮しなければ、何とか作りたいものを作ることが出来るという状態に半年程でなることが出来ました。よって、初めてProgateを開いてから計1年2ヶ月程で何とか時間をかければ作りたいものを作れるという最低限の状態に達することが出来ました。

いざ、個人開発

そして、満を持して個人開発に取り組み始めました。ここからは前述した通り、開発速度が遅い上にピボットまでしたので、1年1ヶ月もリリースするまで月日が経過してしまいました。それ故に、
「手始めにとりあえず誰かに使ってもらえるサービスを1つ作ってみるぞ!」
という目標を達成するのに結局2年3ヶ月も要することになりました。

卒業2ヶ月前に感銘を受けた教材の著者へ連絡→無事内定!

もちろん大学2年の冬から2年3ヶ月なので、リリースした頃には既に大学を卒業していました(22卒)。世間的には、定職に就く意欲がない謎の若者状態だったと思います。

しかし、実際には大学を卒業する2ヶ月程前に、自分が学習する過程で最も感銘を受けた教材著者の方に連絡を取っていました。(ちなみにこの教材のおかげで、MPAでモノリシックなアプリケーションにも拘らず、Fat Controllerを回避できました。その上、テストコードがしっかり書けたのでリリース後の改善を高頻度で行うことが出来ました!)

この行動が功を奏して、2022年4月1日時点には正社員雇用を見据えた業務委託契約のお試し期間として、著者の下で働く機会を手にしておりました。
結果的には、個人開発の頑張りとお試し期間での働きを高く評価して頂き、無事に内定を頂けたので、いい感じに収束しました。

ちなみに、私がマルチへの勧誘に成功した友人も、無事に志望する自社開発企業のwebデザイナーとして職を得ることが出来たようです。
私は紙一重でホラ吹きになることを免れたので、長年の友人を失わずにもすみました。めでたし、めでたし。

あとがき

プログラミングをしたことはないけれど、これからサービスを作ってみたい!という方へのエールになれば嬉しいです。既に次の新しいサービスを作り始めているので、個人開発Advent Calendar 2023で発表できたらと思います!
Twitterを始めたので、フォロー頂けると嬉しいです!

マナリンク Tech Blog

Discussion

ログインするとコメントできます