こちらはCrieitで開催されている「アドベントカレンダー」18日目の記事です。
何書いてもいいそうなんでちょっとポエミーな記事かきます。
昨日はHataさんの今年スマホアプリを作ってプログラマーになった40代女性の話。でした。
ちょっと感動しました。何を始めるにも遅すぎるなんてことはないですね。
まずはこちらの記事をご覧ください。
個人でサービスを作りきるために必要なことが分かりやすくまとめられています。とても有益〜。
個人開発のモチベーションが続かない、作り終わらない。原因と対策を考えてみた。 - フロントエンドの地獄
さて、そこに書かれているような「小さめ」「短期間」「未経験技術は使わない」といったコツを思いっきり無視したらどうなるでしょうか?
今振り返ると笑い話ですが、私の作ったゲーム投稿サイト「unityroom」の開発がまさにそういうアンチパターンの塊でした。
思い立ってから初期リリースまで1年半もかかりました。
なぜそんなにかかったのか、どうやってモチベーションを維持したのか、そのあたりを思い出しながら書いてみたいと思います。
今日の記事は初期リリースまでの思い出話です。初期リリースから2年経過した現在の構成について興味があれば下記記事もどうぞ。
ゲーム投稿サイト「unityroom」に使われている技術 - naichi's lab
リポジトリや過去ブログを漁ってみました。
日付が分かるものだけを書き出してみたらこんな感じでした。
全部で16ヶ月も...かかっている...
前半1年は勉強しかしてないし本腰入れたのはラスト4ヶ月みたいですね。
こちらの技術説明記事にも書いたんですが、unityroomを作る前に似たようなサイトを運用していました。
(アップロードするファイル形式が違うだけで、どちらも同じゲーム投稿サイトです)
前身となるサイトがあったからこそ、ああしたい・こうしたいという夢が広がっていました。
イケてるデザイン、超使いやすいアップローダ、ユーザー間の交流もしたい。
ランキングもつけたいしスマホでも遊びたい、とか。
運用面でも、FTPで更新するのもう嫌だからデプロイ自動化しよう。
開発者としてテストとか書けるようになりたいなやってみよう。とか出てくる出てくる。
ここまで盛り込むとどう考えてもWeb開発初心者(PHPちょっとやっただけ、Rails未経験、CSSわからん)が1ヶ月で作れるボリュームではありません。
まぁ初心者が作りたいって思ったらボリュームなんて気にしないですよねw
Rails楽しそう!で勉強を始めましたが正直なめてました。
Railsチュートリアル3周、入門書を2冊、Progateもやって、ブログ記事読み漁って...それぐらいしてやっと馴染んでくるレベル。
Rubyいれるために rbenv
ってのが出てきて、Rails入れるために bundler
が出てきて、Rails自体にも bundle exec rails xxx
とかってコマンドが無数にあります。
さらにPHPと違って共用サーバーじゃ動かないからVPSが必要で、VPSはOSから入れないといけないからLinuxも勉強して、デプロイするために各種ツールが必要で...。(この辺りは後に全部捨ててHerokuに載せ換えることとなります)
下記記事をみてもらうと分かるんですが、Railsにはとてもたくさんの技術・知識が使われています。
あなたがマスターしたのはいくつ? Railsを習得するために必要な技術要素の一覧 #Rails - Qiita
ほんとRails恐ろしい子!
無計画にRailsをやり始め、「これ何だろう?」って立ち止まるたびにググっては横道にそれ、面白いと感じたら本を読む。
それを繰り返していった結果、非常に多くの時間を費やしてしまいました。
当然ですが、Railsを使う
ために全て理解・習得する必要はないです。
行き詰まってもググれば先駆者の記事が見つかりますし、コピペでもどうにかなることがほとんどです。
私の場合は技術習得に比重を置いたため、学ぶ分野が増えてしまいました。
Railsでアプリをリリースするだけであれば、CI/CD(自動テストや自動デプロイ等)まで手を出す必要はなかったのですが楽しそうなので寄り道してしまいました。
開発中に触れた未経験な技術を並べてみます。(現在使ってないものも含む)
書籍が出てるものは買って読んだし、チュートリアルは手を動かしたし、どう使えば開発運用が楽になるか模索していました。
そりゃ時間かかりますよね。
ふらふらと寄り道しながらもリリースまで続けられた理由を考えてみます。
前身サイトもゲーム投稿サイトだったので、公開したらどんな感じで使ってもらえるかある程度想像がついていました。
自分もゲームを作っているので、作ったゲームが遊ばれることがどれほど嬉しいか知っています。
気軽にゲームを公開してもらいたい。
可能ならはじめて公開する場として使ってもらいたい。
開発期間が長期化してもそのイメージがずっとあったので、目標を見失わずに続けられました。
普段飽きやすい私が1年半も作り続けられたのは、やはり自分自身が使いたいものを作っていたからかなと思います。
ちょうど作っていた時期、不幸にも往復5時間かかる職場に通勤していました。
(バス+電車+地下鉄+徒歩)まぁ自分で選んだんですけど...
不幸中の幸い(?)、安定して片道1時間電車に座れたのでその時間を開発に当てていました。
1時間っていう時間が「今日はこれをやろう!」と決めてから「ある程度進捗が出はじめる」のにちょうどいいんですよね。
朝進捗があると夜エンジンかかるのも早いです。これが毎日なので少しずつですが着実に進みます。
こんな生活を1年続けたので勤務日だけでも2h*220日=440時間...元気があれば帰宅後や休日もやってたので結構な時間やってますね。
フルタイムの業務に加えて残業60時間+通勤100時間かかってました。なのに電車で寝ないで開発するとか今考えると頭おかしいですね
naichilab | GitHub (これは2018年のグラフ)
GitHubにはコミットをグラフ化する機能があります。
よーし1コミットだけやるぞ!って机に向かったらめっちゃ捗ったりとかありません??
多くの未経験技術に触れたと書きましたが、どれも楽しみながら学びました。
わかりやすく書かれた入門書を読むことは、比較的安価に達成感を味わえるのでオススメです。
まぁ本読んだだけでは使いこなせないです。それは問題ではなくて、少なからず知識が増えたことを喜ぶことが重要。
メインの開発が行き詰まったとき、しんどい思いしながら続けると病んでしまいます。
そういう時はストレス解消だと思って気軽に別の技術に触れています。
ストレス解消できて成長も感じられていい感じ。
誰でも無料でサービス開発ができる時代になりました。日々数多くのサービスがリリースされています。
素晴らしい品質のサービスもたくさんあり、自分のサービスと比較すると着眼点・技術力の差に目眩がします。
それでも今の自分に出来ないことは出来ないので焦っても仕方がないです。
1つ1つの開発を急ぐより、多少時間がかかっても着実にリリースすることを重視したいです。出し続けられることの方が大事。
千里の道も一歩から。
楽しく開発して長く続けましょう!!!
unityroomの開発が長期化した理由と、モチベーションを保ってリリースできた理由を思い出しながら書いてみました。
人によってモチベーションのコントロール方法は違うと思います。
どのような方法が合うのかもやってみないと分からないことが多いです。
今日書いた内容が、1000人に1人でいいのでモチベーションが尽きかけてる人の一助になれば幸いです。
一緒に開発を楽しみましょう〜!!
明日はPorinさんです!お楽しみに!
フォロー&リムーブお気軽に。 #太陽人間 リリース。 #びはんとマルの森 開発中 / https://t.co/rVPi5xE72b 作りました / Unity1週間ゲームジャムも主催してます。京ゆにも遊びに来てね https://t.co/DP0B37VgPI C#/Unity/DB/NW/SC
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント