From the Archives: Iterative vs Incremental Development
One thing I've seen a bit too much of in the industry is incremental patch-work development. Not to be confused with iterative development, incremental development is the small-picture, task-at-hand mindset that can lead to bad software.
Iterative development starts with the big picture, and revisits it constantly to make sure that the piece that will be added will still fit. Sometimes the big picture needs to shift to accommodate a new concept.
Incremental development starts and ends with the immediate goal, task, or story at hand. It is often the most direct approach. Looming deadlines short-sighted product management can drive this behavior.
Imagine creating a sign using a narrow-minded incremental approach.
Pick a location, pick the font, add a letter, center, add the next letter, repeat.
It doesn't really fit, but you ran out of time. Sure, you can fix it later, but good luck getting time scheduled for that, especially after it's shipped and the next stop-the-world deadline is looming.