Когда задача делается долго, то в какой-то момент заказчик забывает, зачем вообще это было нужно, а разработчик - как это было сделано, и все начинается сначала.