Как узнать, когда прекратить добавлять функции?

Как узнать, когда прекратить добавлять функции?
Как узнать, когда прекратить добавлять функции? - tregubov @ Unsplash

Некоторое время назад я написал очень маленький скрипт на Python, который периодически проверял xml-канал на наличие новых записей и предупреждал пользователя о новых записях, когда они присутствовали. Я написал это для себя, так что, по сути, это была консольная программа, которую мог использовать любой, кому комфортно с консольным интерфейсом.

Через некоторое время я решил, что это может быть больше полезно для других людей, и начал приводить его в порядок, очищать входные данные, удалять ошибки. Мне пришло в голову, что, поскольку я написал сценарий, я знаю, как использовать его эффективно, точно и т. д. Другие могут не знать, поэтому я начал добавлять графический интерфейс. Это началось как простое меню, а затем расширилось до более полного графического интерфейса с интерфейсом и меню параметров. Затем я добавил сохраненные пользовательские настройки, а также хранилище для ранее найденных XML-каналов, чтобы ускорить повторный поиск.

Я добавил ведение журнала, чтобы помочь отлаживать приложение на случай, если что-то пойдет не так, довел приложение до последней доступной стабильной кодовой базы Python для выбранной мной платформы и улучшил диалоговые функции.

Я исправил ошибки и четко прокомментировал свой код, но у меня все еще есть вещи, которые, по моему мнению, можно сделать для улучшения приложения, прежде чем я сделаю его доступным для альфа-тестеров. Это далеко от моего исходного 20-30-строчного сценария. То, что, как я ожидал, займет у меня всего час или два, чтобы перейти от проверки концепции к приемлемой программе использования, заняло в 10-20 раз больше времени. (Я все еще нуб, и все это занимает у меня много времени, но все же....)

Как узнать, когда нужно перестать добавлять/подправлять/исправлять вещи и позволить ребенку выползти на улицу?

Когда вы уложитесь в срок.

Если у вас нет дедлайна, это ваша проблема...

Вот как я работаю:

  1. Я добавляю новые функции/баги в свой бэклог продукта.
  2. Я расставляю приоритеты всего бэклога продукта по бизнес-ценности и оценке (последнее необязательно в случае персонального проекта).
  3. Я распределяю рабочее время между собой. Дата релиза - это конец этого времени.
  4. Я начинаю с самого первого в списке. Я работаю над одной функцией за раз. Чтобы функция была завершена, она должна быть действительно завершена, включая документацию (в конце работы над функцией я могу потенциально отгрузить продукт).
  5. Я берусь за следующую, пока выделенное мне время не будет израсходовано.
  6. Если время расходуется, когда я создаю функцию, я временно отбрасываю ее.
  7. Когда отведенное время израсходовано, я беру последнюю сборку и делаю из нее релиз.
  8. Я повторяю процесс с пункта 1.

LetsCodeIt, 23 мая 2023 г., 02:38