今日は睡眠時間が3時間。眠すぎて昼休みをまるまる睡眠に使ってしまいお昼を食べれずじまい。午後がすごくきつかったです。当然仕事もはかどらず、それなのに何故か気が付いたら残業をしていました。夕飯を食べたらいよいよ眠気がピークになって、しゃべるのもしんどくなってきたのでようやく帰宅。急ぎの仕事はたくさんあるけど、こんな日は仕事にならないのわかってるんだからさっさと帰ればよかった。眠気と空腹は判断力を低下させます。
3年ほど前に書いたスクリプトを見て、あまりの汚さにおののいてしまいました。Rubyを使って初めて書いたスクリプトで、やっていることは単純なのですが、汚すぎて解読するのに時間がかかってしまいました。当時は基本的なことしか知らなかったからなぁなんて思いながら最近使っているスクリプトを見ても、やっぱり汚くてびっくりしました。う〜んいかん、なんとかしないと。
スクリプトを書くのはほとんどがバッチ処理を行いたいときで、元々は単純なバッチ処理シェルスクリプト、複雑な処理があるときはRubyなんてふうに使い分けていたのですが、明らかにRubyが便利なので最近はもっぱらRubyで書いています。自分の作業を楽にするために作るので、「動けばいいや」という前提で作り、必要な機能が増えるごとに拡張していきます。設計なんてしていませんから、拡張するごとに変なコードがそこここに追加され、更に僕以外も触ったりするので自分でも知らないコードがいつの間にか増えていて、はじめは規模が小さいからと許せていた汚さも、気が付くと結構大きくて見通しの悪いスクリプトに…
「一部の人が使うだけだし、規模も小さいから汚くていいや」という考えが間違っているのでしょう。例えば先日も、入社した頃に書いた単純なVBSが、新しいプロジェクトでも使われることになりました。今のプロジェクトでも一つ前のプロジェクトでもその前のプロジェクトでも使われていたので、もう3年間も使われていることになります。3年間も使用されている実績と信頼のスクリプト!…と胸をはれるのならばいいのですが、全然そんなことはなく、当時VBSの紹介ページを見ながら1時間ほどで適当に作ったもので、今見るとかなりダメダメなものです。しかし致命的な問題も出ていないので当時のまま使われています。
他にもそういったスクリプトの使いまわしが多数あります。いや、スクリプトだけじゃなく、Excelのマクロだったり、テンプレートファイルだったり、スタイルシートだったり、ドキュメントだったりでもありました。公開してしまった以上、大きな問題が出なくて使えるものであれば、小さな問題があろうとも作る手間を省くために再利用されるようです。本当に自分専用で使うのでない限り、多くの人が多くの環境で長年使う可能性、機能が追加される可能性は十分にあって、それを考慮して作る必要がありそうです。要は、スクリプトだろうがマクロだろうが、プログラム同様にちゃんと考えてつくらなきゃね、と。
それから、公開する際はメンテナンスという手間が付いてまわるということも認識する必要があります。「より楽に、より快適に」というのが人の性質なのか、公開したものに寄って効率が大幅に上がったとしても更なる効率の向上が求められます。問題が出たら対応する必要もあります。そして多くの場合、それらメンテナンスの作業量はスケジュールに組み込まれません。特にもともとの規模が小さなものは。結果、よかれと思って作ったものが自分の首を絞めていく…というのが最近の僕です。僕のメンテナンス時間1時間で10人の一人当たりの作業時間が30分減るのであればプロジェクトとしては是非対応すべきなのでしょうが、だからといってそればかりやっていると僕の作業時間が増える一方で…
そのあたり、意識をあらためて今後は取り組もう。