コンテンツにスキップ

育休は暇じゃなかった。それでも半年で、FIREシミュレーターを作った話

アイキャッチ画像

育休を始めて1ヶ月のとき、「2人目の育休は意外と暇かもしれない」という記事を書きました。 あれ、嘘でした。ごめんなさい。笑 全然暇じゃなかったんです。それなのに、なぜかFIREシミュレーターは公開までこぎ着けました。この矛盾の答え合わせをします。

こんにちは、金育SEのまさ(@kinikuse)です。

先日、育休中に作っていたFIREシミュレーター「LIFIRE」を公開しました。

その告知記事のほうには「何を作ったか」「なぜ作ったか」を書きました。この記事はその裏側です。まとまった時間がない人が、どう使ってアプリ1個ぶんの開発をひねり出したのか。同じように「まとまった時間がない」と感じている人に、たぶん一番刺さる部分だと思うので。

ちなみに開発そのものは、育休に入る前の2月から、ちょっとずつ触ってはいました。でも本気で時間を注げるようになったのは、育休が始まった5月から。結局、人に見せられる形になるまで半年です。

先に結論だけ言っておきます。

余白は、思ったより残りませんでした。それでも作れたのは、自分の手を動かすのをやめて、AIへの指示とレビューに切り替えたからです。

「意外と暇かも」は、1ヶ月しかもたなかった

想定は余白4時間、現実は余白ほぼゼロ

前の記事で、私はこう書きました。

夫婦それぞれ1日4時間くらいの細切れの自由時間。2人合わせれば8時間です

あの時は本当にそう思ってたんです。でも、あれは新生児期(生まれてすぐ、まだあまり泣かない時期)だけの話でした。

一番の誤算は、赤ちゃんじゃなくて上の子でした。

お兄ちゃんの赤ちゃん返りが、想像の3倍大変だったんですよね。下の子に手がかかるぶん、上の子は上の子で不安定になる。抱っこ、遊んで、見てて。妹が寝てる間こそ、お兄ちゃんの相手をしなきゃいけない。結局、自分ひとりの時間なんて、ほとんど残りませんでした。

はじめは、もっともっともっと時間があると思ってたんです。育休だし、と。 でも実際は全然そんなことなくて。手を動かす作業、つまり自分でコードを書くみたいなことは、ほぼできませんでした。

育休に入るときの記事で、「育休中にやりたいこと」をいろいろ並べてたんですが。

  • 保険の見直し
  • チョコザップで運動不足解消
  • 投資の古典を読み返す
  • 積みゲーの消化
  • 保育園留学とか、平日ディズニー

このうち、ちゃんとできたのは保険の見直しと、平日のディズニーくらいでした。 残りは、ジムにたまに行けた程度。本はぜんぜん読めてないし、ゲームは起動すらしてない。

できなかった理由は、はっきりしてます。そもそもの見積もりが、甘かったんですよね。 育休ならたっぷり時間があると思い込んで、あれもこれもと詰め込んだ。でも実際はそんな余裕なくて、全然こなせませんでした。

じゃあ、いつ開発してたのか

まとまって集中できたのは、早朝だけでした。

我が家は夜の授乳を妻と交代でやっていて、私は朝4時に妻とバトンタッチします。そこから息子が起きてくる6時〜7時までの、だいたい2〜3時間。ここが唯一の「頭を使える時間」でした。

時間帯 やってたこと
深夜〜朝4時 妻の授乳当番。私は寝る
朝4時〜6,7時 交代。ここで集中開発(設計・実装)
日中 9〜16時 上の子は保育園。下の子+家事。片手間で作業
夕方〜夜 育児フルスロットル。開発は無理

日中も、下の子が寝てるスキマにちょこちょこは触れます。でも、まとまった思考が要る作業は無理。細切れなんですよね。抱っこしながら「うーん、この計算どう組むかな」とぼんやり考えるくらいが関の山でした。

トータルで見ると、開発にちゃんと向き合えた時間は、自分が最初に見積もってた量の半分以下だったと思います。

発見:脳みそは、2種類の使い方ができる

じゃあなんで、それでもアプリが完成したのか。

作りながら気づいたんですが、開発って、頭の使い方が2種類あるんですよね。

ひとつは「自分で考える」作業。設計を決める、ロジックを組み立てる、バグの原因を追う。これはまとまった1〜2時間が要ります。細切れだと、さっきまで何考えてたか吹っ飛んで、毎回ゼロからやり直しになる。

もうひとつは「AIに指示して、出てきたものをレビューする」作業。これが、細切れでもできるんです。

妹が泣いて中断しても、指示だけは出しておける。あやしながら「さっきの、ここ直して」とスマホから投げられる。戻ってきたコードを、手が空いた3分でチェックする。片手間でできるし、好きなタイミングでできる

この2つを分けて考えられるようになってから、一気に楽になりました。 早朝の集中タイムは「自分で考える」に全振り。日中の細切れは「指示とレビュー」に回す。時間の質に合わせて、やることを変えたわけです。

これ、本業のスキルがそのまま効いた

私は本業で10年以上、マネジメント寄りの仕事をしています。部下やチームの成果物を、細切れの時間でレビューし続ける毎日。 振り返ると、AIとの開発は、あのレビューの動きとほぼ同じでした。自分で1から書くより、他人(AI)が書いたものを見て指摘するほうが、脳の負荷が軽い。だから育児の合間でも回せたんだと思います。 育休で、本業のスキルに助けられるとは思いませんでした。笑

実は去年、一度作って盛大にコケてます

ここまで読むと「AIすごい、余裕じゃん」と思われそうなので、正直な話も書いておきます。

実はこのシミュレーター、去年の夏から秋にかけて、一度作ろうとして失敗してます

当時はいわゆる「バイブコーディング」ってやつでした。設計とか標準化とか一切考えず、AIに「いい感じに作って」と投げて、勢いで実装していくスタイル。最初は気持ちよかったんです。画面もそれっぽく出てくるし。

でも、ある程度の規模になった瞬間、崩壊しました。

  • ある画面では入力欄にカンマ(3桁区切り)が出るのに、別の画面だと出ない
  • あるページではツールチップがちゃんと表示されるのに、こっちのページでは他の部品にかぶって読めない
  • そもそもテストを書いてないから、画面によって計算結果が違う

こういう細かいズレが、あっちこっちで噴き出しました。UIはガタガタ、テストもスカスカ。正直、散々な出来でした。原因はシンプルで、共通ルールを何も決めずに作ったからです。

今回、何を変えたか

去年の下期、10月から育休に入るまでのあいだ、私は本業のほうで「標準化活動」をやっていました。バラバラだった作り方に共通のルールを敷いて、品質を揃える仕事です。

今回は、それを個人開発で思う存分ぶん回しました

観点 去年(失敗) 今回
部品 画面ごとにバラバラ実装 先に標準部品を作って使い回す
ルール 決めてない 標準化ルールをドキュメント化
テスト ほぼ無し テスト駆動を前提に実装
全体像 頭の中だけ 概要設計書を作って更新し続ける

やってることは地味です。実装に入る前に部品とルールを固める。設計書をメンテし続ける。この「面倒くさい準備」を、AI向けの手順(スキル)に落とし込んでから作り始めました。

そうしたら、今回はちゃんと動くものができた気がします。

AIは、言語の細かい仕様なんて知らなくても、パパパッと形にしてくれます。見た目も、賢いモデルに任せればCSSをいい感じに整えてくれて、それっぽくカッコよくなる。ここは本当にすごい。 でも、人間側がルールを敷いてやらないと、平気で崩れます。去年の私がそうだったように。AIが優秀かどうかより、こっちが交通整理できてるかどうかなんですよね。

正直に言うと、今もテストが全パターン完璧かというと、そこまでではないです。本業ならガチガチにレビューするところを、今回はざっくりしか見てない部分もあって、ちょっと甘いなという自覚はあります。 それでもまあ、個人開発でここまでテスト書いてる人はそういないだろうという程度には、まともに動くものにはなったかなと。

で、結局なにを作ったのか

FIREシミュレーター「LIFIRE」のベータ版を公開しました

肝心の「何を作ったか」は、公開の告知記事にぜんぶ書いたので、そっちに丸投げします。この記事で全部説明すると長くなりすぎるので。

ひとつだけ、作った動機で一番大きかったところを書いておくと。

世の中のライフプランシミュレーターって、たいてい「毎年きっちり4%増える」みたいな計算しかしてくれないんです。でも現実の投資は、そんなにお行儀よく増えません。良い年もあれば、暴落の年もある。 その「順番の運」まで含めて、FIREできる確率を出したかった。これが、自分で作ろうと思った一番の理由でした。

そのへんの中身が気になる人は、告知記事のほうへどうぞ。

まとめ:残りの育休でやること

育休は、暇じゃありませんでした。やりたかったことも、ほとんどできてないです。 でも、時間の質に合わせて頭の使い方を変えたら、アプリ1個は形になった。早朝の2〜3時間だけは「自分で考える」に使って、あとは全部、指示とレビューに回す。やったのはそれだけなんですよね。

残りの育休でやりたいことも、だいぶ絞れました。LIFIREの使い勝手をもう少し良くするのと、生命保険の分析機能の作り込み。育休に入るときの記事で「自作ツールで保険を見直す」と書いたやつ、あれ実はまだ試作品のままなんです。もう少しUIを改善します。

関連記事



最後までお読みいただきありがとうございます。
良い機会なので、私と一緒にお金の勉強を始めませんか。
まったり更新していくので、X(@kinikuse)もフォローいただけると幸いです。