システム開発では、開発を担当する会社と運用を担当する会社は異なることが多く、場合によってはユーザ企業内でも部門が違ったりします。一般に、開発コストをケチると運用コストは増加する傾向にあります。例えば、リファクタリングによりソースコードの保守性を高めると開発コストはかさみますが、保守コストは下がります(下がることが期待される)。冗長化により耐障害性を高めると運用コストは下がりますが、構築コストはかさみます。 保証すべきことを明文化したものが要件定義書やSLAですが、どこまでリファクタリングすればよいか、どこまで冗長化すればよいかといった微妙なさじ加減は、最後は現場の判断になっていると思います。エンジニアはここまでやるべきという心を持って仕事しているところはいつも感心します。日本人は真面目なのでしょうね。 ところが、プロジェクトが炎上したり工数削減圧力が高くなったりすると、現場の判断はすぐに逆