カジョウ・アツプデェト
■今月何件?
WindowsのPCを叩いていると、なんやらアップデートのパッチが何個も出てる。しかも、やたらと容量が多い。アップデートのキャッシュはHDを圧迫するし、ダウンロードも回線を圧迫する。OSをクリーンインストールして、バッチのダウンロードで何百件とか出てくるとかなり萎える。
数カ月前、Windows XPをクリーンインストールしたら、アップデートだけで半日以上つぶれた。MacやUbuntuだったら、バックアップとデータ移行込みで余裕で作業終了の時間だ。Windowsで大量のバッチが検出されると、イラッとくるのは私だけじゃないはずだ。
■バッチの数って減らせないのだろうか
アップデートとかアップグレードとか、アップと付くと何か得した気分になる。ただ、本当にアップしてるのだろうか。Windowsの場合、アップデートというよりWindows Bug Fixという表現の方が合ってる気がする。
セキュリティ強度が上がっていると表現しているが、実際は穴を塞いでいると言う方が正しい。OSくらいのレベルのソフトウェアになると、一切バグを出さずに作るのは相当難しい。だったら、メンテナンスしやすい仕組を取り込んではどうかと思う。
例えば、よほどの緊急のもの以外、一つのファイルにまとめるとかどうだろう。Windows 7.1.11とか、少数点以下の数字を確認すればどのくらいバッチが当たってるか分かりやすい。何十個もバッチがあると、どのバッチが当たってるか調べるだけでも大変だ。
■ソフトウェアの構造の複雑化
ソフトウェア製品を売るためには、どうしても機能を追加していく流れになる。ただ実際には機能を追加すれば製品が魅力的になる訳でもない。また、機能を追加することで設定項目が複雑になり操作性が落ちたり、習得の難易度が上がることがある。
機能が増えれば増えるほどソフトウェアの構造が複雑になる。構造が複雑になれば、当然メンテナンスに手間がかかってしまう。もしかしたら、新機能の追加よりメンテナンス性の向上や構造の簡略化に取り組むと、意外なコストダウンが実現するかもしれない。
■ソフトウェアの進化の方向
ソフトウェアがある程度高機能かしていくと、どうしてもゴテゴテしてしまう。高機能化したソフトを二つに分けるとか、そういうアプローチってないのだろうか。いろんなエディションが複雑に入り組むより、別々のソフトにして単品売りしてくれる方が使う側としても分かりやすい。
一つ一つのソフトを小さくすることで、メンテナンスのコストは低く抑えられる。また、自分の欲しい機能のソフトだけアップグレードしていくこともできる。ソフトウェアの高機能化で実現できない使い方が、ソフトウェアの連携によって実現していくのではないだろうか。
ここら辺を追求していくと、一つの答えとしてUnix系のコマンドツールに突き当たる。長い間使われ続けて、今もなお使われ続けている。こういう古くからのツールに学ぶことはあるのではないだろうか。