Виталий Давыдов учился программированию в МФТИ, а потом — на кафедре анализа данных, которую в университете открыл Яндекс. В 2017 году вместе с предпринимателем Кириллом Потехиным и дизайнером Димой Барбанелем сделал образовательный чат-бот Design Workout в Telegram. После того, как сервис начал приносить деньги, команда открыла студию Poteha Labs — лабораторию машинного обучения и обработки естественного языка. Сейчас среди их клиентов — «Додо Пицца», NVIDIA, AmoCRM и Cherry Home. Летом 2019 года вместе с кофаундерами Виталий запустил ещё один стартап — B2B-сервис Adapty для роста мобильных in-app подписок. В итоге, получив удачный и неудачный опыт запуска проектов, Виталий решил сделать свой курс для разработчиков — «Как запустить MVP» в Школе анализа данных Яндекса. В колонке для «Цеха» он рассказал, как пытается сократить разрыв между теорией и практикой и почему не задает домашних заданий.
Три главных ошибки начинающих стартаперов
Курс стал для меня своеобразной «работой над ошибками». Я хотел поделиться своим опытом, чтобы молодые разработчики не наступали на те же грабли, что и я в студенческие годы. Во время учёбы в бакалавриате я пытался запустить три проекта. Идеи были хорошие, и некоторые из них потом успешно реализовали другие компании, но у меня они «не выстрелили». В одном случае развалилась команда, я остался один, и мотивация развивать проект исчезла. В другом — мы из-за отсутствия опыта потратили всё время, чтобы просто разобраться, как запустить сервер.
Однажды я задумался, что мне помешало запустить MVP (Минимально жизнеспособный продукт — Прим. «Цеха») в студенческие годы, и нашёл три главные причины неудач. Они характерны для многих проектов:
- Возник перекос знаний в сторону фундаментальной науки в ущерб практическим навыкам.
- Не смог собрать команду и договориться.
- Не рискнул работать в одиночку.
Другими словами, многие проблемы у начинающих разработчиков возникают из-за того, что в вузах дают много теории, но совсем не готовят к запуску реальных проектов. Заполнить этот пробел поможет только практика. Поэтому я и решил создать курс с полноценной разработкой продуктов в условиях, которые максимально приближены к реальным.
Системное мышление — друг стартапера
С помощью курса мне хотелось компенсировать у студентов недостаток системности, который мешает многим начинающим программистам. В своих проектах я занимался и бэкендом, и разработкой инфраструктуры, и машинным обучением. Такой подход упростил многие процессы.
Для успешного запуска MVP важно понимать, из чего состоит конечный продукт, и разбираться во всём понемногу. С одной стороны, это поможет быстрее сориентироваться и найти решение проблемы, если какой-нибудь компонент перестанет работать, а поначалу баги будут возникать постоянно. С другой стороны, если ты сам можешь реализовать необходимые функции, тебе не придётся тратить время и силы на синхронизацию со специалистами узкого профиля.
Чтобы студенты могли более равномерно погрузиться в курс, первую неделю программы я решил посвятить бэкенду, вторую — инфраструктуре, а третью — фронтенду. Потом цикл повторялся. Получились три трёхнедельных блока, во время которых лекторы из нашей команды рассказали обо всех основных составляющих разработки любого веб-продукта: от настройки сервера и формализации процессов в программном коде до дизайна пользовательского интерфейса.
Автономность — наше всё
Ещё одна задача, которую я надеялся решить в рамках курса, — развитие самостоятельности. Человек, не умеющий работать автономно, вряд ли сможет запустить MVP. Прежде всего, стартаперу нужно собрать хорошую команду и не совершать технических ошибок. На начальном этапе нет времени активно вовлекаться в менеджмент, это только замедляет процессы. Тебе приходится постоянно следить за сотрудниками, ставить микрозадачи и проверять их исполнение? Значит, ты плохо подобрал людей.
Классические курсы — это место, где тебя ведут за руку в любой непонятной ситуации. В результате выпускники оказываются совершенно не подготовлены к ответственности, которая внезапно сваливается на них в реальной жизни. Поэтому я решил пойти по другому пути и поставить студента в условия, когда всё зависит только от него. Раз в неделю он мог обсудить проект с ментором, но только с точки зрения общих направлений развития. Конкретные решения никто не подсказывал.
«Получил два „нуля“ — вылетаешь»
Когда я придумал программу обучения, нужно было собрать опытных разработчиков, которые сделают и прочитают лекции. Мне хотелось привлечь людей, которые разбираются в отдельно взятых темах лучше меня.
Я написал своим знакомым, сделал пост в «Фейсбуке», и на мой призыв откликнулось порядка 30 кандидатов. Кто-то не прошёл отбор, кто-то не смог участвовать по другим причинам, и в итоге осталась команда из 17 человек. Я сгруппировал их по направлениям, мы обсудили содержание каждой лекции, а дальше каждый сам готовил свою часть, дорабатывая её с учётом моих пожеланий.
В курсе была классическая составляющая — 13 лекций, разделённых по темам. Но вместо домашних заданий студентам надо было заниматься реальными проектами. Каждые две недели менторы проверяли результаты и оценивали их по шкале от 0 до 2 (всего за курс оценки выставлялись шесть раз). Подход к отсеву серьёзный: получил два «нуля» — вылетаешь.
На то, как именно результаты достигались, мы не обращали большого внимания. Студенты могли слушать или пропускать лекции, использовать наши советы или идти своим путём. Мы оценивали только то, что получалось на выходе.
Для работы в нашей проектной «песочнице» ребята могли взять или одну из четырёх готовых идей, или свою собственную. В конце обучения родились три полноценных веб-сервиса:
- Songsplitter.com — с помощью нейросети разделяет файлы с музыкой на дорожки. В результате пользователь может воспроизводить песню, отключая голос или отдельные инструменты.
- App Store DB — проводит аналитику приложений в App Store на основании отзывов. Помогает оценивать причины резких изменений рейтинга.
- Public Attention — оценивает вовлечённость аудитории на публичных выступлениях с помощью распознавания и анализа лиц и эмоций на базе технологии компьютерного зрения.
В будущем мне бы хотелось развивать программу курса, а главное — продвигать его в вузах, чтобы вместе с теорией студенты получали как можно больше практики.
Все самое важное и интересное собираем на нашей странице ВКонтакте