最近、勢いでアプリを作ることができなくなりました。

2021/12/02に公開約1,800字7件のコメント

私は新卒入社から2年目のモバイルエンジニアです。
学生の頃は思い付いたらすぐ実装という風にフットワークが軽かったのですが、最近はアイデアを思いついても作ることができない状況が続いています。

自分はエンジニアというよりも、どちらかといえばクリエイター気質で、アイデアを動く形にすることが一番大事だったため、簡単に言ってしまえば「ただ動けば良いプログラム」を書いてきていました。その実装スタイルのためか、本格的にアプリ開発に取り組んでから3年の間に40近いアプリを開発し、内20弱ほどのアプリをAppStoreに公開していました[1]。便利なものからくだらないものまで、アイデアさえ思いつけばその日のうちにコードを書き始め、だいたい3日から1週間ほどで最小限機能のプロトタイプ完成までもっていくことが多かったです。

しかし、これらのアプリは突貫工事もいいところで、まともなアーキテクチャに則っているわけでもなく、テストコードもありません(初期の頃はバージョン管理さえしていませんでした)。CI/CDの考えなど全くなく、ただ作って公開したというだけでした[2]。それでもクリエイターとしては自分のアイデアを広く人々に公開できていたので満足でした。

職業エンジニアになってからCI/CDの大切さを知り、テストの重要さを知り、テスタブルにするにはアーキテクチャが必要だと知りました。また、OSSを公開するようになり、採用活動などにも参加するようになってくると、自分のプロジェクトは見られても恥ずかしくないようなものなのか、自分は同じエンジニアの方々と対等に話し合えるような実力がないのではないか、と疑心するようになりました。さらに、技術も毎年更新されていき、例えばiOSではSwiftUIやSwift Concurrencyなどが登場し、キャッチアップが追いつけていません。

やらなければならないこと、学ばなければならないことが見えてきた結果、私の手は止まってしまいました。

もう3ヶ月以上個人での開発は停滞しています。RunCatをはじめとした公開しているアプリのメンテナンスは滞り、OSSはほとんど放置状態で、新規アプリのアイデアだけがProjectsに積まれている状態です[3]。手が止まっているとは言っても、アーキテクチャの勉強やテストやCI/CDに関する業務でコツコツ学びはしています。ただ、個人開発への還元が全くできていません。

友人にこの悩みを相談したところ「Kyomeはクリエイターからエンジニアのマインドに変わったんだよ。」と教えてくれました。職業エンジニアやっているので当たり前かもしれませんが、自分の中にはクリエイター気質があるのでとても苦しいです。ただし、作って公開して終わりの作品ではなく、長く利用され愛されるコンテンツを提供していきたいので、なんとか乗り越えたいです。

個人開発が止まっている理由はもう一つあります。シンプルに元気が(体力が)ないのです。

学生の頃(特に大学院生の頃)は徹夜したりデスマーチしたりしても余裕でしたが、今は余裕がなくなりました。コロナのせいで部屋に篭りっぱなしで2年過ごし体力は落ち、お腹もぷよぷよしてきました。業務が終わって、晩御飯を食べたらもう開発する元気などなく、ウダウダYoutubeを見て寝るだけになっていました。

そこで、これではいけない、運動をして体力を取り戻そうと思い、最近はリングフィットアドベンチャーをなるべく毎日やるようにしています。健康面ではとてもいい感じになってきているのですが、個人開発の時間確保の面ではまだ問題があります。晩御飯を食べて、運動して汗かいて、お風呂に入ったら、もう眠いのです。画面に向かってプログラミングをしたり、アーキテクチャの勉強をする気力など睡魔の前では無力です。どのように元気と時間を確保していくかが、今後の課題です。

毎週のようにオンライン勉強会に参加したり、新しい技術のキャッチアップができているつよつよエンジニアの方達のバイタリティには頭が上がりませんね。彼らは果たして同じ人間なのでしょうか?

脚注
  1. 当然ですが一つのアプリの機能は小さいです。 ↩︎

  2. というか、独学だとテストとかアーキテクチャとかをしっかり学ぶことは結構難しいのではないかと思います。 ↩︎

  3. 開発者がそんな状況でもお構いなしにRunCatが中国やヨーロッパでバズったりしているのを見ると申し訳なさでいっぱいになります。 ↩︎

Discussion

めっちゃ分かります。自分も昔は

突貫工事もいいところで、まともなアーキテクチャに則っているわけでもなく、テストコードもありません

という感じだったのですが、そのぶんユーザーに最速で価値を届けることができ、喜んでくれるユーザーもたくさんいました。

周りにソフトウェアエンジニアが増え、メンテナンス性や開発効率の関心が高まるにつれ、何かを作るときにも、技術ベースで考えることが増えてきました。
慣れた技術よりも新しい技術を試そうとして遠回りすることも増えました。
時間対効果の低い自動化のためにたくさん時間を費やしてしまったりもします。

ただ、サービスを世に出すスピードは遅くなったものの、遠くまで行くことはできるようになったと思います。

以前は短期間でばーっと作って終了、メンテナンスしても途中で辛くなってくる、という感じでしたが、最近は一つのサービスを楽しく作り続けることもできるようになってきました。

技術面で楽しめるようになったぶん、飽きずに改善し続けられるような感じです。

少し前の自分は「とにかくたくさん世に出さなきゃ」みたいな気持ちが強かったのですが、最近は今すぐ作りたいと思えるものが浮かんできたときに作る、それ以外は技術を楽しむ、という感じになっています。

まったくまとまりのない自分語りになってしまいましたが、昔と同じことができなくなったぶん、別の何かができるようになってるんじゃないかな?ということです(強引な締め)

@CatNose コメントいただきありがとうございます。

ただ、サービスを世に出すスピードは遅くなったものの、遠くまで行くことはできるようになったと思います。

なんとか現状の停滞状態を乗り越えて、再びサービスを遠くまで届けていきたいなと励みになりました。
今後はより多くのサービスをというよりかは、より質の良い少数のサービスに注力していきたいですね。

意外にも多くの人に読んでいただけているようで、賛否様々コメントも得られて驚いています。

何でもかんでも完璧を目指すのではなく、アプリの性質に合わせて品質向上に関する技術をどの程度重要視するかはグラデーションを持たせて扱っていきたいと思いました。

日々プロフェッショナルな方々のアウトプットを追っていると、自分のスキル不足に焦りますし、自分がまだプロフェッショナルとはほど遠いと距離を感じますが、できるところからやっていこうと思います。

体力の衰え、バイタリティーある方々はどうやっているのか、分かりまくります😂

その20個のアプリ興味があるので、リンクとか教えてもらったりできませんか?

私のポートフォリオにまとまっております。

https://kyome.io/
メンテナンスを諦めて非公開にしてしまったものもいくつかあります。

ありがとうございます!
技術的にすごそうなアプリばっかりですね。ダウンロードしてみます!

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