改変という名の改悪

相変わらずのデータ打ち職人ですが、それではあまりにもなんなので、今度のプロジェクトでも触れる範囲のツール保守をやらせてもらってます。ツールといってもシェルスクリプトRubyで書いた簡単なスクリプトなんですが、少しでもプログラムっぽいことができるだけうれしいので。
そんなわけで他の方から引き継いだ一部ツールの保守作業ですが、今後の保守管理を容易に行うために、いろいろと修正を施しました。具体的には、汎用的な部分をクラス化したり共通makefileにしたり。複数のスクリプトをいっぺんに修正しました。
微妙に機能を追加したりもして僕としては大満足だったのですが、それらをコミットした後に問題が…。「動作がおかしい」という問い合わせが10件ほど。やってしまった…
もともとあったバグなども多かったのですが、僕が仕組んでしまったバグ、「オプション指定が効かない」というものが3つほどありました。そのうち2つは僕のミスで、残り1つは、どうせ使わないだろうから、と勝手に消してしまったオプション。この、勝手に消してしまったというのが大問題でした。僕としては、「このオプションに対応すると例外的な処理になって汚くなってしまう。そもそも使わないオプションだし、消してしまおう」という軽い気持ちで消してしまったのですが、実際は、使う人は頻繁に使用するオプションっだったんです。
ツールは、人に使ってもらってなんぼです。普段の作業がもっと楽になるように、便利になるように、そういうサポートをするのがツールです。自己満足では意味がありません。そういうものを作る以上、なるだけ利用者の声を聞き、できあがったっものや機能についてはアナウンスをするなどを密に行わなくてはいけないのに、それを怠ってしまっては意味がありません。
自分からやらせてくださいと言ってはじめた以上、今まで以上に丁寧に仕事をするよう心がけなくちゃ。