世の中いろいろジェネレータがありますよね。会社でもいろいろ作っていると思いますし、個人でもいろいろ作ってますよね。秀丸マクロは私はあまり見たことなかったですけど、VSマクロなら作ったので、そんなのもいろいろあるでしょう。

「再利用」というと普通は作ったモノの再利用をイメージすると思います。小さいモノであればなにも変更せずそのまま利用できると思います。でもある程度のまとまりを再利用しようと思うと、なかなかそのままでは使えないので、改変して使うことが多いのではないかと思います。たとえばジェネレータでAを生成して、Aを修正してBを作るみたいな。あるいは今回作るCはBに似ているので、直接Bを持ってきてCに改変するとか。

「生産性を上げるために再利用しよう」という方針はあちこちにあるのではないでしょうか。けど再利用で本当に生産性上がってるんでしょうか。

再利用するためには、まず再利用できるものの存在を知っていなければいけません。たくさんの小さいモノの存在を認識するためのコストは大きくないですか?
ある程度のまとまりで再利用しようと思ったら改変が必要です。毎回似たような改変してませんか?
再利用したモノに問題があることはありませんか?それを再利用したあちこちで問題が発生することはないですか?
再利用するものの中身を理解できますか?どこを直したらよいか分からなくて余計な修正してしまったりしていませんか?

なぜ再利用という発想が出るかというと、「作るコストが高い」という認識があるからだと思います。だからいろいろな問題に直面してるにもかかわらず、なるべく一から作らないように再利用の仕方を改善しようとするのだと思います。

けど、「作る」コストは本当に高いでしょうか?ジェネレータがあるじゃないですか。コピーのコストがほぼ0というのはソフトウェアの特性だと思いますが、ジェネレートのコストもほぼ0ですよね。なぜAしか生成できないままにしておくのですか?BもCも生成できるようにジェネレータを修正すればよいではないですか。

車の話がありました。今の車はほとんどBTOで、まったく同じ車が作られることはほとんどないということです。そうだろうなと思います。それでもコストが上がらないのは手順と再利用のおかげ。そうだと思うんですけど、再利用するのは部品ですよね。できたものを直そうと思ったらやはり金かかりますよね。たとえば、これまで白と灰色しかなかったんだけど赤も提供したい。白の車を再利用して赤に塗り替えようとは考えないですよね。塗装のプロセスを直して3色に対応できるようにしますよね。工場全体がジェネレータですよね。ジェネレートしたものを直すというのは、改造屋さんというニーズはあるとしても、生産性の話とは別世界の話ですよね。

要するに部品を再利用するのは人間ではなくてジェネレータではないでしょうか。人間の仕事はジェネレータがいろいろな部品を再利用できるようにジェネレータを直すという作業。その意味で、再利用という言葉は、人間の作業のように見えるので、やめたほうがよいのでは。ジェネレータという言葉は狭いのでプロセスという言葉にして、プロセスの継続的な改善こそが生産性向上への道。ちょっと陳腐な言葉になってしまいましたけど、そういうことかなと思います。