弱小開発者が７年間ソシャゲを開発して感じた７つの教訓

#はじめに
Unity#3アドベントカレンダー・７日目の記事です。

どうもゴンです！
公認会計士から、脱サラして、セブ島で起業して
英語学習ゲーム「英語物語」を作りました。
[Android](https://play.google.com/store/apps/details?id=com.frecre.englishstory)　[IOS](https://apps.apple.com/jp/app/id805477882)

だいたい月商３００−５００万、DAU２万弱のソシャゲで、数十人で開発・運営してます。

英語物語が２０２０年１２月で７周年を迎えるので、
これからゲームやアプリ開発をしたいと思っているプログラマ向けに
７年間のソシャゲ開発を通して学んだ７つの教訓
をお伝えさせて頂きます。

#教訓①　最初から独立してソシャゲを作るな。

本当に昔の自分に伝えたい言葉です。
この後の教訓も、これさえ守ればだいたい解決します。

独立して、かなり初期の段階からUnityで英語物語を作ったのですが、
まぁ、大変でした。なんとかなってるのは、支えてくれるユーザ様と家族と仲間のおかげです。

最初から独立してソシャゲを作るのは、
ポケモンで例えるなら、
**最初のキャラをゲットして、すぐに四天王に挑戦するようなもの**です。

レベル上げも技の習得も仲間集めも戦い方すら知らない状態で、強敵に挑むのは辛いです。
ニコニコ動画もびっくりの難易度です。

ソシャゲビジネスにはたくさんの人・物・金ノウハウが必要です。
そして、競合他社がスーパー強いです。
さらに、一度開発したら終わりではなく、その後の運用保守が始まります。

適切な企業で修行しながら、
副業として手離れのいい開発を繰り返し、
ノウハウや人脈、資金を培うのが楽です。

特に独立してお金を稼がないといけなくなると、
自分の夢を実現するために必要な。
長期的に正しい意思決定をしにくくなるので、
注意してください。


#教訓②　安易に人を雇うなかれ
あなたはプログラマとしては、優秀かもしれませんが、
マネージャー・人事としてはどうでしょう？

僕は会計士やプログラマとしてのノウハウ（それもほんの少しですが）
しかない段階で、人を雇って、たくさんの失敗をしました。
運によく今の素敵な仲間に恵まれていますが、
かなりお金と労力の無駄遣いをしてきました。

できれば、他の企業で人を雇い管理する経験とノウハウを学ばせてもらいましょう。
それができないなら、本や動画等をたくさん読んで、慎重に決断しましょう。

**安いから、友達だからと未経験者を雇うのは、とても危険です。**
多少高くても経験あるプロに頼む方が懸命でしょう。
できれば、一緒に働いた事のある人がおすすめです。

僕は独立してからとても安い給与でやってきましたが、
自分の給与が安いと、周りにも低給を期待してしまうので、
独立後も、まずは自分の給与を最大限引き上げた上で、
採用を開始するのが良いかもしれません。

#教訓③　新規事業の９割は失敗する事実を受け入れよう
基本的に、新しく始める事は失敗します。
にもかかわらず、始める前は絶対に成功すると信じて行動してしまいます。

英語物語が軌道に乗った後、フィリピンチームで作った世界向けのアプリで
凄まじい失敗をしてしまいました。
過去記事はこちら⇒[海外でゲーム開発会社を作って、2000万円溶かして学んだ反省点](https://qiita.com/English_Story/items/38aa215fbd6be01e5298)

挑戦するなと言いたいのではありません。
最低限の挑戦をした後に、
その挑戦を継続すべきか否かを
きちんと分析・意思決定することが大切です。

挑戦が失敗だったという事実から目をそむけたいので、
ずるずる継続しがちですが、誰も幸せになりません。

ほとんどの新規事業が失敗する事実を受け入れ、
**適切な時期に撤退の意思決定を行える準備**を整えましょう。

#教訓④　技術投資を惜しむな。 
７年間も、一つのゲームを開発してると、
凄まじい負の遺産に遭遇します。

一度、汚くなったコードは、加速度的に汚くなります。

将来、製品やサービスの開発をしたいと思っているなら、
長期的にプロダクトと付き合う事は避けられません。

たとえ、短期のプロトタイプ開発であっても、練習だと思って
最低限の品質を維持して開発した方が将来のためになります。

製品の開発だけでなく、
プログラマのベストプラクティスとして紹介されてるような
技術をしっかり学習し、実践していきましょう。

特にGit、設計関連、アジャイルとスクラム関連技術は、重要度が高いと感じています。

#教訓⑤　システム以外も、しっかり設計・実装しよう。
長年プログラマをやってる皆さんなら、ソフトウェアにとって、
いかに綺麗なアーキテクチャとコードが大切かを身にしみているかと思います。

そしてそれと同じくらい、
組織や事業、業務プロセスの設計・実装を行う事が大切です。

適当に人雇って、適当に業務をお願いして、適当に完成させて公開する。のは、
何の設計もなしに、コード規約なしに、
一つのクラスで、一つのメソッドでコードを書いてるようなものかもしれません。

組織や事業、業務プロセスは、ソフトウェア以上に、仕様変更やリファクタが大変です。

英語物語の設計には多少気を使ってきましたが、
組織や事業、業務プロセスの設計をおろそかにしたために、
様々な問題が噴出し、結果として開発に使える時間が少なりました。

ソフト開発と同じように、組織や事業、業務プロセスも
きちんと学んで、きちんと設計し、きちんと運用を心がけましょう。

#教訓⑥　退屈に恋をしろ。
１割の確率でしか成功しない新規事業が成功したとします。
その後すぐに、関連性の薄い別の新規事業を始める人がいます。

かくいう僕も、そんな事ばかりでした。
英語物語がそこそこ成功した後に、
すぐ別のアプリや事業に手を出そうとしたのです。

失敗して、また英語物語に戻り、また飽きて、別の事を始める。
そんな事の繰り返しでした。

せっかく成功したのなら、追求しましょう。
少なくとも、徹底的に仕組み化して手離れを良くしてから別の事をはじめましょう。
中途半端な状態で、別の事を始めるのは大変です。

器用な人にはできるかもしれませんが、
もしあなたがそうでないのなら、
退屈に恋をして、しっかり集中するといいかもしれません。

#教訓⑦　完璧主義は捨てろ。信じる勇気。強みに集中。
特にソーシャルゲームだと膨大な要素の管理が必要になります。
大量の業務や色々なノウハウが必要となり、一人では無理ゲーです。

そんな中で大切だなと感じたのが、完璧主義を捨てる事です。
大切な２割（のさらに２割）部分だけ、しっかりこだわりを発揮して、
あとの部分は、自分が信じたメンバーを信じる事が大切です。

自分の想定と違うからといって、１から１０まで指摘していては
時間が足りないし、メンバーのやる気はなくなります。

きちんと目的や背景を伝えたら、
その分野の事を一番知っているのは担当メンバーだと意識して、
まずはベストを尽くして作業してくれたことを最大限褒めて、感謝し、
本当に重要な部分でのみ、優しく指摘するのがおすすめです。

そして、絶対に自分がすべき領域に集中できる環境を作っていきましょう。


#おまけ　Unityで大規模開発する上で大切だと思うポイント
- プラグインの管理は厳重に。
- Unityのバージョンアップに関する明確な指針を持つ。
- コードの管理や設計と同じく、SceneやPrefab、ProjectFolderの管理・設計を考えとく。
- Monovihaviorに紐付いたView層から、なるべくロジックを引き剥がす。

#あとがき　
最後までお読みくださり、ありがとうございます。
なんだかんだ、失敗ばかりの人生ですが、
素敵な仲間とユーザさんと、友達・家族に恵まれて
僕はとっても幸せです。

今後は英語物語の開発にコミットしつつ、
フィリピン人メンバーを中心にした開発業務プロセスの構築と、
日本メンバーを中心にした企画運営分析マーケプロセスの構築
に注力していく予定です。

個人的には、筋トレ・ストレッチ・瞑想・読書・習慣管理・日報に取り組みたい。

もしよければ、ツイッターをフォロー頂けると、
とっても嬉しいです。
[ツイッターはこちら](https://twitter.com/Gong_nyaa)