コードを書いていると、今自分が利用している関数がどのような動作をしているのかを確かめたくなることがよくある。その関数は、チームメンバーが書いたものや利用しているライブラリ、言語が提供しているものだったりする。
一つの関数の実装を追うのは大変だし、時間がかかる。しかし、実装を追うことで得られる理解は思ったより多いし、潜在的な作業時間の短縮にもつながる。本質的な理解は表面的な理解よりよほど応用が利くし、その実感もある。
だから、仕組みを理解する心の余裕を常に持っておきたいと思う。この関数はどういう仕組みで動いているのか、このオブジェクトはなぜこのような構造になっているのか。気になった時に、きちんとそれを作った人の考えを理解できる心の余裕は大事だ。
私の場合、仕事での開発はこれを無視してしまうことが多い。時間的にタイトなスケジュールであったり、心理面でモチベーションが低い状態にあったりすると、そもそも「気になる」という段階に至らないこともある。
スケジュールを決めるとき、「どれくらいの期間で実装できるか」ではなく「どれくらいの期間で理解できるか」を尺度にすることができれば、納得して理解しながら仕事を進められるのだろうな、と書きながらにして思った。今度実践してみよう。