なにかを改善しようとしたときに、一撃でドカンと改善しきるのはなかなか難しい。
例えばWebページがなかなか開かないのでなにかしよう、みたいなものとか。 リニューアルという形で全部最高の状態で作り直してもいいけれど、それには多くの時間がかかるし、大きな差分ができて開発している側にも利用している側にも大変。じゃあどうするかというと、どういう処理に時間がかかっているかを調べて、どういう対策を打てるかを考えて、実際に対策をして、結果を見る、みたいなものを数をこなしていく必要がある。さらに、ある一箇所を良くしたら別の箇所に影響が出ることが想像できる。すぐWebページが開くようになったことでリクエスト量が増えてリソース不足とか。なので、この、改善していく、という活動は地道にコツコツと積み上げていく必要がある。
もちろんダイナミックに全部最高の状態で作り直す、そういう選択肢を取るべきときは積極的に取ったほうがいい。例としては、対策を打つことがただの場当たり的で、既に行き詰まっていることがわかっているような場合。実装されているコードに歴史が多く詰まっていて、頑張って改善を加えられはするけれど、そもそも実装方針から見直す必要がある、とか。
処理パフォーマンス的な面だけでなくて、lintだとかテストだとかもそう。めちゃめちゃ警告が出るコード、テストがないコードにふれるとき、そのままにするんじゃなくて、ついでにちょっとずつでも書き加えて良くしていく。
これって技術的な部分に関してだけでなく、生活面でもそう。運動不足なので運動しよう!といってもじゃあいきなり、ゴリゴリにスポーツをやろう!とはならない。やったとしても数回で満足して継続しにくいことが多いんじゃないだろうか。
地道にコツコツ積み上げる、やっているときのパット見の見栄えはしないので敬遠しがちだけれど、重要なポイント。
書いてみて思ったけれどそれって資産でお金と同じなんだよな〜。なにかをして一撃1000万はできるだろうけれど、リスクが高くなかなかできないし再現性もないことが多いはず。けれども毎月1万で1000日はできそうな気がするし、3年くらいで1000万になる。毎月5000円でも5.5年、たまにサボる月があれば6年くらい。
1000行のコードに対してテストが一切ないので全部書こうとすると大変、1週間でも2週間でも終わらないのでは。100行くらいのコードに対してさくっとテストを書くのは出来るかもしれない、それなら10回積み上げればいい。10行のコードに対してなら更に簡単のはず、100回積み上げれば1000行。
時間を分散し要素を小さくすることで、不確定要素、リスクを減らす。これだ。