Доработать ALT-man Reviewer для архитекторов и аналитиков. Мы применяем концепцию Everything as Code, поэтому результаты их работы тоже представлены в виде кода. Но для ArchiMate и PlantUML нет таких же готовых линтеров и статических анализаторов, как для Kotlin, Swift, TypeScript, Java, C#, Python, на которых пишут наши разработчики, тестировщики и DevOps-инженеры. Сейчас мы как раз заняты разработкой таких линтеров, анализаторов в соответствии с нашими внутренними стандартами, чтобы потом вооружить ими ALT-man'а. Уже в этом году ожидаем получить эффект от оптимизации ревью архитектурных и аналитических артефактов — представлений потоков данных, сетевых представлений, диаграмм последовательности и состояния.
Поначалу мы думали использовать только ИИ. Но увидели, что если просто «скармливать» код Llama и Mistral, качественные исправления получаются только в 13% случаев (привет, DevinAI). Вместо того чтобы бесконечно долго дообучать модель, мы решили сперва прогонять код через линтеры и SAST-анализаторы — и только потом делиться результатом с LLM.
Как обычно в общем. Взяли LLM, на реальной задаче она оказалась бесполезна. Поэтому взяли старые проверенные решения, и пропускаем их отчёты через LLM. Теперь вместо скучного линтера получился ИИ помощник, модно-молодежно. Ждём историю успеха о том как языковая модель зажевала какой-то важный выхлоп из линтера и её пришлось убрать, и вернуться к скучным не-ИИ отчётам.
В среднем ALT-man в десять раз быстрее, чем человек. Так, на проверку и заведение детализированных задач на исправление для пяти пулл-реквестов (в каждом десять файлов кода) опытный тимлид тратит 2 часа, а наше решение справляется за 10–15 минут.
Вы просто выкинули ревьювера из процесса. Линтинг или анализ это не замена ревью. Ревьювер может например посмотреть в ПР и в задачу, и понять, что код, пускай и идеально правильный, просто делает не то что просили в задаче. Ваша языковая модель так может?
Здравствуйте. Хорошие замечания, сейчас постараюсь ответить развернуто
Ждём историю успеха о том как языковая модель зажевала какой-то важный выхлоп из линтера и её пришлось убрать, и вернуться к скучным не-ИИ отчётам.
Логика системы построена так, что никто и ничего не "зажует". Все ошибки и дефекты не остаются незамеченными. К тому же ни один линтер не проверит корректность реализации принятых архитектурных подходов.
Вы просто выкинули ревьювера из процесса. Линтинг или анализ это не замена ревью. Ревьювер может например посмотреть в ПР и в задачу, и понять, что код, пускай и идеально правильный, просто делает не то что просили в задаче. Ваша языковая модель так может?
Проверка корректности реализации бизнес-логики не всегда является частью код-ревью. Для этого существует такая штука как E2E автотесты. Но не суть. В любом случае, проверку реализации бизнес-логики мы не игнорируем. Основная техническая сложность, которую мы практически решили - это репрезентация того, что у нас содержит СПТ (логика, макеты, api) в формат, который будет удобен для дальнейшего процессинга LLM-кой. Как только мы интегрируемся с нашими системами хранения СПТ, модуль анализа реализации логики будет включен в состав нашего ревьювера.
"Алексей Рамашка оставил ALT-man Reviewer вместо себя на весь рабочий день, не перепроверяя рекомендации. Никто из разработчиков не заметил разницы" - Похоже у кого-то скоро будет новая работа :)
скоро будет новая работа- вместо того чтобы проверять код работающий на компанию, он будет проверять код, который проверяет код работающий на компанию
Конечно! И Алексей, и остальные лиды очень рады заниматься "новой" интересной работой вместо рутинного просмотра и комментирования типовых пулл-реквестов ))
Так вот почему Альфа-Банк превращается из самого удобного банка в жалкое подобие сбера начала нулевых.
Внимание, анекдот:
Однажды приходит пуш от Альфы с просьбой подтвердить, что какой-то левый номер является моим. Сперва решил, что это мошенники развлекаются. А потом понял, что номер знакомый. Оказалось, что это номер моего друга, мы иногда кидали друг другу бабки в альфе, но лет 5 назад, наверное.
Как выяснилось позже, за день до пуша, друг продавал на авито шнягу и покупатель решил перевести бабки другу на Альфу. На его же номер, по СБП. Бабки ушли со счёта покупателя и... пропали.
Дальше опущу звонки в саппорт и посещение офисов банков и перейду к прекрасному. По какой-то причине бабки, отправленные на номер моего друга захотели упасть на мой счёт. Но внутри Альфы сработали какие-то алгоритмы и бабки отправились обратно в банк отправителя. И отправитель их получил через несколько рабочих дней.
Что сделал Альфа-Банк? Да ничего! Промычал что-то в ответ, что "мы разбираемся" и бла-бла-бла. Теперь когда получаю бабки на Альфу по СБП сперва ссусь, что они не дойдут. А потом понимаю, что они скорее всего попытаются упасть на счёт к моему другу. А значит, я их верну так или иначе. И жить становится чуть легче))
Проверяйте дальше код через нейросеть. Она отлично справляется. Например на моих проектах постоянно падает в рекурсию, находит то, чего нет или просил выпилить то, чего нет)
Константин, спасибо, конечно, за анекдот, но он немного не про тот Альфа Банк )) В статье речь об Альфа Банке Беларусь, что несколько раз указано по тексту (даже ссылка на сайт приведена). Это не значит, конечно, что у нас нет ошибок в работе и в софте, но всё же мы действительно уделяем большое внимание качеству и инженерной культуре – и с точки зрения автоматизации тестирования, и с точки зрения Quality Gates в целом. ALT-man Reviewer – лишь ещё один шаг на этом пути.