集中すると、理解の解像度が上がりすぎて、その時は複雑なコードも書けちゃうし、理解できちゃうんですよね
— magnoliak🍧 (@magnolia_k_) 2022年2月13日
でもそんなに集中できるタイミングは後には来ないから、自分で見返しても理解できないし、他人が読んだらもっと理解できない
でも書けちゃうんですよね、良いか悪いかは別として https://t.co/axmWqcn9ss
一つのテーマに集中していると当然より深く理解が進んでいく...それを「理解の解像度が高くなった状態」と呼んでいる。一つのテーマに集中することで、とても複雑なロジックを、あまり設計を可視化しないまま(ドキュメントを書かないまま)でどんどんコードに落とせる、みたいな瞬間が有ったとして、ではその集中はずっと続くのだろうか?その理解の解像度が高い状態はキープされるのだろうか?
3ヶ月後には、「まったく意図が分からない、でも動く、確かに」みたいなコードが出来上がることになる。で、それはそれで一定の開発スピードを得るために有効でもある。ただし、後世の人はメンテナンスができない可能性は高い(また後世の人が同じくらいの集中力を発揮するかもしれないし、しないかもしれない)。
つまり、理解の解像度を上げすぎると良くない場合が有って、しかもそれはすぐに来なくて、後から遅れてやってくる。忘れた頃に。
そんな時に、例えばドキュメントや、テストコードの作成が義務づけられることで客観性がもたらされたり、上位のレビューで「説明すること」で、「理解の解像度が低い人に合わせる」必要が発生し、未来へ禍根を残さないための視点が得られたりする。
事業は、「継続し、拡大する」が常に求められていて、それに対応するために、時には「理解の解像度が低くても取り扱える」状態にコードの状態をキープしておくことに一定のメリットがあることもある(または一切そんなことを気にしたくない人のやる気を削ぐだけかもしれない)