quiel

Задачи

Статусы, приоритеты, исполнители и то, как задача доходит от «записали» до «приняли».

Задача — единица работы. У неё есть статус, приоритет, исполнитель и результат, который кто-то принимает. Всё остальное в системе вращается вокруг этого.

Статусы

СтатусЧто значит
БэклогЗадача записана, но в работу её ещё не отдавали.
Готова к работеМожно брать. Агенту такая задача попадёт в очередь, человек берёт её сам.
В очередиСтоит в очереди к диспетчеру и ждёт свободного агента нужной роли.
Выдана агентуДиспетчер выдал задачу конкретному агенту и держит за ним аренду.
В работеКто-то работает прямо сейчас — агент или человек.
Ждёт человекаАгент задал вопрос и остановился. Пока нет ответа, работа не идёт.
ЗаблокированаМешает что-то извне: другая задача, доступ, решение.
На проверкеРезультат сдан и ждёт, чтобы его приняли или вернули с правками.
ГотовоПринято. Конечное состояние.
Не получилосьНе вышло: три возврата с правками подряд либо агент сдался.
ОтмененаПередумали делать. Конечное состояние.

Три статуса стоит различать, потому что их часто путают:

  • В очереди — задача ждёт свободного агента. Никто ей не занят.
  • Выдана агенту — диспетчер уже закрепил её за конкретным агентом. Пока аренда жива, другой агент её не возьмёт.
  • Ждёт человека — агент задал вопрос и остановился. Это не поломка: работа честно стоит, пока не ответят.

Кто какой переход может сделать

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

ОткудаКудаКто можетКогда
БэклогГотова к работечеловекЗадачу признали готовой к работе.
Готова к работеВ очередиплатформа, человекУшла в очередь к агентам: либо сама, если исполнителем может быть агент, либо человек поставил её вручную.
Готова к работеВ работечеловекЧеловек взял задачу себе.
В очередиВыдана агентуплатформаДиспетчер закрепил задачу за свободным агентом нужной роли.
Выдана агентуВ работеагент, человекАгент подтвердил, что начал работу.
Выдана агентуВ очередиплатформа, агент, человекАгент отказался от задачи или пропал — она вернулась в очередь.
В работеЖдёт человекаагент, платформа, человекАгент задал вопрос или запросил подтверждение и ждёт ответа.
Ждёт человекаВ работечеловекЧеловек ответил, работа продолжается.
Ждёт человекаВ очередиплатформа, человекОтвет пришёл слишком поздно: агента, который спрашивал, уже нет. Задача вернулась в очередь.
В работеЗаблокированаплатформа, человекПоявилась блокирующая зависимость от другой задачи.
ЗаблокированаГотова к работеплатформа, человекПоследняя блокирующая задача закрыта.
В работеНа проверкеагент, человекРезультат сдан и ждёт проверки.
В работеНе получилосьагент, платформа, человекАгент не справился либо исчерпаны попытки доработки.
В работеВ очередиплатформа, агент, человекАгент пропал во время работы — задача вернулась в очередь.
На проверкеГотовочеловек, платформаРезультат приняли — человек или автоприёмка по слиянию pull request.
На проверкеГотова к работечеловекРевьюер вернул задачу с правками.
Не получилосьГотова к работечеловекЧеловек перезапустил задачу.
БэклогОтмененачеловекОтменили.
Готова к работеОтмененачеловекОтменили.
В очередиОтмененачеловекОтменили.
ЗаблокированаОтмененачеловекОтменили.

Из этого следует несколько правил, которые полезно знать заранее:

  • Выдать задачу агенту может только диспетчер. Руками перевести задачу в «Выдана агенту» нельзя — иначе двое взялись бы за одно.
  • Принимает и возвращает человек. Агент не может принять собственную работу.
  • Возврат с правками не бесконечен. Третий возврат подряд уводит задачу в «Не получилось» вместо «Готова к работе». Платформа предупреждает об этом ещё до нажатия кнопки.

Приоритеты

От P0 (критично) до P3 (низкий). Приоритет влияет не только на глаза: диспетчер выдаёт агентам задачи в порядке приоритета, а внутри одного приоритета — в порядке очереди.

Исполнитель: человек, агент или любой

У задачи указывается, кто её должен делать:

ИсполнительЧто происходит
ЧеловекЗадача не попадёт в очередь агентов. Её берут руками.
АгентПопадёт в очередь; агент нужной роли возьмёт её сам.
ЛюбойМожет взять и агент, и человек.

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

Если у задачи не указана ни роль, ни конкретный исполнитель, отправить её в очередь нельзя: непонятно, кому выдавать. Платформа скажет об этом заранее и не даст нажать кнопку.

Результат и приёмка

Когда работа сделана, в задаче появляется Результат — отчёт в Markdown, ссылки на pull request и коммиты, статус тестов. Задача переходит «На проверке».

Результат может написать и человек: задача вполне может быть назначена на него. Любая правка результата попадает в ленту задачи — видно, кто и когда переписал.

Дальше проверяющий принимает или возвращает с правками. Возврат требует комментария — без объяснения кнопка не сработает: агент должен понять, что переделывать.

Незелёные проверки блокируют приёмку

Если к задаче привязан pull request и проверки GitHub по последнему коммиту не прошли, принять задачу не получится. Это не предупреждение, а отказ — так устроено намеренно. Подробнее: GitHub.

Зависимости

Задачу можно пометить как зависящую от другой («блокируется») или связанную с ней. Зависимости видны в самой задаче и на графе проекта.

Это не просто пометка: агент, берущий задачу, получает в задании результаты тех задач, от которых она зависит — «что сделано до». Так он не переспрашивает то, что уже решено.

Милстоуны

Милстоун — это срок с набором задач: спринт, релиз, этап. У него есть прогресс, который считается по закрытым задачам.

На странице милстоуна задачи только видно; управляют ими на доске и в списке задач проекта.

На этой странице