値引きの手段は色々あって
例えば納期を伸ばすことで閑散期に暇な人員を割り当てることで値引き
もしくはスキルの足りない新人を割り当て実質的には教育の教材化してしまうことで値引き

あと単純にプログラマがやるべき仕事をユーザーに肩代わりさせることで工数を減らす
ユーザー側にスキルがあればだけど仕様やUIを決めてもらう
不具合あれば客のせいだから伸びた分の工数はもらうが基本的には節約になるはずだ

プログラムを作らないという手もある
本来ならアプリケーションで実装するべき機能をエクセルでやる
アプリ側はファイルの入出力機能だけ持つ

グレープシティを活用する手もあるが大抵は教育コストと導入費用で最初はマイナスになる
そもそも導入できるような案件ならすでにしてるだろう

テストを客にやらせるのは誰でも思いつくが一番危険でもある
要するに開発の工数を保守につけかえるだけでもある

いずれにせよ客との信頼関係がないと工夫をしても逆効果だ
何が必要なのか、どの部分の工数がどれだけかかるのかハッキリさせて
客に削る機能を選ばせるとあと腐れもないだろう

要求も減らさず保守での利益も約束せず単純に開発会社の出血を強いてくるような客はさっさと縁を切ったほうがよい