Какой инструмент для управления задачами (task tracker) вы использовали в проектах?

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

Ответ

Основным инструментом был Jira. Он предоставляет комплексный фреймворк для Agile-разработки.

Ключевые возможности и использование:

  • Структура работы: Создание эпиков (Epics), пользовательских историй (User Stories), задач (Tasks) и багов (Bugs).
  • Отслеживание прогресса: Использование канбан-досок (Kanban Boards) и спринтов (Sprints) в Scrum.
  • Интеграции: Глубокая интеграция с CI/CD (например, автоматический переход статуса задачи при создании merge request в Git).

Пример работы с Jira REST API на Java (используя библиотеку Atlassian):

import com.atlassian.jira.rest.client.api.JiraRestClient;
import com.atlassian.jira.rest.client.api.domain.Issue;
import com.atlassian.jira.rest.client.api.domain.input.IssueInput;
import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;
import java.net.URI;

public class JiraClientExample {
    public void createIssue() throws Exception {
        JiraRestClient client = new AsynchronousJiraRestClientFactory()
                .createWithBasicHttpAuthentication(
                    URI.create("https://your-company.atlassian.net"),
                    "email@example.com",
                    "api-token" // Используйте API Token, а не пароль
                );

        IssueInput newIssue = new IssueInputBuilder()
                .setProjectKey("PROJ")
                .setIssueTypeId("10001") // ID типа "Bug"
                .setSummary("NullPointerException in UserService.save()")
                .setDescription("Stack trace: ...")
                .build();

        Issue createdIssue = client.getIssueClient().createIssue(newIssue).claim();
        System.out.println("Created issue: " + createdIssue.getKey()); // PROJ-123
        client.close();
    }
}

Альтернативы: Для небольших команд или проектов также эффективны GitLab Issues или GitHub Projects, которые тесно интегрированы с системой контроля версий и CI/CD.