ここ数年、アプリの開発や技術記事ネタの準備などをする際に心がけていることが、「新しいことは、できるだけ1つに留める」ことです。
「この通りにやらないとダメ」とかそういうものではなく、「こうした方が自分の肌に合っているらしい」という経験則ですが、結果的に課題の切り分けなどにもつながっている部分があり、今のところやってよかった部類に入る試みだったかなと思っています。
「何から得た学びか」がわかりにくかった
新しいことにいくつも挑戦するのはとても刺激的です、いきなりReact・ReduxそしてAmazon Cognito (当時はAWS Amplifyがなかった)に挑戦して、リリース予定日前日の深夜まで必死で動作テストを繰り返す・・・なんてこともかつてはありました。
いろんなことに挑戦することで、できることの幅も一気に広がりますし、達成感もひとしおです。ただ、振り返ってみた時に、「結局自分は何から何を学んだんだろう・・・?」となりがちだなとも思いました。
「なんかいろいろ大変だったけど、よく頑張った」という感想や、「あそこでこのライブラリを入れる or 外した方が良かったかもしれない」のような技術選択部分の学びはあったのですが、「Reactを使ってどこがよかった / 大変だったか?」などの個別の振り返りをしようとすると、「あれ、これはRedux側の話だよね?」となったり、「あれこれやり過ぎて思い出せない・・・」なんてころもありました。
細かく記録・振り返りを行うか、挑戦するものを絞るか
学びのサイクルをうまくまわそうとすると、おそらく振り返りのサイクルを短くするのがよいのでしょう。そういう意味では、「覚書」として実装系の記事をどんなに些細でも残すようにしているのは、継続すべき何だろうなと思います。
そして振り返りのサイクルを短く、粒度を小さくするには、挑戦する事柄を絞ることにつながるかなと思っています。とはいえ「新しいことで、難しそうなものには手を出さないようにする」のではなく「何を試して、その結果なにを学んだか」を明確にできるようにすることが目的なのは忘れてはいけないでしょう。
個人開発や勉強のための挑戦では、「今回はSupabaseを試すから、実装する言語やフレームワークは手慣れたものを使おう」とか「StripeとAWS Amplifyの連携をしごとでやることになりそう。どっちも未経験だから、まずはAWS Amplifyだけ使ってみよう」のように挑戦内容や設定する課題・ゴールを切り分けします。
とはいえ仕事として開発や何かしらの取り組みを行う際は、そこまで悠長なことができないことも多々あります。その場合は、覚書や挑戦メモを細かく作るのが、自分には向いていました。
「このチケットで、この要件を満たすため、こんなコードを書いた。その結果こんな結果・エラーが発生した」のような素っ気ない、自分以外に読ませるつもりのないメモを、NotionなりGoogle Docsに記録しておきます。そうすることで自分の中で体験を学びや経験として整理できます。また似たようなトラブルに遭遇した際に、メモしたサービスの検索機能に助けを求めることもできます。
「千里の路も一歩から」
なんだかんだ「できることを積み上げていく」スタイルで仕事やコミュニティ活動を続けているため、「XXXをやりたい!作りたい!」のような夢や野望のある方をみると眩しいなぁといつも思います。ただ、どちらのスタイルを選ぶにせよ、いきなりレベル1から100になることはなく、「自分になにが不足していて、なにができるか」を見定めて積み上げていく必要があるでしょう。
「やりたいことはあるんだけど、何から始めていいかわからないとき」や「色々挑戦してみてるけど、その割に学びが身についてない気がするとき」などに直面した時、「挑戦する内容を1つに絞ること」や「振り返りのサイクルと粒度を細かくしてみること」をぜひ一度試してみてください。