Sounds good in theory. The reality is that requirements keep changing during the development cycle, which leads to scope and budget creep. I went through firm fixed price development contracts in the late 80s. There was no incentive on the customer side to stop changing requirements. An easy way to go bankrupt.