Nigar получила первую настоящую задачу — PS-41, кнопку «Добавить в корзину». Код она писать умеет, но между «задачу назначили» и «работает в production» лежит целая цепочка привычек и договорённостей, которых нет ни в одном учебнике по языку программирования: как задавать вопросы, называть ветки, оформлять pull request, отвечать на ревью. Именно они делают разработчика удобным в команде. Разберём весь путь шаг за шагом.

Путь задачи: от тикета до production

Инструменты бывают разные — Jira, GitHub Projects, Linear, GitLab, — а путь почти везде один:

Десять шагов от тикета до production; красная проверка CI возвращает работу к коммитам
Десять шагов от тикета до production; красная проверка CI возвращает работу к коммитам
  1. Тикет — Leyla описала ценность и критерии приёмки.
  2. Уточнение — вы задаёте вопросы, пока всё не станет понятно.
  3. Ветка — отдельная ветка от свежей main.
  4. Коммиты — небольшие, с понятными сообщениями.
  5. Pull request — описание для ревьюера.
  6. Ревью — коллеги читают и комментируют.
  7. CI — автоматические проверки: линтер, тесты, сборка.
  8. Merge — слияние в main.
  9. Деплой — пайплайн выкатывает изменение на staging и в production.
  10. Проверка — убеждаемся, что в production всё работает.

Каждый шаг маленький и виден всей команде, поэтому ошибка ловится рано и дёшево. Красный CI возвращает вас к коммитам, а не отправляет баг в production.

Definition of Ready и Definition of Done

Это две «границы» задачи: когда её можно брать и когда считать законченной.

Ready — можно братьDone — можно закрывать
Понятно, зачем задача нужнаКод проверен коллегой (review)
Есть критерии приёмкиТесты написаны и проходят, CI зелёный
Размер оценён и помещается в спринтКритерии приёмки выполнены
Известны зависимости (доступы, API, дизайн)Задеплоено и проверено на staging
Есть макет или пример результатаПри необходимости обновлены README и документация

Definition of Done описан в Scrum Guide; Definition of Ready — популярная командная практика. Идея одна: неясную задачу не начинают, а недоделанную не закрывают. Если задача не Ready, не гадайте — задайте вопрос.

Как задавать вопросы

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

text
Bad:
  hey, quick question
  the cart doesnt work, can you help?

Good:
  PS-41: "Add to cart" does nothing on staging.
  I checked: POST /cart/items returns 401 in
  the Network tab. My token works in Postman.
  Does staging use a different auth header?

Ориентир: попробуйте разобраться сами 30–60 минут, затем спросите — и не позже. Пока вы записываете вопрос, ответ нередко находится сам. А сообщение «привет, можно вопрос?» без самого вопроса заставляет собеседника ждать дважды: пишите суть сразу.

Ветка и коммиты

Ветку создают от свежей main и включают в имя ключ тикета: по имени видно, о какой задаче речь, а трекер сам связывает ветку с тикетом.

bash
git switch main && git pull
git switch -c feature/PS-41-add-to-cart

# work, then small commits
git add src/cart
git commit -m "feat(cart): add cart button"
git push -u origin feature/PS-41-add-to-cart