1. Практика

17 преподавателей, 13 лекций и 3 новых сервиса. Чему учат на курсе «Как запустить MVP» в Школе анализа данных Яндекса

Меньше теории, больше — практики

© Фото: Личный архив

Ви­та­лий Да­вы­дов учил­ся про­грам­ми­ро­ва­нию в МФТИ, а по­том — на ка­фед­ре ана­ли­за дан­ных, ко­то­рую в уни­вер­си­те­те от­крыл Ян­декс. В 2017 году вме­сте с пред­при­ни­ма­те­лем Ки­рил­лом По­те­хи­ным и ди­зай­не­ром Ди­мой Бар­ба­не­лем сде­лал об­ра­зо­ва­тель­ный чат-бот De­sign Work­out в Telegram. По­сле того, как сер­вис на­чал при­но­сить день­ги, ко­ман­да от­кры­ла сту­дию Poteha Labs — ла­бо­ра­то­рию ма­шин­но­го обу­че­ния и об­ра­бот­ки есте­ствен­но­го язы­ка. Сей­час сре­ди их кли­ен­тов — «Додо Пиц­ца», NVIDIA, AmoCRM и Cherry Home. Ле­том 2019 года вме­сте с ко­фа­ун­де­ра­ми Ви­та­лий за­пу­стил ещё один стар­тап — B2B-сер­вис Adapty для ро­ста мо­биль­ных in-app под­пи­сок. В ито­ге, по­лу­чив удач­ный и неудач­ный опыт за­пус­ка про­ек­тов, Ви­та­лий ре­шил сде­лать свой курс для раз­ра­бот­чи­ков — «Как за­пу­стить MVP» в Шко­ле ана­ли­за дан­ных Ян­дек­са. В ко­лон­ке для «Цеха» он рас­ска­зал, как пы­та­ет­ся со­кра­тить раз­рыв меж­ду тео­ри­ей и прак­ти­кой и по­че­му не за­да­ет до­маш­них за­да­ний.




Три глав­ных ошиб­ки на­чи­на­ю­щих стар­та­пе­ров

Курс стал для меня свое­об­раз­ной «ра­бо­той над ошиб­ка­ми». Я хо­тел по­де­лить­ся сво­им опы­том, что­бы мо­ло­дые раз­ра­бот­чи­ки не на­сту­па­ли на те же граб­ли, что и я в сту­ден­че­ские годы. Во вре­мя учё­бы в ба­ка­лаври­а­те я пы­тал­ся за­пу­стить три про­ек­та. Идеи были хо­ро­шие, и неко­то­рые из них по­том успеш­но ре­а­ли­зо­ва­ли дру­гие ком­па­нии, но у меня они «не вы­стре­ли­ли». В од­ном слу­чае раз­ва­ли­лась ко­ман­да, я остал­ся один, и мо­ти­ва­ция раз­ви­вать про­ект ис­чез­ла. В дру­гом — мы из-за от­сут­ствия опы­та по­тра­ти­ли всё вре­мя, что­бы про­сто разо­брать­ся, как за­пу­стить сер­вер.

Од­на­жды я за­ду­мал­ся, что мне по­ме­ша­ло за­пу­стить MVP (Ми­ни­маль­но жиз­не­спо­соб­ный про­дукт — Прим. «Цеха») в сту­ден­че­ские годы, и на­шёл три глав­ные при­чи­ны неудач. Они ха­рак­тер­ны для мно­гих про­ек­тов:

  • Воз­ник пе­ре­кос зна­ний в сто­ро­ну фун­да­мен­таль­ной на­у­ки в ущерб прак­ти­че­ским на­вы­кам.
  • Не смог со­брать ко­ман­ду и до­го­во­рить­ся.
  • Не риск­нул ра­бо­тать в оди­ноч­ку.

Дру­ги­ми сло­ва­ми, мно­гие про­бле­мы у на­чи­на­ю­щих раз­ра­бот­чи­ков воз­ни­ка­ют из-за того, что в ву­зах дают мно­го тео­рии, но со­всем не го­то­вят к за­пус­ку ре­аль­ных про­ек­тов. За­пол­нить этот про­бел по­мо­жет толь­ко прак­ти­ка. По­это­му я и ре­шил соз­дать курс с пол­но­цен­ной раз­ра­бот­кой про­дук­тов в усло­ви­ях, ко­то­рые мак­си­маль­но при­бли­же­ны к ре­аль­ным.

Си­стем­ное мыш­ле­ние — друг стар­та­пе­ра

С по­мо­щью кур­са мне хо­те­лось ком­пен­си­ро­вать у сту­ден­тов недо­ста­ток си­стем­но­сти, ко­то­рый ме­ша­ет мно­гим на­чи­на­ю­щим про­грам­ми­стам. В сво­их про­ек­тах я за­ни­мал­ся и бэ­кен­дом, и раз­ра­бот­кой ин­фра­струк­ту­ры, и ма­шин­ным обу­че­ни­ем. Та­кой под­ход упро­стил мно­гие про­цес­сы.

Для успеш­но­го за­пус­ка MVP важ­но по­ни­мать, из чего со­сто­ит ко­неч­ный про­дукт, и раз­би­рать­ся во всём по­не­мно­гу. С од­ной сто­ро­ны, это по­мо­жет быст­рее сори­ен­ти­ро­вать­ся и най­ти ре­ше­ние про­бле­мы, если ка­кой-ни­будь ком­по­нент пе­ре­ста­нет ра­бо­тать, а по­на­ча­лу баги бу­дут воз­ни­кать по­сто­ян­но. С дру­гой сто­ро­ны, если ты сам мо­жешь ре­а­ли­зо­вать необ­хо­ди­мые функ­ции, тебе не при­дёт­ся тра­тить вре­мя и силы на син­хро­ни­за­цию со спе­ци­а­ли­ста­ми уз­ко­го про­фи­ля.

Что­бы сту­ден­ты мог­ли бо­лее рав­но­мер­но по­гру­зить­ся в курс, первую неде­лю про­грам­мы я ре­шил по­свя­тить бэ­кен­ду, вто­рую — ин­фра­струк­ту­ре, а тре­тью — фрон­тен­ду. По­том цикл по­вто­рял­ся. По­лу­чи­лись три трёх­не­дель­ных бло­ка, во вре­мя ко­то­рых лек­то­ры из на­шей ко­ман­ды рас­ска­за­ли обо всех ос­нов­ных со­став­ля­ю­щих раз­ра­бот­ки лю­бо­го веб-про­дук­та: от на­строй­ки сер­ве­ра и фор­ма­ли­за­ции про­цес­сов в про­грамм­ном коде до ди­зай­на поль­зо­ва­тель­ско­го ин­тер­фей­са.

Ав­то­ном­ность — наше всё

Ещё одна за­да­ча, ко­то­рую я на­де­ял­ся ре­шить в рам­ках кур­са, — раз­ви­тие са­мо­сто­я­тель­но­сти. Че­ло­век, не уме­ю­щий ра­бо­тать ав­то­ном­но, вряд ли смо­жет за­пу­стить MVP. Преж­де все­го, стар­та­пе­ру нуж­но со­брать хо­ро­шую ко­ман­ду и не со­вер­шать тех­ни­че­ских оши­бок. На на­чаль­ном эта­пе нет вре­ме­ни ак­тив­но во­вле­кать­ся в ме­недж­мент, это толь­ко за­мед­ля­ет про­цес­сы. Тебе при­хо­дит­ся по­сто­ян­но сле­дить за со­труд­ни­ка­ми, ста­вить мик­ро­за­да­чи и про­ве­рять их ис­пол­не­ние? Зна­чит, ты пло­хо по­до­брал лю­дей.

Клас­си­че­ские кур­сы — это ме­сто, где тебя ве­дут за руку в лю­бой непо­нят­ной си­ту­а­ции. В ре­зуль­та­те вы­пуск­ни­ки ока­зы­ва­ют­ся со­вер­шен­но не под­го­тов­ле­ны к от­вет­ствен­но­сти, ко­то­рая вне­зап­но сва­ли­ва­ет­ся на них в ре­аль­ной жиз­ни. По­это­му я ре­шил пой­ти по дру­го­му пути и по­ста­вить сту­ден­та в усло­вия, ко­гда всё за­ви­сит толь­ко от него. Раз в неде­лю он мог об­су­дить про­ект с мен­то­ром, но толь­ко с точ­ки зре­ния об­щих на­прав­ле­ний раз­ви­тия. Кон­крет­ные ре­ше­ния ни­кто не под­ска­зы­вал.

«По­лу­чил два „нуля“ — вы­ле­та­ешь»

Ко­гда я при­ду­мал про­грам­му обу­че­ния, нуж­но было со­брать опыт­ных раз­ра­бот­чи­ков, ко­то­рые сде­ла­ют и про­чи­та­ют лек­ции. Мне хо­те­лось при­влечь лю­дей, ко­то­рые раз­би­ра­ют­ся в от­дель­но взя­тых те­мах луч­ше меня.

Я на­пи­сал сво­им зна­ко­мым, сде­лал пост в «Фейс­бу­ке», и на мой при­зыв от­клик­ну­лось по­ряд­ка 30 кан­ди­да­тов. Кто-то не про­шёл от­бор, кто-то не смог участ­во­вать по дру­гим при­чи­нам, и в ито­ге оста­лась ко­ман­да из 17 че­ло­век. Я сгруп­пи­ро­вал их по на­прав­ле­ни­ям, мы об­су­ди­ли со­дер­жа­ние каж­дой лек­ции, а даль­ше каж­дый сам го­то­вил свою часть, до­ра­ба­ты­вая её с учё­том моих по­же­ла­ний.

В кур­се была клас­си­че­ская со­став­ля­ю­щая — 13 лек­ций, раз­де­лён­ных по те­мам. Но вме­сто до­маш­них за­да­ний сту­ден­там надо было за­ни­мать­ся ре­аль­ны­ми про­ек­та­ми. Каж­дые две неде­ли мен­то­ры про­ве­ря­ли ре­зуль­та­ты и оце­ни­ва­ли их по шка­ле от 0 до 2 (все­го за курс оцен­ки вы­став­ля­лись шесть раз). Под­ход к от­се­ву се­рьёз­ный: по­лу­чил два «нуля» — вы­ле­та­ешь.

На то, как имен­но ре­зуль­та­ты до­сти­га­лись, мы не об­ра­ща­ли боль­шо­го вни­ма­ния. Сту­ден­ты мог­ли слу­шать или про­пус­кать лек­ции, ис­поль­зо­вать наши со­ве­ты или идти сво­им пу­тём. Мы оце­ни­ва­ли толь­ко то, что по­лу­ча­лось на вы­хо­де.

Для ра­бо­ты в на­шей про­ект­ной «пе­соч­ни­це» ре­бя­та мог­ли взять или одну из че­ты­рёх го­то­вых идей, или свою соб­ствен­ную. В кон­це обу­че­ния ро­ди­лись три пол­но­цен­ных веб-сер­ви­са:

  • Songsplit­ter.com — с по­мо­щью ней­ро­се­ти раз­де­ля­ет фай­лы с му­зы­кой на до­рож­ки. В ре­зуль­та­те поль­зо­ва­тель мо­жет вос­про­из­во­дить пес­ню, от­клю­чая го­лос или от­дель­ные ин­стру­мен­ты.
  • App Store DB — про­во­дит ана­ли­ти­ку при­ло­же­ний в App Store на ос­но­ва­нии от­зы­вов. По­мо­га­ет оце­ни­вать при­чи­ны рез­ких из­ме­не­ний рей­тин­га.
  • Pub­lic At­ten­tion — оце­ни­ва­ет во­вле­чён­ность ауди­то­рии на пуб­лич­ных вы­ступ­ле­ни­ях с по­мо­щью рас­по­зна­ва­ния и ана­ли­за лиц и эмо­ций на базе тех­но­ло­гии ком­пью­тер­но­го зре­ния.

В бу­ду­щем мне бы хо­те­лось раз­ви­вать про­грам­му кур­са, а глав­ное — про­дви­гать его в ву­зах, что­бы вме­сте с тео­ри­ей сту­ден­ты по­лу­ча­ли как мож­но боль­ше прак­ти­ки.


Все са­мое важ­ное и ин­те­рес­ное со­би­ра­ем на на­шей стра­ни­це ВКон­так­те