Как не надо участвовать в командных хакатонах. Рефлексия дубль 2, блеск и нищета поражения
Совсем недавно наша аналитик рассказывала о том, как выиграть хакатон, сохранив моральное и физическое здоровье.
За пару дней до выхода статьи эта же аналитик подговорила наших ребят участвовать в командном хакатоне. Результат не самый приятный — 38 место из 60. Однако, этот опыт, как и любой другой, не прошел даром (а еще был очень веселым).
В этой статье каждый участник команды поделится своим опытом и персональной рефлексией. Ну и лулзами, пойманными в процессе.
Немного о самом хакатоне
Это снова был хакатон Совкомбанка — Sovcombank Team Challenge 2022.
Примечание: аналитик плотно сидит на хакатонах этих ребят, поэтому да, опять Совкомбанк =)
Подробная информация доступна на сайте соревнования.
Задача звучала следующим образом:
Участникам предстоит спроектировать и реализовать интерфейс для проведения операций на торговых площадках (покупка, продажа, прогнозирование).
Необходимый функционал приложения:
Ролевая модель (пользователь и администратор приложения, необходимы интерфейсы для каждой роли)
Функционал регистрации новых пользователей (в рамках процесса регистрации создается первый рублевый счет для торговли)
Функционал подтверждения регистрации для администратора приложения
Функционал для блокировки/разблокировки пользователей
Функционал для пополнения и выведения средств с рублевого счета
Функционал открытия нового счета для проведения операций над выбранной пользователем валютой
Отображение сводной информации по имеющимся в портфеле пользователя активам. Состав представленной информации должен быть обоснован
Отображение исторической информации о движении валюты (отчет по сделанным операциям)
Отображение общей информации о пользователе приложения в удобном и понятном для пользователя виде (профиль текущего пользователя), в т.ч., и информация о реквизитах счетов, с которых совершаются операции над валютами
Функционал торговли, возможность покупать и продавать валюту по рыночному курсу (курс из внешнего источника)
Визуализация графика стоимости валюты/валют за период (график изменения стоимости)
Расчет и визуализация прогнозной стоимости валют (технический анализ, регрессионные модели, ML и т.д.)
Критерии оценки:
Понятный и размеченный Readme для функционала
Структура проекта в GitLab/Github
Архитектура проекта
Качество back-end решения
Качество front-end решения .Реализация ролевой модели (технический администратор, пользователь) и функционал регистрации
Полнота реализованной функциональности
Реализован и обоснован функционал прогноза стоимости актива
Безопасность приложения
Креативность решения
Что надо было сдать жюри:
Презентацию решения
Ссылку на репозиторий
Ссылку на прототип решения, если доступен не только локально
О составе команды
Наша команда называлась «Нарвал ушел в Астрал» и состояла из 4 человек:
backend-разработчик (STM Labs)
fullstack-разработчик
DevOps-специалист (STM Labs)
системный аналитик (STM Labs)
Теперь, когда примерно понятно, что хотели на хакатоне и чьими силами все реализовывалось, поговорим об индивидуальном опыте каждого члена команды.
Системный аналитик на кодерском хакатоне — пятая нога для собаки?
Анастасия, Systems Analyst в компании STM Labs
Как, зачем, почему?
Сразу отвечу на вопрос между строк — нет, моей целью не было продолжить победное шествие по хакатонам Совкомбанка. Да, побеждать здорово (признание, внимание, денюшки, фоточки с закрытия, бегущие за тобой эйчары), но, как я и говорила в предыдущей статье, это не самоцель.
На этот хакатон я шла, чтобы прочувствовать механику командной работы в рамках такого мероприятия, понять, каково это, когда результат зависит не только от тебя (в моем случае — максимально не от меня, я же не смогу закодить решение не то, что в одиночку, да даже в команде) и выяснить, нужен ли вообще системный аналитик в командных хакатонах.
Давайте попробую разложить выученные мной уроки по полочкам =)
Умение выкручиваться
Оказалось, у меня, как у аналитика, встроено неплохое умение выкручиваться из плохих ситуаций =)
Не успеваем в рамках нашего приложения защитить грамотно защитить данные по банковским картам? Придумываем внешний биллинг, который должен за все это отвечать, а мы просто перенаправляем туда пользователя!
Не успеваем сделать интерфейс администратора? Мы же используем KeyCloack, у которого есть веб-морда, объявляем его админкой!
Нет системы, способной отдавать курс валюты приемлемо быстро? Придумываем такую систему, внутри которой эмулируем поведение курса валют через алгоритм случайных блужданий!
И так было весь хакатон : D Честно, мой мозг еще никогда не искал столько аварийных выходов и еще с такой скоростью. Было очень приятно осознавать, что горшочек-то, оказывается, варит =)
Системный аналитик — полезный игрок
Где-то уже в районе подведения итогов в чате соревнования проскользнуло сообщение «а что у вас в команде делал аналитик, если он не успел сделать хорошую презентацию?»
Даже как-то обидно за нас стало : D Лично я в первый день хакатона с 19:30 до 2-х часов ночи сидела в офисе и:
искала аварийные выходы, чтобы и функционала побольше обеспечить, и не играть снова в героев недосыпа;
рисовала архитектуру;
прикидывала контракты взаимодействия front-back;
определяла роадмап, чтобы на каждом последующем шаге у нас было работающее решение;
раскидывала последовательность задачек для ребят.
В последующие два дня я затыкала максимально все дырки, которые могла заткнуть. Была и дизайнером, и специалистом по Google, и менеджером по заказу еды и завариванию чаечка… Кем только не была.
В итоге — наш front и back дружились фактически без багов, на потенциально каверзные вопросы жюри были готовы годные ответы, команда сытая, напоенная чайком и в относительном ментальном здравии.
Правда мы все равно ничего не успели, но об этом далее: D
Нецелевое использование игроков команды
Вот честно, настаивать, чтобы программист кодил фронт на React, на котором он никогда не кодил (потому что jQuery — это не модно!) было МАКСИМАЛЬНО не годной идеей : D
В следующий раз мне будет абсолютно наплевать, что модно, а что нет. Если у меня есть хороший специалист, которого я сама позвала в команду — нужно использовать его сильные стороны. «Немодный» jQuery? Come on, ты аналитик, вот и продай, почему именно он!
Таки да, я тот аналитик, что не успел в презентацию
Прокрастинировать в сторону подготовки презентации решения (не, ну, а вдруг мы вообще ничего рабочего не выдадим, а я мучалась с ней) — тоже так себе затея.
Господи, в следующий раз я начну делать эту презентацию за неделю до хакатона!
Экспериментировать на хакатоне — удел гениев и сумасшедших
За неделю до хакатона мы с ребятами хотели погуглить и потыкать всякое-разное. Но пересеклось все, что могло пересечься: ремонты, релизы, ведение пар в университете.
Что же мы решили?
В смысле, зачем использовать исследованное и наработанное?
Только эксперименты, только хардкор! : D *смеется и плачет*
Итого (в поддержку предыдущей статьи): хотите хорошо похакатонить — найдите время, в том числе — желательно и до хакатона тоже.
Дебагать прод не вовремя
Когда мы сдали решение, то обнаружили, что у нас, кхм, как бы это сказать… Не работает логин