Break up the software into deliverable phases with the minimum period set to at least 3 months long for medium-sized projects that last a year or less. For larger projects, consider delivery periods at least 6 months long. The reason for this is that software delivery involves substantial overhead. In general, the less overhead, then the more efficient the project.
Ideally, programming work should be planned so that only new code is added to existing code from a previous phase.
It is best if little to no code modifications be made to previously delivered software. Otherwise, it risks turning the project into a maintenance project. According to Facts and Fallacies of Software Engineering by Robert L. Glass under fact number 19:
“Modification of reused code is particularly error-prone. If more than 20% – 25% of a component is to be revised, it is more efficient and effective to rewrite it from scratch.”