An incremental development approach decomposes the work to be done in smaller manageable parts and affects the whole development lifecycle (spanning months or even years), while iterative development should be seen as a working method (spanning days or weeks) where (a piece of) the software is improved and enhanced successively.