副業開発で詰まる場所は、コードを書く時間ではない。コンテンツを作る時間だ。
英語学習アプリを例に取る。コア機能(単語の自動表示、発音再生)は数日で実装できる。本当に時間がかかるのは、表示する単語リスト、例文、難易度分類、ふりがな、関連語の整備だ。3万語規模になると、人間が一つずつ作っていては間に合わない。
しかも本業を持っていると、こちらに割ける時間は1日2時間あれば多い方だ。コア機能の開発ができても、コンテンツの整備で詰まり、結果としてプロダクトが完成しないまま塩漬けになる。これが副業開発の最大の敗因だった。
「自分が稼働していない時間」を働かせる
本業中の8時間、睡眠中の7時間。合計15時間は、自分は副業に手を出せない。だがクラウド上のスクリプトは動かせる。この時間を使って、アセット生成を自動で回す。
これが「放置アセット生成」という仕組みになった。
パイプラインの全体像
[単語リスト] → [例文生成] → [難易度分類] → [ふりがな付与] → [品質チェック] → [Discord通知]
各段階をPythonスクリプトに分割し、GitHub Actionsで定期実行する。出力は次の段階の入力になる。途中で人間の判断が必要な箇所はゼロ。
| 段階 | 入力 | 処理 | 出力 |
|---|---|---|---|
| 例文生成 | 単語リスト | OpenAI API | 単語ごとに例文3つ |
| 難易度分類 | 例文 | OpenAI API | A1〜C2のCEFRレベル |
| ふりがな付与 | 例文(日本語訳含む) | 形態素解析 + AI | ルビ付きJSON |
| 品質チェック | 全成果物 | OpenAI API | 合格/不合格のラベル |
| 通知 | 結果サマリ | Discord Webhook | スマホに通知 |
各スクリプトは独立しており、失敗したステップだけリトライできる構造にしている。
AIで生成して、AIで弾く
大量生成すると、品質のムラは避けられない。例文の自然さ、難易度判定の妥当性、訳文の精度。人間がレビューするには量が多すぎる。
ここで効くのが「AI自身による品質チェック」だ。生成段階で使ったモデルとは別のプロンプトで、生成物を評価させる。
評価軸は3つに絞っている。
- 意味的整合性 — 単語と例文の意味がずれていないか
- 難易度の妥当性 — 例文の語彙レベルが、想定難易度と一致しているか
- 自然さ — 日本語訳がぎこちなくないか
3つすべて合格したものだけを採用する。不合格分は再生成キューに戻す。これだけでアセットの平均品質が大きく上がった。
進捗をDiscordに飛ばす
副業の停滞感は「自分が動いていないと進まない」という感覚から来る。だが実際には、自分が寝ている間にスクリプトが3,000語処理している。これが見えないと、進んでいるのに進んでいない錯覚に陥る。
そこで各バッチの完了時にDiscord Webhookで通知を飛ばすようにした。「2時間で例文生成1,200件、品質チェック合格率87%」のような短いメッセージがスマホに届く。
これが意外なほど効く。寝る前にPushしておくと、朝起きたときに「進捗がある状態」で1日が始まる。本業中の昼休みにも進捗通知が来る。副業に対する手応えが、稼働時間ゼロでも維持される。
副業を「停滞させない仕組み」として捉える
副業開発が続かない理由を「時間がない」と説明する人は多い。だが本質は時間の問題ではなく、可処分時間ゼロの15時間に何が動いているかの問題だ。
人間が動かない時間に、AIと自動化が動く構造を作る。これだけで副業は停滞しなくなる。本業を辞めずに、個人開発のスループットを上げる。これが「放置アセット生成」の本当の価値だった。