Как не надо участвовать в командных хакатонах. Рефлексия дубль 2, блеск и нищета поражения

Совсем недавно наша аналитик рассказывала о том, как выиграть хакатон, сохранив моральное и физическое здоровье.

За пару дней до выхода статьи эта же аналитик подговорила наших ребят участвовать в командном хакатоне. Результат не самый приятный — 38 место из 60. Однако, этот опыт, как и любой другой, не прошел даром (а еще был очень веселым).

В этой статье каждый участник команды поделится своим опытом и персональной рефлексией. Ну и лулзами, пойманными в процессе.

cc0126c329d4544f4af2f9212715d922.png

Немного о самом хакатоне

Это снова был хакатон Совкомбанка — Sovcombank Team Challenge 2022.

Примечание: аналитик плотно сидит на хакатонах этих ребят, поэтому да, опять Совкомбанк =)
Подробная информация доступна на сайте соревнования.

Задача звучала следующим образом:

Участникам предстоит спроектировать и реализовать интерфейс для проведения операций на торговых площадках (покупка, продажа, прогнозирование).

Необходимый функционал приложения:

  • Ролевая модель (пользователь и администратор приложения, необходимы интерфейсы для каждой роли)

  • Функционал регистрации новых пользователей (в рамках процесса регистрации создается первый рублевый счет для торговли) 

  • Функционал подтверждения регистрации для администратора приложения

  • Функционал для блокировки/разблокировки пользователей

  • Функционал для пополнения и выведения средств с рублевого счета

  • Функционал открытия нового счета для проведения операций над выбранной пользователем валютой

  • Отображение сводной информации по имеющимся в портфеле пользователя активам. Состав представленной информации должен быть обоснован

  • Отображение исторической информации о движении валюты (отчет по сделанным операциям)

  • Отображение общей информации о пользователе приложения в удобном и понятном для пользователя виде (профиль текущего пользователя), в т.ч., и информация о реквизитах счетов, с которых совершаются операции над валютами

  • Функционал торговли, возможность покупать и продавать валюту по рыночному курсу (курс из внешнего источника)

  • Визуализация графика стоимости валюты/валют за период (график изменения стоимости)

  • Расчет и визуализация прогнозной стоимости валют (технический анализ, регрессионные модели, ML и т.д.)

Критерии оценки:

  • Понятный и размеченный Readme для функционала 

  • Структура проекта в GitLab/Github

  • Архитектура проекта 

  • Качество back-end решения 

  • Качество front-end решения .Реализация ролевой модели (технический администратор, пользователь) и функционал регистрации

  • Полнота реализованной функциональности

  • Реализован и обоснован функционал прогноза стоимости актива 

  • Безопасность приложения 

  • Креативность решения

Что надо было сдать жюри:

  • Презентацию решения

  • Ссылку на репозиторий

  • Ссылку на прототип решения, если доступен не только локально

О составе команды

Наша команда называлась «Нарвал ушел в Астрал» и состояла из 4 человек:

  • backend-разработчик (STM Labs)

  • fullstack-разработчик

  • DevOps-специалист (STM Labs)

  • системный аналитик (STM Labs)

0eea44292b3cf2e4e33ff2b21067561a.png

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

Системный аналитик на кодерском хакатоне — пятая нога для собаки?

Анастасия, Systems Analyst в компании 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 *смеется и плачет*

Итого (в поддержку предыдущей статьи): хотите хорошо похакатонить — найдите время, в том числе — желательно и до хакатона тоже.

Дебагать прод не вовремя

Когда мы сдали решение, то обнаружили, что у нас, кхм, как бы это сказать… Не работает логин

© Habrahabr.ru