В январе 2011 года у меня были летние каникулы [разработчик из южного полушария, а именно из Новой Зеландии — прим.пер.], но вместо поиска работы на день или общения с людьми я много времени скрывался от всех в своей комнате, где писал первую версию iOS приложения под названием Class Timetable. Годом ранее я искал простое, лёгкое в использовании приложение для учебных расписаний, и ничего в AppStore не подходило под мои нужды — всё было сложно и трудно использовать. Идея состояла в том, чтобы создать простое, без суматохи, прямолинейное решение, нечто более простое и более убедительное, чем бумажное расписание. За несколько месяцев я потратил около 500 часов, проектируя и кодируя его. На сегодня у программы более трёх миллионов загрузок, много положительных отзывов, а временами оно было моим основным источником дохода. Не слышали о приложении? Да, оно ещё не взлетело в США, но довольно популярно в Австралии/Новой Зеландии/Великобритании, по крайней мере, среди студентов колледжей и школьников.

В последнее время в блогах я много читал о людях, которые сорвали джекпот, их программы попали в избранное и они смотрят на цифры вроде 100 000 скачиваний в день. В сравнении с ними я лишь умеренно успешен. Class Timetable никогда не попадала на первое место AppStore, я не стал богатым за день, у меня было больше провалов, чем успехов. Я вложил много времени, вероятно, тысячи часов, в отличие от некоторых хитовых приложений, созданных за выходные. Конечно, три миллиона это много, но они накопились более чем за шесть лет.

В отличие от сорвавших джекпот, моя история «умеренного успеха» ближе к тяжёлой работе и медленному, постепенному прогрессу. Вероятно, она ближе к реальной жизни, чем другие истории успеха, потому что давайте посмотрим правде в глаза: не каждый раскрутится, создав следующую Flappy Bird. Вместо того, чтобы выстрелить как вирусный хит, Class Timetable была умеренно популярна более шести лет, что немного примечательно само по себе — многие #1 приложения не могут похвастаться такой долгой жизнью. Я бы хотел поделиться некоторыми вещами, которые узнал за последние несколько лет. Надеюсь, что-то из этого вы найдёте полезным, независимо от того, насколько вы успешны или нет.
Я всё ещё думаю, что некоторые из них были отличными идеями — возможно, им не хватило хорошего продвижения или немного удачи. Было приложение Ginge-O-Meter, в которое я вложил много сил. Концепция: сделай фотографию кого-нибудь и определи, сколько рыжего в его волосах. Оно использовало реальное распознавание изображений и техники анализа цвета, чтобы выдать ответ, и действительно работало (почти всегда). К сожалению, идея не взлетела… Думаю, я заработал около $50. Это была моя первая большая попытка, и если честно, меня довольно встревожило то, сколько усилий я вложил в приложение, чтобы в итоге столкнуться с таким провалом. Но на этом я не остановился, и Class Timetable развилось в то, что мы имеем сейчас. В любом случае, я хочу сказать, что не нужно ставить всё на одну ставку. Если ваша победная идея не добилась успеха: вставайте и пробуйте снова и снова… и снова, потому что всё что вы знаете, это то, что ваша следующая идея может сделать это.
Представьте, что вы получили письмо всеми прописными буквами, которое говорит, что ваше приложение застряло на этапе инсталляции и вам нужно исправить это… эдакое разочарование, не правда ли? После нескольких таких писем вы понимаете, что можете так никогда и не сделать свой продукт достаточно простым в использовании. Чему я научился (кроме того, что окунулся в прорубь и нашёл силы любезно ответить), так это тому, что продукт нужно разрабатывать так, словно пользоваться им будет человек на ступеньку ниже, чем представитель целевой аудитории. Сохраняйте простоту, реализуйте защиту от дурака — проектируйте всё для новичка. Проверьте, что нигде нельзя запутаться и что каждая задача абсолютно однозначна, что всё делается просто. Меньше времени уйдёт на поддержку, люди в целом будут счастливее с вашим продуктом, а ваши рейтинги пойдут вверх.
Когда Class Timetable впервые запустился с тысячами скачиваний в день, я получал примерно 20 писем в неделю. Уверен, были и другие пользователи с теми же проблемами, которые не затруднили себя написанием письма, а просто удалили приложение. Улучшив программу согласно жалобам из писем, я сейчас вышел на уровень в одно письмо каждые два или три дня — и большинство из них не о проблемах, а с предложением фич или редкие письма фанатов (я не вру).
Наверное, я получил сотни писем пользователей с предложением реализовать разные функции, от действительно хороших до сомнительных предложений. Но теперь, если бы я реализовал все эти функции, приложение превратилось бы в непонятное месиво, с 17 фоновыми выборами, 72 другими фичами, отвлекающими на экране, и списком настроек буквально обо всём. Блин, даже если бы я реализовал каждую разумную идею, результат был бы совсем иным. Дело в том, что даже если пользователи видят истинную проблему с продуктом, они не всегда знают лучшее решение. Так что же делать? Слушайте своих пользователей — их истинные, исконные проблемы — и решайте их так, чтобы это было полезно для продукта в целом. Иногда хорошее предложение фичи имеет побочные эффекты для продукта в целом, и это значит, что такое лучше пропустить. Это часто случалось с Class Timetable: одно из его главных качеств — простота и лёгкость использования. Хотя много функций было добавлено за годы, но многие предложения функций усложнили бы продукт в целом. Иногда это нормально, но чаще я выбирал простоту — ту фичу, которая делает уникальным это приложение.
Class Timetable никогда не попадал на главную страницу AppStore и не получал 100 000 скачиваний в день — но меня это не волнует. Некоторые приложения достигают первого места в чартах только для того, чтобы превратиться в безжизненную пустыню раньше, чем через год. Возможно, в них была какая-то весёлая искринка, вирусная стратегия маркетинга или им просто повезло — но в итоге, в них нет содержания и они не решили реальную мировую проблему осмысленным способом. Делая вместо этого по-настоящему хороший продукт, вы проектируете нечто, к чему пользователи будут возвращаться снова и снова. Вкладывайте усилия там, где люди могут даже не заметить. Концентрируйтесь на решении реальных проблем и делайте продукт таким, что он будет по-настоящему полезным, чтобы пользователи возвращались и приводили с собой других. Вернувшиеся пользователи — хороший знак полезности продукта. В качестве бонуса есть небольшой вирусный эффект, присущий каждому пользователю, да и вообще приятно знать, что каждый новый пользователь — это не просто замена ушедшему.
Когда Class Timetable впервые появился в AppStore, он стоил $1. Я рассчитал, что на то время, которое я затратил (около 500 часов), 1 доллар — это халява. Итак, в первую неделю приложение купили четыре человека, а на следующую неделю ещё меньше. Не знаю, какие ощущения у человека, сорвавшего джекпот, но у меня таких ощущений не было. 500 часов — это немало времени, чтобы спустить в унитаз! Я мог бы оставить его умирать медленной смертью по одному доллару в неделю, но вместо этого решил сделать приложение бесплатным. Я создал его для решения реальной проблемы и посчитал, что другие найдут его по-настоящему полезным. Почти сразу же скачивания начали расти. 50 скачиваний в день, затем 100, 1000… вау. Если бы я принял в расчёт количество потраченных часов и не был щедрым, то очень сомневаюсь, что скачивания когда-нибудь вообще начались. Вскоре после этого я добавил функцию внутрипрограммной покупки дополнительных функций, что начало приносить уже разумные деньги. Намного больше, чем несколько долларов в неделю. Так что не скупитесь: продукт без платных пользователей (обычно) лучше, чем платный продукт вообще без пользователей. Намного проще получить оплату с существующих пользователей, чем привлечь абсолютно нового платного пользователя.
Иногда вы застряли с проблемой, и хороших решений не просматривается: это может быть связано с кодом, который вы пишите, или с решением, как продвигать приложение. И тогда вы начинаете думать о проблеме в широком смысле. Вы осознаёте, что этот хитрый кусок кода вообще не нужно писать, если правильно спроектировать программу, а проблему с маркетингом отлично решит один ваш друг, у которого талант решать такие проблемы. Это можно описать как «шаг назад» от проблемы. За всю мою карьеру разработчика я не пожалел ни о секунде, когда так делал. Очень много раз, особенно в начале карьеры, мне следовало так поступить, а я этого не сделал. Я прошёл по трудному пути с Class Timetable: в версии 1.0 куча времени ушло, когда я заходил в тупик, но скрипя зубами добивался своего. Я решал хитрые проблемы, срезая углы и реализуя задуманное, вместо того, чтобы сделать шаг назад. Пока пользователи не знают, в этом нет ничего постыдного, правда? Через год или два пришлось переписывать всю кодовую базу с нуля — по многим причинам — что стало серьёзным мероприятием. Сделайте шаг назад! Оно того стоит.
Сегодня Class Timetable по-прежнему чувствует себя хорошо. Я всегда строю планы, будь то ближайшее обновление под iOS или глобальные планы, во что может превратиться программа. Если вы учитесь в школе или колледже, не стесняйтесь попробовать Class Timetable — надеюсь, вы найдёте её по-настоящему полезной.

В последнее время в блогах я много читал о людях, которые сорвали джекпот, их программы попали в избранное и они смотрят на цифры вроде 100 000 скачиваний в день. В сравнении с ними я лишь умеренно успешен. Class Timetable никогда не попадала на первое место AppStore, я не стал богатым за день, у меня было больше провалов, чем успехов. Я вложил много времени, вероятно, тысячи часов, в отличие от некоторых хитовых приложений, созданных за выходные. Конечно, три миллиона это много, но они накопились более чем за шесть лет.

В отличие от сорвавших джекпот, моя история «умеренного успеха» ближе к тяжёлой работе и медленному, постепенному прогрессу. Вероятно, она ближе к реальной жизни, чем другие истории успеха, потому что давайте посмотрим правде в глаза: не каждый раскрутится, создав следующую Flappy Bird. Вместо того, чтобы выстрелить как вирусный хит, Class Timetable была умеренно популярна более шести лет, что немного примечательно само по себе — многие #1 приложения не могут похвастаться такой долгой жизнью. Я бы хотел поделиться некоторыми вещами, которые узнал за последние несколько лет. Надеюсь, что-то из этого вы найдёте полезным, независимо от того, насколько вы успешны или нет.
Перед написанием приложением, которое «сделало это», я написал много вещей, которые не сделали это
Я всё ещё думаю, что некоторые из них были отличными идеями — возможно, им не хватило хорошего продвижения или немного удачи. Было приложение Ginge-O-Meter, в которое я вложил много сил. Концепция: сделай фотографию кого-нибудь и определи, сколько рыжего в его волосах. Оно использовало реальное распознавание изображений и техники анализа цвета, чтобы выдать ответ, и действительно работало (почти всегда). К сожалению, идея не взлетела… Думаю, я заработал около $50. Это была моя первая большая попытка, и если честно, меня довольно встревожило то, сколько усилий я вложил в приложение, чтобы в итоге столкнуться с таким провалом. Но на этом я не остановился, и Class Timetable развилось в то, что мы имеем сейчас. В любом случае, я хочу сказать, что не нужно ставить всё на одну ставку. Если ваша победная идея не добилась успеха: вставайте и пробуйте снова и снова… и снова, потому что всё что вы знаете, это то, что ваша следующая идея может сделать это.
Создавайте дизайн в расчёте на новичка
Представьте, что вы получили письмо всеми прописными буквами, которое говорит, что ваше приложение застряло на этапе инсталляции и вам нужно исправить это… эдакое разочарование, не правда ли? После нескольких таких писем вы понимаете, что можете так никогда и не сделать свой продукт достаточно простым в использовании. Чему я научился (кроме того, что окунулся в прорубь и нашёл силы любезно ответить), так это тому, что продукт нужно разрабатывать так, словно пользоваться им будет человек на ступеньку ниже, чем представитель целевой аудитории. Сохраняйте простоту, реализуйте защиту от дурака — проектируйте всё для новичка. Проверьте, что нигде нельзя запутаться и что каждая задача абсолютно однозначна, что всё делается просто. Меньше времени уйдёт на поддержку, люди в целом будут счастливее с вашим продуктом, а ваши рейтинги пойдут вверх.
Когда Class Timetable впервые запустился с тысячами скачиваний в день, я получал примерно 20 писем в неделю. Уверен, были и другие пользователи с теми же проблемами, которые не затруднили себя написанием письма, а просто удалили приложение. Улучшив программу согласно жалобам из писем, я сейчас вышел на уровень в одно письмо каждые два или три дня — и большинство из них не о проблемах, а с предложением фич или редкие письма фанатов (я не вру).
Слушайте критиков, но не делайте того, что они говорят
Наверное, я получил сотни писем пользователей с предложением реализовать разные функции, от действительно хороших до сомнительных предложений. Но теперь, если бы я реализовал все эти функции, приложение превратилось бы в непонятное месиво, с 17 фоновыми выборами, 72 другими фичами, отвлекающими на экране, и списком настроек буквально обо всём. Блин, даже если бы я реализовал каждую разумную идею, результат был бы совсем иным. Дело в том, что даже если пользователи видят истинную проблему с продуктом, они не всегда знают лучшее решение. Так что же делать? Слушайте своих пользователей — их истинные, исконные проблемы — и решайте их так, чтобы это было полезно для продукта в целом. Иногда хорошее предложение фичи имеет побочные эффекты для продукта в целом, и это значит, что такое лучше пропустить. Это часто случалось с Class Timetable: одно из его главных качеств — простота и лёгкость использования. Хотя много функций было добавлено за годы, но многие предложения функций усложнили бы продукт в целом. Иногда это нормально, но чаще я выбирал простоту — ту фичу, которая делает уникальным это приложение.
Отличный продукт лучше, чем вирусные уловки
Class Timetable никогда не попадал на главную страницу AppStore и не получал 100 000 скачиваний в день — но меня это не волнует. Некоторые приложения достигают первого места в чартах только для того, чтобы превратиться в безжизненную пустыню раньше, чем через год. Возможно, в них была какая-то весёлая искринка, вирусная стратегия маркетинга или им просто повезло — но в итоге, в них нет содержания и они не решили реальную мировую проблему осмысленным способом. Делая вместо этого по-настоящему хороший продукт, вы проектируете нечто, к чему пользователи будут возвращаться снова и снова. Вкладывайте усилия там, где люди могут даже не заметить. Концентрируйтесь на решении реальных проблем и делайте продукт таким, что он будет по-настоящему полезным, чтобы пользователи возвращались и приводили с собой других. Вернувшиеся пользователи — хороший знак полезности продукта. В качестве бонуса есть небольшой вирусный эффект, присущий каждому пользователю, да и вообще приятно знать, что каждый новый пользователь — это не просто замена ушедшему.
Будьте щедрыми
Когда Class Timetable впервые появился в AppStore, он стоил $1. Я рассчитал, что на то время, которое я затратил (около 500 часов), 1 доллар — это халява. Итак, в первую неделю приложение купили четыре человека, а на следующую неделю ещё меньше. Не знаю, какие ощущения у человека, сорвавшего джекпот, но у меня таких ощущений не было. 500 часов — это немало времени, чтобы спустить в унитаз! Я мог бы оставить его умирать медленной смертью по одному доллару в неделю, но вместо этого решил сделать приложение бесплатным. Я создал его для решения реальной проблемы и посчитал, что другие найдут его по-настоящему полезным. Почти сразу же скачивания начали расти. 50 скачиваний в день, затем 100, 1000… вау. Если бы я принял в расчёт количество потраченных часов и не был щедрым, то очень сомневаюсь, что скачивания когда-нибудь вообще начались. Вскоре после этого я добавил функцию внутрипрограммной покупки дополнительных функций, что начало приносить уже разумные деньги. Намного больше, чем несколько долларов в неделю. Так что не скупитесь: продукт без платных пользователей (обычно) лучше, чем платный продукт вообще без пользователей. Намного проще получить оплату с существующих пользователей, чем привлечь абсолютно нового платного пользователя.
Делайте шаг назад, часто
Иногда вы застряли с проблемой, и хороших решений не просматривается: это может быть связано с кодом, который вы пишите, или с решением, как продвигать приложение. И тогда вы начинаете думать о проблеме в широком смысле. Вы осознаёте, что этот хитрый кусок кода вообще не нужно писать, если правильно спроектировать программу, а проблему с маркетингом отлично решит один ваш друг, у которого талант решать такие проблемы. Это можно описать как «шаг назад» от проблемы. За всю мою карьеру разработчика я не пожалел ни о секунде, когда так делал. Очень много раз, особенно в начале карьеры, мне следовало так поступить, а я этого не сделал. Я прошёл по трудному пути с Class Timetable: в версии 1.0 куча времени ушло, когда я заходил в тупик, но скрипя зубами добивался своего. Я решал хитрые проблемы, срезая углы и реализуя задуманное, вместо того, чтобы сделать шаг назад. Пока пользователи не знают, в этом нет ничего постыдного, правда? Через год или два пришлось переписывать всю кодовую базу с нуля — по многим причинам — что стало серьёзным мероприятием. Сделайте шаг назад! Оно того стоит.
Сегодня Class Timetable по-прежнему чувствует себя хорошо. Я всегда строю планы, будь то ближайшее обновление под iOS или глобальные планы, во что может превратиться программа. Если вы учитесь в школе или колледже, не стесняйтесь попробовать Class Timetable — надеюсь, вы найдёте её по-настоящему полезной.