Документация

Задачи, планы, спринты и категории

Четыре способа организации работы в Coroid и когда использовать каждый из них.

Coroid выделяет четыре единицы работы. Они могут вкладываться друг в друга, а выбор нужной единицы в основном зависит от объема работы и количества задач, которые нужно выполнить одновременно.

ЕдиницаРазмерЗавершается
ЗадачаОдно изменениеОдин pull request
ПланФункциональность в нескольких этапахОдин pull request на весь план
СпринтБлок работы во времениВсё, что создают его задачи
ЛинияПоток параллельных задачВетка, в которую интегрируется работа плана

Спринт · две недели

ПланРедизайн оформления заказа

Этап 1

ЗадачаФорма оплатыЗадачаПроверка карты

Этап 2

ЗадачаИтоговая сводка заказа
Ветка конвейераОдин pull request

Задача в отдельности

ЗадачаИсправление парсинга даты
Один pull request
Спринт объединяет работу за определённый период. План упорядочивает задачи по этапам, а его ветка превращает их в один pull request. Отдельная задача также считается одним pull request.

Задача

Это базовая единица. Одна задача — это один блок работы, который приводит к созданию одного pull request, и именно она фактически выполняется; планы, спринты и линии — лишь способы организации задач.

Если результат можно описать абзацем, а рецензент сможет прочитать его за один присест, значит это задача.

План

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

Используйте план, если:

  • последующие шаги зависят от предыдущих
  • вы хотите увидеть весь подход до того, как приступить к реализации
  • работа представляет собой функциональность, а не простое изменение

Утверждение плана — самая экономичная точка вмешательства в систему. Отклонение подхода на этом этапе обходится в одну минуту; отклонение после выполнения трех задач потребует повторной работы над тремя этапами.

Как план попадает в ваш репозиторий

Задачи плана не открывают отдельный pull request. Они работают в собственных ветках и объединяются в общую ветку линии, и именно эта ветка преобразуется в один pull request для вашей базовой ветки.

Ветка задачиВетка задачиВетка задачи

Ветка конвейера

Место интеграции работы плана

Один pull request

Собранная функциональность, прошедшая один этап проверки

main

Ваша базовая ветка

Задача относится к другому проекту, нежели конвейер; поэтому для каждого репозитория открывается отдельный pull request.

Ветки задач объединяются в ветку конвейера плана, а затем эта ветка преобразуется в один pull request по отношению к вашей базовой ветке.

Так вы проверяете собранную функциональность за один раз, видя все изменения целиком, а не утверждая полуфабрикаты поэтапно.

Исключением являются задачи, охватывающие несколько проектов: задача, относящаяся к другому проекту, чем тот, для которого предназначен соответствующий логический раздел, обрабатывается отдельно, поэтому планы, охватывающие разные проекты, формируют отдельный pull request для каждого репозитория. Это неизбежно — один pull request не может охватывать два репозитория.

Спринт

Временной контейнер для работы со своими метриками и временными рамками. Спринты отвечают на вопросы «что мы делаем в этот период и как прошла работа», а не «как создается эта функциональность».

Используйте спринт, когда координируете работу команды в определенный период. Используйте план, когда разбиваете одну функциональность на этапы. Это не взаимоисключающие варианты — в спринте могут быть задачи, относящиеся к нескольким планам.

Линия

Линия — это место, где интегрируется параллельная работа плана. Задачи направляются в ветку линии, а не в вашу базовую ветку, поэтому несколько агентов могут работать одновременно без конфликтов, а готовый результат преобразуется в один pull request после прохождения проверок.

Если план касается порядка, то линия — это параллелизма и интеграции. Если у вас есть возможность задействовать несколько агентов и работа не требует строгой последовательности, линия позволяет им работать вместе и в итоге получить один готовый к рецензированию результат.

Выбор

Вопрос не в том, сколько pull request вам нужно — и задача, и план приходят как один. Важно понять, сколько работы должно быть выполнено, чтобы результат был готов к рецензированию.

  1. Является ли это одним изменением, которое рецензент сможет прочитать за один присест? Да → задача.
  2. Нужно ли несколько последовательных изменений, чтобы результат стал осмысленным целиком? Да → план. Его линия позволяет выполнять части работы параллельно, где это возможно.

Спринты дополняют всё вышеперечисленное как слой планирования и отчетности.

Место релиза в процессе

Релиз Релиз — это запись о доставке после интеграции, а не очередная задача, план, спринт или этап. Он привязывает коммит в репозитории, проверяет наличие запланированных работ в этом коммите и отслеживает попытки развертывания в каждой среде. Один релиз может включать работу из нескольких спринтов; один спринт может привести к созданию нескольких релизов. Продвижение по этапам открывает pull request, но само по себе не создает подтвержденную версию продукта.

Что определяет количество одновременно выполняемых задач

Дело не в структуре, а в возможностях системы. План с десятью задачами, допускающими параллельное выполнение, и одним слотом для агента будет обрабатывать их поочередно. См. Возможности системы и слоты агентов.