Don't Fix the Price

Software is like a living, organic being -- constantly evolving to its environment.

As such, it's extremely difficult to develop on a fixed budget.

This is even more applicable for large or especially complex projects.

Instead of trying to adhere to an arbitrary budget:

    1. Split large projects into smaller ones
    2. Develop the "core" features first
    3. Add only what's absolutely critical
    4. Use an agile approach so you always have a working version

Remember, you might not be "done" when you think.

Further reading: