Imagine the situation when you signed the contract and started the app development. After a few weeks, your PM announces that the crucial feature will require more coding work, so you'll have to spend more money on the project. Sounds terrible, isn’t it?