Сервис clkr. me помогает сделать выступления с презентациями легче и избавляет от необходимости пользоваться кликером — достаточно вашего смартфона. Работает все просто: выбираете Google-презентацию, получаете короткую ссылку на показ слайдов, открываете ее на устройстве и — все готово к выступлению. Слайды можно переключать из мобильной веб-версии, а также из Android-приложения, в которых доступна еще и лазерная указка. Также сервис делает возможным выступление сразу нескольких спикеров с независимыми кликерами.
Проект реализован как монолитное серверное веб-приложение на Typescript и фреймворке Nest. js на основе классических REST API и протокола SSE. Одновременно к серверу подключается множество дисплеев и множество кликеров, а сам сервер играет роль посредника — перенаправляет запросы, тем самым синхронизирует состояния устройств.
Во время работы над этим проектом мы столкнулись с несколькими критическими техническими трудностями. Во-первых, нас подвел Google Drive API на Android, который не позволил реализовать импорт презентаций через системный диалог. Во-вторых, нам пришлось решать проблему с переключением слайдов в iframe с Google-презентацией. Первые два дня мы потратили как раз на все это.
Для меня этот хакатон — не первый опыт исполнения роли тимлида и архитектора, осенью я занимался тем же. На этой позиции мне было важно сделать так, чтобы у каждого члена команды была максимально конкретная и прозрачная задача. Несмотря на то, что в роли «главного» я чувствую себя достаточно комфортно, без некоторого напряжения не обойтись: каждый раз возникают специфичные проблемы. Иногда в команде не хватает участника с экспертизой в какой-то области и надо придумывать, как мы будем с этим справляться. В другой раз приходится действовать, когда у тиммейта долго что-то не получается, но он отказывается от помощи. Поскольку задача важная, а время тикает, иногда приходится самому вторгаться и задавать наводящие вопросы, чтобы прийти к решению совместно. В отличие от прошлого хакатона, работу над этим проектом я решил начать с получасового введения в предметную область для команды. Я понял, что это огромное управленческое заблуждение — немедленно всех отправить разбираться самостоятельно. Поэтому я обрисовал контекст, архитектурные решения, постарался разобрать самые сложные аспекты, ввести терминологию и др. Мне кажется, из-за этого работа стартовала быстрее и активнее.
Прошлый хакатон научил меня тому, что задачи нужно не назначать, а предлагать к выбору. Когда ты выбираешь задачу сам, то берешь за нее ответственность, что кардинально меняет отношение к работе. Еще из важного: делегировать нужно все, что получается делегировать, и не стоит устраивать микроменеджмент, пока у тебя не попросили помощи. Впрочем, не надо стоять в стороне, когда видишь, что что-то идет не так. Это все не самые глубокие истины, но именно на этом хакатоне я акцентировал внимание на них и, надеюсь, закрепил их для себя.
В командной работе, на мой взгляд, самое главное — доверие, и нужно делать все возможное, чтобы это свойство в команде прокачивалось. Оно позволяет оставаться уверенным, что каждый член команды вовремя успеет выполнить свою задачу, а руководитель все эти задачи грамотно сформулировал и распределил. Мне было очень интересно в этот раз работать с командой, учитывая прошлый опыт. И теперь я даже хочу познакомиться с упражнениями и практиками по сплочению команды.