In the worst cases, it can delay development and cause cost overruns. However, it is probably an inevitable fact that to develop top quality software, revisions need to be made at many points to correct design errors, reshape the project, or fit the available resources. The best solution is to plan for changes. The axiom Measure twice, cut once can definitely be applied to software development. Even with the best amount of measuring, flexibility and modularity should be built in to allow revisions, without making wholesale changes.
Most software faces revisions because of a lack or breakdown in communications.
When this occurs, it is useful, if possible to improve the flow of communications. During the design and planning phases of software development, it is important not to get locked into a specific mode of development. This will cause trouble later on in the project. Flexibility can be built in with careful design and good programming.