It may be caused by insufficient specification, demanding requirements particularly complex projects. Sometimes it is just not possible to predict every aspect and complications that may occur. Thus, splitting the project into phases may help avoid misunderstandings and wasting time on changing the project scope during the development of a whole, complex solution.