Разные сервисы в пайплайне (или как это назвать?) от постановки задачи до деплоя оперируют разными понятиями, и это невероятно бесит. Например, задача создаётся в Jira, код коммитится в GitLab, тесты гоняются в Jenkins. В итоге у нас есть как минимум три разных сущности: задача, код, результат тестов.
Задача
Описана простым человеческим языком (в идеале, хе-хе), не имеет представления о коде, пока ты гвоздями не прибьёшь туда ссылку на мерж-реквест из Гитлаба. И даже после этого за результатами код-ревью надо переться по ссылке в Гитлаб.
Код
Как минимум, у нас есть три сущности: ветка в гите, мерж-реквест в Гитлабе и пайплайн со ссылкамии на Дженкинс. Нахрена мне всё это? Навигация в том же самом Гитлабе вообще сделана через жопу, потому что переходишь ты от пайплайна к ветке, а в мержреквест уже нельзя. Да и как инструмент код-ревью он тоже местами так себе: "This diff is collapsed. Click to expand it." Нормально вообще? Пришёл код смотреть, а тебе ещё и развернуть всё надо.
Тесты
Тесты запускаются на Дженкинсе. Для каждого запуска есть отдельная джоба, все джобы хранятся в одном пуле без разделения по юзерам и уж тем более по тикетам. А если что-то упало в процессе сборки, то знаете, почему будет провален запуск тестов в Дженкинсе? Потому что не удалось опубликовать отчёт по тестам! И иди потом ищи в логах, что и где упало.
И чо
Мне как разработчику все эти сущности вообще не всрались. В идеале у меня должно быть описание задачи, тут же лежит код-ревью со всеми комментами, результаты запуска тестов, кнопки, чтобы всё это говно перезапустить, если надо. Переходишь в какой-нибудь там условный Дженкинс, а у тебя список из тикетов, которые ты делал, результаты тестов по каждому, и все зелёные.
Всё равно не звучит, как упрощение, но тут они хотя всё собрано в кучу. Между всеми штуками есть ссылки, тебе не надо возвращаться в описание тикета, чтобы из тестов попасть в код.
Кажется, что решения от одного вендора вроде Atlassian должны избавлять от такого количества сущностей. Но есть проблемка: вы видели хоть одну команду или компанию, где вся эта инфраструктура была построена на стеке одного производителя? Вот и я не видел. Всегда встречаются купленные сервисы вместе с опенсорсными поделками, которые специально обученная служба поддержки пытается подружить между собой. Почему так? Хуй его знает, экономят, наверное.
Как я это вижу
Я не хочу ничего решать, я хочу оперировать только одной сущностью.
Я хочу нажать кнопочку «В разработку» в трекере задач, а дальше магия:
1. Положить в стеш все текущие изменения
2. Создать ветку под задачу и залить в неё последний мастер (а если работаешь над задачей больше одного дня, то ещё и подливать туда мастер по утрам)
3. Заново налить БД, если в прошлой задаче были миграции (а лучше просто заново налить БД)
4. Поднять всю инфраструктуру для проекта и залогинить меня
5. Вообще топ это заодно ещё создать новые ручки API, вытянув инфу из нужных полей задачи, или запилить контейнер для нового (микро)сервиса