By creating a well-organized plan and sticking to it, you can avoid many of the common problems that lead to expensive and time-consuming code rewrites.
Other tips for reducing development costs include:
-Using proven, existing technologies wherever possible
-Avoiding custom coding whenever possible
-Hiring experienced developers who are familiar with the technologies you're using
-Creating detailed specifications for all features before starting development
-Testing software thoroughly as it is developed, rather than waiting until the end of the project