需求和系统定义是一个问题：经过这些年，从最早也最简单的瀑布模型开始，已经开发出了许多不同的模型。但是，随着软件变得更大和更复杂，这种开发方法已经出现负面影响，尤其是牵扯到有大型团队的时候。迭代的模型得到了发展，它包括原型法、演化原型法、增量开发、螺旋模型、V模型和混沌模型。这些模型的使用大部分都局限于项目的总体管理，但是现在认为，如果在项目的单独部分都由最合适的模型控制，则这个项目受到了更好的控制。例如，一个项目用增量开发模型，但是在每一个增量过程，文档是按照瀑布模型创建和管理，而代码开发使用V模