Всем привет! Меня зовут Алексей, я выпускник курса «Менеджер проектов» и проджект-менеджер в Мастерской программирования — подразделении Практикума, где студенты создают IT-проекты для портфолио. Я расскажу, как мы работали над «Киноточкой» — сервисом, который рекомендует кино на вечер: как придумывали бриф, управляли задачами и планируем развивать продукт в будущем.
В создании материала мне помогли участники команды:
-
Ольга Смехова — системный аналитик,
-
Айсылу Кильсенбаева — дизайнер,
-
Антон Лысцов — фронтенд-разработчик,
-
Анна Король — инженер по тестированию,
-
Евгений Прудовский — специалист по Data Science.
Что такое «Киноточка»
Выпускники Яндекс Практикума могут пойти в Мастерскую программирования — подразделение, в котором студенты получают практику в реальных проектах. В мастерской есть несколько стримов практики. В одном из них, который называется «Акселератор», студенты разных направлений собираются вместе и создают IT-проект.
Тему дают в мастерской, но заказчиком выступает команда — участники сами решают, как будет выглядеть и как будет реализован проект. Специалисты мастерской не вмешиваются в процессы, а, скорее, направляют: отвечают на вопросы, контролируют дедлайны, проводят дополнительные встречи и ревью. Главная цель участников — не получить готовый продукт, а получить опыт взаимодействия в кросс-функциональной команде.
Я участвовал в мастерской, как и другие выпускники. Прошёл онбординг, меня добавили в один из проектов. Тема звучала так: «Платформа по рекомендации фильмов». Изначально в команде был 21 человек:
-
два проджект-менеджера,
-
два дизайнера,
-
два системных аналитика,
-
пять фронтенд-разработчиков,
-
пять бэкенд-разработчиков,
-
пять инженеров по тестированию.
В таком составе мы начали разрабатывать проект «Киноточка» — веб-платформу, которая помогает с выбором кино и всегда «попадает в точку» с ответом на вопрос, что посмотреть вечером (отсюда и название).
Как мы организовали процесс
На первой встрече мы устроили мозговой штурм: накидывали идеи, думали о референсах и предлагали функции. Потом стали знакомиться ближе и начали организовывать процессы. Например, заполнять Google-таблицу, которую нам дали в мастерской, — в ней были вкладки для 
Была табличка с вопросами для менторов — опытных разработчиков, аналитиков и дизайнеров, которые работают в мастерской.
Также нам предоставили организацию в 
Главным результатом первых дней стал фич-лист, который мы утвердили после нескольких итераций. Спойлер: в процессе мы его не раз меняли, например когда понимали, что не успеваем реализовать ту или иную функцию в обозначенный срок.
Каким будет сервис: системная аналитика и дизайн
Дальше было важно включиться системным аналитикам и дизайнерам. Системные аналитики создали User Story Map — документ, в котором показывается, как строится взаимодействие пользователя с продуктом. По задумке, разработчики должны обращаться к этому документу при проектировании сервиса, а тестировщики проверять, соответствует ли карте то, что получилось в итоге.
Дизайнеры в это время создавали «Дизайнер интерфейсов»
Мы действовали по Agile-методологии, а значит, вся команда включалась одновременно. Пока продукт проходил стадии аналитики и первой вёрстки, другие участники тоже занимались делом. Например, разработчики создавали репозитории в GitHub, получали и настраивали сервер, смотрели вебинары по «Инженер по тестированию»
Разработка и презентация
На третьей неделе наступила стадия непосредственной разработки. Фронтенд-разработчики переносили макеты дизайнеров в вёрстку. Бэкенд-разработчики делали API — «подкапотную» часть сервиса, которая отвечала за взаимодействие данных с фронта и бэка. Например, переносила данные в базу после регистрации пользователя. В общем, на этом этапе сервис обретал свою форму и логику.
Системные аналитики создали «Системный аналитик»
После первого месяца у команд было запланировано большое ревью с техлидом Андреем Прониным и создателем Акселератора и руководителем Мастерской программирования Дианой Наумовой. Что-то вроде презентации «Инженер по тестированию»
Выход Data Science: настоящие умные рекомендации
По условиям проекта, можно было пойти простым путём и просто рекомендовать пользователю фильмы в жанрах, которые пользователь отметил как любимые при регистрации. Но мы хотели добавить какую-то интересную логику. Всё-таки основная фишка платформы — точные рекомендации.
Так мы стали первой командой в мастерской, которая подключила к проекту специалиста по Data Science. Евгений реализовал для нас логику выдачи фильма в разделе «Специально для вас». По замыслу, этот блок на странице нужен, чтобы пользователь мог обновлять страницу — и получать новую рекомендацию.
Чтобы в блоке появились точные рекомендации, нужно авторизоваться и начать ставить фильмам оценки.
«Я выбрал гибридную модель, которая опирается как на коллаборативную фильтрацию, так и на контентно-ориентированный подход.
Коллаборативная фильтрация — это метод, основанный на анализе предпочтений, в нашем случае сходств между пользователями и оценёнными ими фильмами. Допустим, если Лёлек оценил „Открытые воды“, „Поворот не туда“ и „Пандорум“, а Болек — „Поворот не туда“, „Пандорум“ и „Сквозь горизонт“, то можно сделать вывод, что их вкусы схожи. Исходя из этого, „Открытые воды“ можно порекомендовать Болеку, а „Сквозь горизонт“ — Лёлеку.
Контентно-ориентированный подход шире и учитывает все явные признаки зрителей и фильмов. Например, возраст и пол пользователей, а также год выхода, продолжительность, актёрский состав и другие данные о кино. На основе этой информации выдвигается прогноз оценки пользователя для каждого непросмотренного фильма из базы и определяется топ-20. А из них уже случайным образом выбираются варианты, которые пользователь увидит на странице.
В ходе тестирования модели ошибка предсказания оценки составила около 1,5. В контексте задачи, где нам нужно не точно предсказать оценку, а лишь выбрать самые подходящие фильмы для пользователя, это немного», — Евгений Прудовский, выпускник курсов «Аналитик данных», «Специалист по Data Science» и курса английского для аналитиков и специалистов по Data Scienсе
К сожалению, плюсы этой функции пока трудно проверить по-настоящему. Всё из-за ограниченной базы фильмов. Мы добавляли их вручную, и всего их около 150. Мы понимаем, что если развивать сервис, то нужно придумать другое решение. Например, сайте уже заработает.
План-максимум — это привлечь ребят из маркетинга и проанализировать рынок, чтобы узнать, готов ли проект идти в коммерцию и что для этого надо сделать. Хотелось бы привлечь больше пользователей и посмотреть, как они пользуются продуктом. Узнать, как поведёт себя сервис с большой базой фильмов, когда люди начнут их лайкать и добавлять в избранное, подумать, как развивать алгоритмы.
Как работать в команде джуниоров
Вот несколько вещей, которые я понял, работая над проектом с 20 начинающими специалистами, сам будучи джуниором.
Общайтесь. Без коммуникации никак — проект общий, и результат вам нужен общий.
«Мы много спорили, пытались найти лучшее решение, общались в своих командах, постепенно узнавали больше друг о друге. Кто-то успевал найти работу и покидал нас, но продолжал интересоваться проектом. У меня было такое чувство, что я проработала в маленькой IT-компании несколько лет, — грустно было, когда работа над проектом закончилась», — Айсылу Кильсенбаева, выпускница курса «Дизайнер интерфейсов»
Не формулируйте слишком сложные задачи. Мы ещё не профессионалы, которые могут выполнить любое ТЗ, поэтому сначала стоит понять, какой ресурс есть у команды и отдельных её участников, а уже потом формировать запросы и ожидания от проекта.
«Это был сложно для нас, тех, кто только закончил обучение. Огромная команда, разные направления, и задача — сделать MVP через месяц и работоспособную версию продукта через два. 20 человек — и вначале никто не знает, с чего начать, как распределить задачи по времени. Но все горели и были готовы тратить много времени — в самые сложные моменты мы проводили четыре созвона в неделю по два-три часа», — Антон Лысцов, выпускник курса «Веб-разработчик» (сейчас — «Фронтенд-разработчик»)
Используйте проект, чтобы узнать больше. Гуглите и ходите за советами — работа над реальным проектом всегда требует новых знаний и обнажает серые зоны в образовании. Я ходил к бэкам, фронтам и другим участникам каждый раз, когда у меня возникали вопросы. Эти знания пригодятся.
Получайте удовольствие! Лично мне даже не хотелось расставаться с ребятами. Мы периодически созваниваемся — иногда чтобы просто поболтать, иногда чтобы что-то запланировать вместе. Участие в таком проекте — классный опыт, который должен радовать.
ссылка на оригинал статьи https://habr.com/ru/articles/781694/
Добавить комментарий