Какую систему управления задачами (ticketing system) вы использовали в последнем проекте?

«Какую систему управления задачами (ticketing system) вы использовали в последнем проекте?» — вопрос из категории Софт-скиллы, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

В последнем проекте использовалась Jira в связке с Confluence (документация) и Bitbucket/GitLab (исходный код).

Типичный workflow для задачи:

  1. Создание: Задача создается по шаблону (User Story, Bug, Task) с полями:

    • Summary (краткое описание)
    • Description и Acceptance Criteria (AC)
    • Story Points (оценка сложности)
    • Component / Epic (привязка к функциональному блоку)
  2. Работа по задаче:

    • Ветвление в Git: git checkout -b feature/PROJ-123-short-description
    • Коммиты с ссылкой на тикет: git commit -m "PROJ-123: Implement payment validation logic"
  3. Жизненный цикл статусов: BACKLOGTO DOIN PROGRESSCODE REVIEWQADONE

Пример связи кода и задачи (REST endpoint):

// Реализация для тикета PAY-101 "Добавить валидацию входящего платежа"
@RestController
@RequestMapping("/api/v1/payments")
@RequiredArgsConstructor
public class PaymentController {
    private final PaymentValidator validator;
    private final PaymentProcessor processor;

    @PostMapping
    public ResponseEntity<PaymentResponse> createPayment(@Valid @RequestBody PaymentRequest request) {
        // Дополнительная бизнес-валидация (требование из AC тикета PAY-101)
        validator.validateBusinessRules(request);
        PaymentResponse response = processor.process(request);
        return ResponseEntity.status(HttpStatus.CREATED).body(response);
    }
}

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