たびたび野生の勘について書いている気がする*1*2。ちょっとずつ、こういう感じでやっていますというのを言い表せるようになったのでちょっと書いてみます。
片っ端から型定義を見に行く
TypeScriptの場合、定義ジャンプを駆使するとライブラリの型定義ファイルに行き着くことがある。型定義があるということは、それが公開されているインタフェースの全てである、と考えることもできる。片っ端から見ていくと、思いがけず使えそうな道具を発見することもある。ドキュメントと照らし合わせたらだいたい答え合わせになる。
似たようなものとしては、ドキュメントを片っ端から読みあさるというのもある。規格でもいい。手札が多いと便利みたいなイメージ。確かこのあたりにあったような、という概念を少しでも増やしておくと助かることもある。試しになにか作ってみるのが手っ取り早そう。
ガチャガチャ試して記録する
シャッとやったら終わるようなタスク以外については、試行錯誤の跡を残しておくのがよいと考えている。思ったとおりうまくいきましたね、とか、こういう方針でいけると思ったけどここでうまくいかないようでした、みたいなのを記録しておく。あとから読み返すと、意外とおもしろいことをやっている、とか、実はこの作戦が違うところで使えるのでは?? とか、気づきがある。
このあと何が起こるかについて思いを馳せる
解決したい課題の全体像があって、そのうちの1タスクに対する解法だけ見ても、全体で見て整合性が取れているか、解決したい課題を解決できるかは明らかでない。この解法を取り込んだ後に何が起こるのか、について想像してみて、その上でどうなりそうか、どういう形が望ましいかを考えてみる。
大きなタスクにそのまま取り組むのではなくて、サブタスクに切り出してから着手しましょう、とよく言われる。流れを逆算しつつ適切な文脈でタスクを切るときも、何ができたらどうなって、どうなったら完成か、ちょっと先のことを考えることになる。