Next.jsの基礎学習に、8月をまるまる1ヶ月充てる計画を立てていました。
それを1週間に縮めて、実際に1週間で終わりました。しかも予定より5日早く。
その判断の話を書きます。
計画を立てている途中で、前提が崩れた
最初は素直に「基礎を固めてから作り始めよう」と考えていました。
ところが教材を比較しているうちに、妙なことに気づきます。
範囲が広すぎるのです。
- ルーティング
- React Server Components
- Server Actions
- キャッシュの挙動
- レンダリング方式の使い分け
- 認証
- middleware
- メタデータ
どれも「知っておいたほうがいい」ものです。
しかも、1回読んだだけで身につく気がしない。
1ヶ月かけても全部は終わりません。
終わらないまま8月が終わって、「まだ基礎が固まっていないから」と9月も学習に充てている自分が、はっきり想像できました。
8章だけやることにした
そこで、公式チュートリアル全15章のうち、次に作るアプリに直結する8章だけをやると決めました。
期間は1週間。15時間、12工程です。1ヶ月の計画を4分の1に切りました。
大事だったのは、飛ばす章に理由をつけたことです。
「やらない」とは書きません。「実装中に必要になったら戻る」と書いておく。
こうしておくと、飛ばしたことが借金に見えなくなります。
実際にスキップしたのは7章分。使うデータベースが教材と違うので、そのままではコードを流用できない章が中心です。
今読んでも書き換えが要る。そう判断しました。
根拠は自分の実績だった
短縮する根拠にしたのは、自分の記録でした。一般論は使っていません。
1作目のアプリは7日で公開まで行きました。実装しながら都度調べるやり方です。
一方、止まったのは5月から6月の2ヶ月。教材を通していた期間でした。
自分の場合、作っている期間は進み、学んでいる期間に止まる。
記録がそう言っていました。
なので「学習フェーズは短いほうが安全」という結論になりました。
理解が浅いまま入るのも怖い。ただ、自分の記録を見る限り、
実際に手が止まったのは学習している期間のほうで、そちらを避けるほうが確実だと判断しました。
完了判定を「章の数」で置かなかった
もうひとつ決めたのが、終わりの判定です。
「15章のうち8章を消化したら終わり」にすると、消化そのものが目的になります。
代わりに、次に作るアプリの工程表を自分で引けるかを判定にしました。
章を読み終えても工程表が書けないなら、学習が足りていない。
逆に工程表が書けるなら、残りの章は実装中に取りに行けばいい。
これなら、後ろめたさが判断に混ざりません。
結果
8月2日に完了しました。納期は8月7日です。5日前倒しでした。
最後の2章は合わせて1時間45分でした。
工程表も自分の言葉で引き直せています。判定条件はクリアです。
短く切ったら、切ったとおりに終わりました。
完璧に理解してから、の日は来ない
振り返ると、「完璧に理解してから作る」を選んでいたら、
理解し終わる日は来なかったと思います。
Next.jsの範囲は広い。しかも新しい機能が足されていきます。
追いかけている限り、いつまでも「まだ足りない」と言い続けられてしまう。
分からない箇所を実装中に回収する前提にすると、学習フェーズは短く切れます。
実際、困りませんでした。
もちろん、この先の実装で詰まる場面は来るはずです。
そのときは戻ればいい。飛ばした章それぞれに「実装中に必要になったら戻る」と書いてあるので、戻ること自体が最初から予定の一部になっています。
