Рэй Бредбери, всемирно известный писатель-фантаст, когда-то рассказывал о том, как он писал свои рассказы. Обычно на каждый рассказ у него уходила неделя работы. Причем первоначальный вариант он писал в первые два дня, а затем каждый день переделывал и переписывал уже вроде бы готовое произведение. И так в воскресенье получал итоговую версию, которую было не стыдно показать редактору. Так вот, у программиста работа чаще всего выглядит также. Сначала пишем сырую версию какого-то программного решения, после чего начинаем раз за разом переписывать. И так до тех пор, пока итог не устроит по заданным параметрам или же пока не кончатся ресурсы (время и/или деньги). Конечно же бывает по разному. Кто-то пытается сразу писать "чистовик". Кто-то наоборот, публикует еще сырой вариант и собирает обратную связь. Причем неважно, говорим мы про программиста или писателя. Попытка сразу продумать все до мелочей и сделать без необходимости переписывать обычно приводит к тому, что тратится неоправданно