開発者と使用者の間の差として、拡張性に関する理解があります。
この前とあるプログラムを組んだのですが
私はこれに、追加設定できる項目を4つ作って「予備」という名称を付けました。
しかし同僚(階級的には上官に当たる)から、これに対して
予備をなくして埋める(現状のプログラムを入れる)ように指示を受けました
例えるなら多機能ナイフを作ったとして
私の作ったものは一般的によく使うナイフ6種を標準装備として
今後新しく開発されるナイフ4種を追加装備可能な10徳ナイフを作ったみたいなものです。
しかし使用者から見るとこのナイフは現時点では6徳しかありません。
4つ空いてるのだから、何か4つ付けろということですね。
可能と言えば可能ですが、拡張性が0となり、新しいナイフが開発された場合は、
土台から作り直さなければなりません。
しかもこれは、そもそもその担当の人が「作れることが前提」の話です。
私の後任者が、プログラムを最初から作れる人なら、かなり苦労を掛けますがなんとかなりますが、作れない人だと「このプログラムでは最新の装備品を装備できません」という返答をせざるを得なくなります。
今の開発速度から考えるとこの予備4つを使い切るには8年ほどかかるはずなので
私の後任が、何回か変わってもしばらくは予備を使うことによって最新装備を取り付けることが出来ます、そして8年もあれば誰かが、このプログラムを新しく書き換えることができる人物が付くだろうと考えたからですね。
しかし現場は現実主義なので、現時点では使えない予備の存在については否定的になりがちです。しかし、戦時中またはすぐに戦争がはじまるというわけではないのなら拡張性を保有しておくべきだと私は思っています。