Development is iterative
Development follows a path, but is, at the core, an iterative process. It almost never happens that a developer gets something perfectly right the first time they do it. Development is testing and testing is development. This is a misconception I’ve seen many times over the years. Clients think that testing can be skipped or skimped on, but it is a part of the development process and any cutting back on this means that the system will be incomplete.
Additionally, the improvement of systems is iterative. The best set of features that can be built within the given amount of time is built, promoted, sold, and then reviewed for customer feedback and iterated on in the next release. For more information on the general process, take a look at the chapter on Continuous Integration.