ひとり開発のモチベーション
この記事は「ひとり開発Advent Calendar 2019」9日目の記事です。
(基本的にはポエムです)
このブログでも紹介していますが、僕はAndroidアプリを個人開発しています。
Qiitaにも記事を書いていますので、よければこちらもどうぞ!
アプリは始めたばかりで、ぶっちゃけ数える程のダウンロードしかありませんし、正直、人にオススメ出来るほどの完成度にもなっていないのですが、それでも可愛い我が子のような存在です。
そんなアプリの宣伝紹介や、ひとり開発のメンタル面、どんなモチベーションで開発しているのか、などについて書いてみたいと思います。
仕事に活かす個人開発
...と銘打ちましたが、建前的なところもあります。
もともとやろうと思ったきっかけは、今までやったことのなかったAndroid開発に仕事で携わる事になったので、知識の足りない部分を少しでも埋めよう、というところから。
試してみたい、と思った技術的なトライであっても、仕事のプロジェクトで実験するわけにはいかず、ならば自分でやってしまえ、という感じでした。
僕は物分かりの悪い人間ですので、ドキュメントや資料を読んですぐに理解することなど到底できません。何をするにも、実際に動くものを作って確認したいのです。手を動かすことではじめて理解できるのです。
そんなわけで、自分のアプリを持ってしまえば、やりたい放題じゃないか!という目論見で、半ば勢いで初アプリをリリースしました。
実際やってみてどうだったかと言えば、確かにちゃんと成果がありました。
例えば、仕事のアプリでは権限的に触れないようなPlay Console上の設定も、自分のアプリなら好きにいじれます。一度触ればわかるけど、実務上は触れないところ。知識上は知っていても、実際に実践してみたことがないままだと不安ですよね?
そういった「(色んな意味での)超えられない一線」を超えられるのが個人開発の魅力です。
ちょっと話は逸れますが、僕はAWSの個人アカウントも実験用に色々と使っていまして。元々は(というか、今も)サーバサイドエンジニアですので、AWSは仕事でも活用してきました。そして、やはり、仕事上では使えないけど試してみたい機能が出てくると、個人のアカウントで検証してきました。
仕事で使う(かもしれない)のだから、勤務時間中に、会社のアカウントでやればいいじゃないか、というのも確かにごもっともです。
ですが、仕事でやるのとは、ちょっとニュアンスが違っているのです。
- 仕事は成果物に必要だからやる -> 結果・成果につなげる -> その分の対価を頂く
- 趣味(個人開発)は気になる(好きだ)からやる -> 自分の好奇心、欲求を満たす -> 何も対価が無いかもしれない
(趣味としてやっている限りにおいて)個人の開発は、成果につながれば理想ですが、必ずしもそうでなくても構わないのです。「動いたー」と子供のように喜んでおしまいでいいのです。
仕事に活かすつもりで始めても、別に仕事に活きなくてもいいのです。
それよりも、自分の好奇心や興味関心を前面に押し出して色々とトライできたら楽しいじゃないですか。楽しくないと、やってられないですよ。
で、そんな軽い気持ちでやって、運よく仕事にも活かせたら、ラッキーだと思いませんか?
続ける事で見えてきたモノ
何度かのリリースを経て気がついたのは、何をどういう順番で作ると効果的か、真摯にプロダクトと向き合って考えている自分がいた、ということです。
軽い気持ちで始めたものの、やっぱりダウンロードされると嬉しいですし(と言うか、ダウンロードされないと悲しいですし... )、感想や意見をもらったりすると、真剣に悩み、考えます。ダメ出しされると凹みますし、褒められると年甲斐もなくはしゃいだりします。
仕事では、開発者がプロダクトの全てについて俯瞰して判断して行動する、ということは、なかなかないですよね?規模にもよりますが、多くの場合はプロダクト開発の一部にフォーカスして作業をします。
個人開発では、上から下まで、全部自分でやらないと、誰も代わりにやってなどくれないのです。なので、否応なしに広い視野が求められてきます。
開発目線では、機能面の不足を実装で補いたかったりしますが、一方で、マーケティング的な目線では、もっとストアでの画像や文言を改善したり、動画とか作って目立つようにしたり、広告なんて打ってみちゃってはどうかとか考えるわけです。
泣いても笑っても割けるリソースは一人分なので、どこにどれだけどんな順番でそれを割り当てるかは重要な問題です。(この記事を書いている間も、開発が止まっているのです!w)
ひとり開発では、開発者は何でも屋さんです。
いついつまでにやってほしい、とマーケティング視点で言う自分と、そんな無茶なと愚痴る開発視点の自分とが同居している状態...つまり、色んな人の立場を体感できます。
開発者として、技術にフォーカスしたいのは山々なのですが、それだけではプロダクトは成立しません。考えるべきことは他にも色々とあります。
実際にそれを体感することで、他の職種の方の苦労も知り、少しでも互いに分かり合えるようなスタンスに立てたら、それだけでも個人開発にチャレンジした甲斐があったと思いませんか?
ひとり開発で見えてきたものの一つ。それは、チームの力でした。プロダクトは、それに関わる様々なステークホルダーの力によって、支えられています。
(知ってはいましたが、より強く実感できた、というのが正しいのかも)
関係者へのリスペクトと感謝はとても大事だと思います!
ひとり開発のメリットとデメリット、「やりたいこと」と「やりたくないこと」
ひとりであることのメリットは当然ありますが、もちろん、デメリットもあります。
自分が感じていることを超ざっくりと、
メリット
- 自分の好きなように実装方針を決めることができる
- 自分の好きなペースで開発ができる
デメリット
- 自分の苦手なことでもやるしかない
- 自分で全てを決めなければならない
権利と義務/責任ですね。全権限を持つと同時に全責務を負う。ここは表裏一体です。
当然ですが、権利だけを行使することは出来ません。
自分の好きな作業をしている時は楽しいので、手も動くでしょう。
しかし、そうではない場面が必ず訪れます。
例えば、自分の場合はデザインセンスが皆無なので、ビジュアルの調整的な作業は苦痛です。画像作ったり、レイアウト工夫したり、配色考えたり...というのは、まるっきりの手探りですし、なかなかうまくいかないし、正直、イライラします。
そんな時、甘えが生じます。
やりたくないことを後回しにしたり、妥協したり、見て見ぬふりをしたり。
方針を決めるのは自分なので、さじ加減も自由です。
ともすれば、やりたくないことが壁となって、そのまま作業を放棄してしまうかもしれません。それも、個人の自由です。
しかし、自分が好きで始めたこと。自分で責任を持ってやり遂げる気概は必要だと思います。
これは何をやるにも大切な事だと思いますが、しっかりと目標を立ててそれを達成していくことが重要です。
小さな目標でもいいので、ロードマップを引いて、コツコツとこなしていく。そうすることで、やり遂げた、という充実感もあります。
悩んだり、困ったり、放り出したくなったら、そういう時こそ、次のステップにつなげるチャンスだと、僕は思っています。
今後、個人開発を続けていくには何が必要なのだろうか
まず、何は無くとも時間です。
時は金なりで、時間がなくては何事も進みません。
ですが、日常のルーチンの中で今以上の時間を作ることも難しい。
どうするか?
絶対的な時間が足りないなら、単位時間あたりの作業効率を上げるしかありません。
効率化のための作業は早期に行うほど運用期間が長くなり、効果が高くなります。
リリースなどのルーチンの自動化はすぐにでもやりたいし、その他にもコードのリファクタリングによる作業効率アップや、各種ツールの有効活用にも取り組みたいですね。
また、続けるモチベーション的には、アプリに対するフィードバックがあると嬉しいです。
願わくば、アプリを遊んで頂き、ご意見・ご感想・ダメ出し・マサカリなどなどお寄せいただけると、励みになります。
とにかく、無音状態でひとりで開発を続けていると、方向感覚がおかしくなってしまいますので、ちょっとでも声が聞けると嬉しいです(切実)
ひとり開発をはじめてみたいという方へ
やりましょう!
失敗しても成功しても、良い経験になると思います。
そして、来年のアドベントカレンダーを書いてください!
--
最後になりましたが、こういった記事を書く機会を与えてくれたこのAdvent Calendarの企画者さんに感謝します。
他の方の記事も楽しく読ませて頂いております。