GeekFactory

int128.hatenablog.com

成長するソフトウェアに未来がある

ソフトウェアの本質は成長することにあります。一度作って終わりではなく、ニーズに応じて絶えず変化していくものでなければなりません。メンテナンスされなくなったソフトウェアは成長が止まり、やがて朽ち果ててしまいます。

ビルのような建築物も、テナントが入れ替わり、内装が変わり、絶えず変化を続けています。ビルという建築物が提供するサービスは時代の流れとともに変化してゆきます。しかし、テナントが入れ替わっても、ビルの柱の位置はそうそう変わりません。成長する上で、変えてよい物と変えてはいけない物を見極めなければならない。ソフトウェアも同じ。どんな仕様変更も可能というのは大きな間違いです。

建築物とソフトウェアの本質的な違いは複製にかかるコストです。ソフトウェアはいくらコピーしてもタダ*1だし、内容を変える敷居も低い。それゆえ、多くの人が試行錯誤した結果を集めて、より良いソフトウェアを生み出すことが容易にできるのです。

作ったときに完璧なソフトウェアでも、時代の流れとともに変化できなければ朽ち果ててしまいます。成長が容易なソフトウェア、すなわち保守性の高いソフトウェアこそが未来を創ります。

*1:お約束ですが、ライセンスは別の話です。