По своему личному опыту я обнаружил, что лучше избегать добавления незапланированных функций как можно скорее.
С точки зрения дизайна, функция, которая была добавлена в тот момент, когда «особенность x была бы хороша», добавит много времени на разработку, может плохо интегрироваться с кодом и может не полностью соответствует остальной части вашего дизайна.
В худшем случае проект, в котором было много таких моментов, может выглядеть как грязная, взломанная комбинация функций, которая действительно должна была бы потратить на них гораздо больше времени на этапе проектирования и выглядеть менее профессиональной в результате.
В качестве общего руководства я стараюсь придерживаться следующих правил:
Если в начале проекта появляется новая функция, найдите время, чтобы вернуться к этапу проектирования и действительно посмотреть, как эта функция может работать с вашим продуктом, при этом оставаясь согласованной с остальной частью дизайна.
Если проект приближается к выпуску, рассмотрите возможность составления списка функций для добавления в новую версию.
- Если вы обнаружите, что появляется множество функций, которые вы действительно хотите реализовать, возможно, вам следует вернуться к дизайну и посмотреть, почему эти новые функции не рассматривались ранее, возможно, из-за отсутствия усилий, потраченных на фаза проектирования.
Очевидно, что это подходит для некоторых проектов лучше, чем для других, но на самом деле, если у вас опоздала какая-то функция в проекте, вам, вероятно, будет хорошо без нее, по крайней мере, пока вы не начнете работать над новой версией.